diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79c113f --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..f48dc2e --- /dev/null +++ b/.metadata @@ -0,0 +1,30 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "077b4a4ce10a07b82caa6897f0c626f9c0a3ac90" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 077b4a4ce10a07b82caa6897f0c626f9c0a3ac90 + base_revision: 077b4a4ce10a07b82caa6897f0c626f9c0a3ac90 + - platform: android + create_revision: 077b4a4ce10a07b82caa6897f0c626f9c0a3ac90 + base_revision: 077b4a4ce10a07b82caa6897f0c626f9c0a3ac90 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100755 index 0000000..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..e87aed8 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,54 @@ +plugins { + id("com.android.application") + id("kotlin-android") + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.nearle.bond" + compileSdk = flutter.compileSdkVersion + ndkVersion = "27.0.12077973" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + isCoreLibraryDesugaringEnabled = true + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + applicationId = "com.nearle.bond" + minSdk = flutter.minSdkVersion + targetSdk = 34 + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + + buildTypes { + release { + isShrinkResources = false + isMinifyEnabled = false + signingConfig = signingConfigs.getByName("debug") + + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + + } + } +} + +flutter { + source = "../.." +} + +dependencies { + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") +} + +apply(plugin = "com.google.gms.google-services") diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..2e93fac --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,163 @@ +{ + "project_info": { + "project_number": "140444764229", + "firebase_url": "https://nearle-gear-default-rtdb.firebaseio.com", + "project_id": "nearle-gear", + "storage_bucket": "nearle-gear.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:140444764229:android:a584c5e9127c3789283b2c", + "android_client_info": { + "package_name": "com.nearle.admin" + } + }, + "oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBkzz2Yua74Q9YpzGmUPFP94fmJQqNMIiU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "140444764229-m6l2v6eofrb9jgrno3qmsrjbtd4iccvd.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.nearle.gear" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:140444764229:android:a99eaae950fa5ada283b2c", + "android_client_info": { + "package_name": "com.nearle.bond" + } + }, + "oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBkzz2Yua74Q9YpzGmUPFP94fmJQqNMIiU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "140444764229-m6l2v6eofrb9jgrno3qmsrjbtd4iccvd.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.nearle.gear" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:140444764229:android:88df9627e2990ef4283b2c", + "android_client_info": { + "package_name": "com.nearle.gear" + } + }, + "oauth_client": [ + { + "client_id": "140444764229-5cllr5f8u28psf8ttc220f6h487u9vjq.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.nearle.gear", + "certificate_hash": "1d8115901ded2af41250ffbfe99b9239a1953c05" + } + }, + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBkzz2Yua74Q9YpzGmUPFP94fmJQqNMIiU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "140444764229-m6l2v6eofrb9jgrno3qmsrjbtd4iccvd.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.nearle.gear" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:140444764229:android:578383f5a1d3a05c283b2c", + "android_client_info": { + "package_name": "com.nearle.partner" + } + }, + "oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBkzz2Yua74Q9YpzGmUPFP94fmJQqNMIiU" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "140444764229-seu4nkl2k2hj6gebk3q20sv80k685ecp.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "140444764229-m6l2v6eofrb9jgrno3qmsrjbtd4iccvd.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.nearle.gear" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..2b2b0e2 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,59 @@ +## Flutter wrapper +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } +-keep class com.dexterous.** { *; } +-keep class com.google.firebase.** { *; } + +-keepattributes *Annotation* +-dontwarn com.razorpay.** +-keep class com.razorpay.** {*;} +-optimizations !method/inlining/ +-keepclasseswithmembers class * { + public void onPayment*(...); +} + + +# Keep Smart Auth classes +-keep class com.google.android.gms.auth.api.credentials.** { *; } + +# Keep Play Core SplitInstall classes (for deferred components) +-keep class com.google.android.play.core.splitinstall.** { *; } +-keep class com.google.android.play.core.splitcompat.** { *; } +-keep class com.google.android.play.core.tasks.** { *; } + +# Keep classes used by Flutter deferred components +-keep class io.flutter.embedding.engine.deferredcomponents.** { *; } + +# Keep SmartAuth plugin +-keep class fman.ge.smart_auth.** { *; } + +# Keep Flutter plugins using reflection +-keep class io.flutter.plugin.common.** { *; } + + +-dontwarn com.google.android.gms.auth.api.credentials.Credential$Builder +-dontwarn com.google.android.gms.auth.api.credentials.Credential +-dontwarn com.google.android.gms.auth.api.credentials.CredentialPickerConfig$Builder +-dontwarn com.google.android.gms.auth.api.credentials.CredentialPickerConfig +-dontwarn com.google.android.gms.auth.api.credentials.CredentialRequest$Builder +-dontwarn com.google.android.gms.auth.api.credentials.CredentialRequest +-dontwarn com.google.android.gms.auth.api.credentials.CredentialRequestResponse +-dontwarn com.google.android.gms.auth.api.credentials.Credentials +-dontwarn com.google.android.gms.auth.api.credentials.CredentialsClient +-dontwarn com.google.android.gms.auth.api.credentials.HintRequest$Builder +-dontwarn com.google.android.gms.auth.api.credentials.HintRequest +-dontwarn com.google.android.play.core.splitcompat.SplitCompatApplication +-dontwarn com.google.android.play.core.splitinstall.SplitInstallException +-dontwarn com.google.android.play.core.splitinstall.SplitInstallManager +-dontwarn com.google.android.play.core.splitinstall.SplitInstallManagerFactory +-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest$Builder +-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest +-dontwarn com.google.android.play.core.splitinstall.SplitInstallSessionState +-dontwarn com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener +-dontwarn com.google.android.play.core.tasks.OnFailureListener +-dontwarn com.google.android.play.core.tasks.OnSuccessListener +-dontwarn com.google.android.play.core.tasks.Task \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4b9b772 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/nearle/gear/MainActivity.kt b/android/app/src/main/kotlin/com/nearle/gear/MainActivity.kt new file mode 100644 index 0000000..fbcfc76 --- /dev/null +++ b/android/app/src/main/kotlin/com/nearle/gear/MainActivity.kt @@ -0,0 +1,5 @@ +package com.gear.gear + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() \ No newline at end of file diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100755 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100755 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100755 index 0000000..86b5b21 Binary files /dev/null and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100755 index 0000000..ff13b13 Binary files /dev/null and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100755 index 0000000..adc6951 Binary files /dev/null and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100755 index 0000000..cb056c6 Binary files /dev/null and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100755 index 0000000..1a0aabf Binary files /dev/null and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/raw/keep.xml b/android/app/src/main/res/raw/keep.xml new file mode 100644 index 0000000..a26889d --- /dev/null +++ b/android/app/src/main/res/raw/keep.xml @@ -0,0 +1,5 @@ + + + + diff --git a/android/app/src/main/res/raw/ring.mp3 b/android/app/src/main/res/raw/ring.mp3 new file mode 100644 index 0000000..2a4a606 Binary files /dev/null and b/android/app/src/main/res/raw/ring.mp3 differ diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100755 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100755 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..7a2d101 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,33 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.5.2") + classpath("com.google.gms:google-services:4.4.2") // ✅ Add this line + } +} + + +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..475a628 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,7 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true +# This builtInKotlin flag was added automatically by Flutter migrator +android.builtInKotlin=false +# This newDsl flag was added automatically by Flutter migrator +android.newDsl=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ac3b479 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..ab39a10 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.7.3" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") diff --git a/android_backup/.gitignore b/android_backup/.gitignore new file mode 100755 index 0000000..be3943c --- /dev/null +++ b/android_backup/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android_backup/app/build.gradle.kts b/android_backup/app/build.gradle.kts new file mode 100644 index 0000000..2c0ea62 --- /dev/null +++ b/android_backup/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("dev.flutter.flutter-gradle-plugin") +} + + +android { + namespace = "com.nearle.admin" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.nearle.admin" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/android_backup/app/src/debug/AndroidManifest.xml b/android_backup/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android_backup/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android_backup/app/src/main/AndroidManifest.xml b/android_backup/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..62a6245 --- /dev/null +++ b/android_backup/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android_backup/app/src/main/kotlin/com/example/businessv1/MainActivity.kt b/android_backup/app/src/main/kotlin/com/example/businessv1/MainActivity.kt new file mode 100644 index 0000000..4b3cf6b --- /dev/null +++ b/android_backup/app/src/main/kotlin/com/example/businessv1/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.businessv1 + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/android_backup/app/src/main/res/drawable-v21/launch_background.xml b/android_backup/app/src/main/res/drawable-v21/launch_background.xml new file mode 100755 index 0000000..f74085f --- /dev/null +++ b/android_backup/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android_backup/app/src/main/res/drawable/launch_background.xml b/android_backup/app/src/main/res/drawable/launch_background.xml new file mode 100755 index 0000000..304732f --- /dev/null +++ b/android_backup/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android_backup/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android_backup/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100755 index 0000000..db77bb4 Binary files /dev/null and b/android_backup/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android_backup/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android_backup/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100755 index 0000000..17987b7 Binary files /dev/null and b/android_backup/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android_backup/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android_backup/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100755 index 0000000..09d4391 Binary files /dev/null and b/android_backup/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android_backup/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android_backup/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100755 index 0000000..d5f1c8d Binary files /dev/null and b/android_backup/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android_backup/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android_backup/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100755 index 0000000..4d6372e Binary files /dev/null and b/android_backup/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android_backup/app/src/main/res/values-night/styles.xml b/android_backup/app/src/main/res/values-night/styles.xml new file mode 100755 index 0000000..06952be --- /dev/null +++ b/android_backup/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android_backup/app/src/main/res/values/styles.xml b/android_backup/app/src/main/res/values/styles.xml new file mode 100755 index 0000000..cb1ef88 --- /dev/null +++ b/android_backup/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android_backup/app/src/profile/AndroidManifest.xml b/android_backup/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android_backup/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android_backup/build.gradle b/android_backup/build.gradle new file mode 100644 index 0000000..f0a1103 --- /dev/null +++ b/android_backup/build.gradle @@ -0,0 +1,29 @@ +buildscript { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } + dependencies { + classpath "com.android.tools.build:gradle:8.3.2" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.23" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" + +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android_backup/build/ios/XCBuildData/PIFCache/project/PROJECT@v11_mod=4bd6caac346ef9536ea7e6c41cb7f954_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json b/android_backup/build/ios/XCBuildData/PIFCache/project/PROJECT@v11_mod=4bd6caac346ef9536ea7e6c41cb7f954_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json new file mode 100644 index 0000000..921605f --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/project/PROJECT@v11_mod=4bd6caac346ef9536ea7e6c41cb7f954_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1-json @@ -0,0 +1 @@ +{"appPreferencesBuildSettings":{},"buildConfigurations":[{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","CLANG_ANALYZER_NONNULL":"YES","CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION":"YES_AGGRESSIVE","CLANG_CXX_LANGUAGE_STANDARD":"gnu++14","CLANG_CXX_LIBRARY":"libc++","CLANG_ENABLE_MODULES":"YES","CLANG_ENABLE_OBJC_ARC":"YES","CLANG_ENABLE_OBJC_WEAK":"YES","CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING":"YES","CLANG_WARN_BOOL_CONVERSION":"YES","CLANG_WARN_COMMA":"YES","CLANG_WARN_CONSTANT_CONVERSION":"YES","CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS":"YES","CLANG_WARN_DIRECT_OBJC_ISA_USAGE":"YES_ERROR","CLANG_WARN_DOCUMENTATION_COMMENTS":"YES","CLANG_WARN_EMPTY_BODY":"YES","CLANG_WARN_ENUM_CONVERSION":"YES","CLANG_WARN_INFINITE_RECURSION":"YES","CLANG_WARN_INT_CONVERSION":"YES","CLANG_WARN_NON_LITERAL_NULL_CONVERSION":"YES","CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF":"YES","CLANG_WARN_OBJC_LITERAL_CONVERSION":"YES","CLANG_WARN_OBJC_ROOT_CLASS":"YES_ERROR","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","CLANG_WARN_RANGE_LOOP_ANALYSIS":"YES","CLANG_WARN_STRICT_PROTOTYPES":"YES","CLANG_WARN_SUSPICIOUS_MOVE":"YES","CLANG_WARN_UNGUARDED_AVAILABILITY":"YES_AGGRESSIVE","CLANG_WARN_UNREACHABLE_CODE":"YES","CLANG_WARN__DUPLICATE_METHOD_MATCH":"YES","COPY_PHASE_STRIP":"NO","DEBUG_INFORMATION_FORMAT":"dwarf","ENABLE_STRICT_OBJC_MSGSEND":"YES","ENABLE_TESTABILITY":"YES","GCC_C_LANGUAGE_STANDARD":"gnu11","GCC_DYNAMIC_NO_PIC":"NO","GCC_NO_COMMON_BLOCKS":"YES","GCC_OPTIMIZATION_LEVEL":"0","GCC_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_DEBUG=1 DEBUG=1 $(inherited)","GCC_WARN_64_TO_32_BIT_CONVERSION":"YES","GCC_WARN_ABOUT_RETURN_TYPE":"YES_ERROR","GCC_WARN_UNDECLARED_SELECTOR":"YES","GCC_WARN_UNINITIALIZED_AUTOS":"YES_AGGRESSIVE","GCC_WARN_UNUSED_FUNCTION":"YES","GCC_WARN_UNUSED_VARIABLE":"YES","IPHONEOS_DEPLOYMENT_TARGET":"15.0","MTL_ENABLE_DEBUG_INFO":"INCLUDE_SOURCE","MTL_FAST_MATH":"YES","ONLY_ACTIVE_ARCH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"DEBUG","SWIFT_OPTIMIZATION_LEVEL":"-Onone","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e9841694db9191404dab0574df10aa4d92c","name":"Debug"},{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","CLANG_ANALYZER_NONNULL":"YES","CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION":"YES_AGGRESSIVE","CLANG_CXX_LANGUAGE_STANDARD":"gnu++14","CLANG_CXX_LIBRARY":"libc++","CLANG_ENABLE_MODULES":"YES","CLANG_ENABLE_OBJC_ARC":"YES","CLANG_ENABLE_OBJC_WEAK":"YES","CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING":"YES","CLANG_WARN_BOOL_CONVERSION":"YES","CLANG_WARN_COMMA":"YES","CLANG_WARN_CONSTANT_CONVERSION":"YES","CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS":"YES","CLANG_WARN_DIRECT_OBJC_ISA_USAGE":"YES_ERROR","CLANG_WARN_DOCUMENTATION_COMMENTS":"YES","CLANG_WARN_EMPTY_BODY":"YES","CLANG_WARN_ENUM_CONVERSION":"YES","CLANG_WARN_INFINITE_RECURSION":"YES","CLANG_WARN_INT_CONVERSION":"YES","CLANG_WARN_NON_LITERAL_NULL_CONVERSION":"YES","CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF":"YES","CLANG_WARN_OBJC_LITERAL_CONVERSION":"YES","CLANG_WARN_OBJC_ROOT_CLASS":"YES_ERROR","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","CLANG_WARN_RANGE_LOOP_ANALYSIS":"YES","CLANG_WARN_STRICT_PROTOTYPES":"YES","CLANG_WARN_SUSPICIOUS_MOVE":"YES","CLANG_WARN_UNGUARDED_AVAILABILITY":"YES_AGGRESSIVE","CLANG_WARN_UNREACHABLE_CODE":"YES","CLANG_WARN__DUPLICATE_METHOD_MATCH":"YES","COPY_PHASE_STRIP":"NO","DEBUG_INFORMATION_FORMAT":"dwarf-with-dsym","ENABLE_NS_ASSERTIONS":"NO","ENABLE_STRICT_OBJC_MSGSEND":"YES","GCC_C_LANGUAGE_STANDARD":"gnu11","GCC_NO_COMMON_BLOCKS":"YES","GCC_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_PROFILE=1 $(inherited)","GCC_WARN_64_TO_32_BIT_CONVERSION":"YES","GCC_WARN_ABOUT_RETURN_TYPE":"YES_ERROR","GCC_WARN_UNDECLARED_SELECTOR":"YES","GCC_WARN_UNINITIALIZED_AUTOS":"YES_AGGRESSIVE","GCC_WARN_UNUSED_FUNCTION":"YES","GCC_WARN_UNUSED_VARIABLE":"YES","IPHONEOS_DEPLOYMENT_TARGET":"15.0","MTL_ENABLE_DEBUG_INFO":"NO","MTL_FAST_MATH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_COMPILATION_MODE":"wholemodule","SWIFT_OPTIMIZATION_LEVEL":"-O","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e983e45497ad99b5f0ab9ebcda8afbb048b","name":"Profile"},{"buildSettings":{"ALWAYS_SEARCH_USER_PATHS":"NO","CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED":"YES","CLANG_ANALYZER_NONNULL":"YES","CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION":"YES_AGGRESSIVE","CLANG_CXX_LANGUAGE_STANDARD":"gnu++14","CLANG_CXX_LIBRARY":"libc++","CLANG_ENABLE_MODULES":"YES","CLANG_ENABLE_OBJC_ARC":"YES","CLANG_ENABLE_OBJC_WEAK":"YES","CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING":"YES","CLANG_WARN_BOOL_CONVERSION":"YES","CLANG_WARN_COMMA":"YES","CLANG_WARN_CONSTANT_CONVERSION":"YES","CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS":"YES","CLANG_WARN_DIRECT_OBJC_ISA_USAGE":"YES_ERROR","CLANG_WARN_DOCUMENTATION_COMMENTS":"YES","CLANG_WARN_EMPTY_BODY":"YES","CLANG_WARN_ENUM_CONVERSION":"YES","CLANG_WARN_INFINITE_RECURSION":"YES","CLANG_WARN_INT_CONVERSION":"YES","CLANG_WARN_NON_LITERAL_NULL_CONVERSION":"YES","CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF":"YES","CLANG_WARN_OBJC_LITERAL_CONVERSION":"YES","CLANG_WARN_OBJC_ROOT_CLASS":"YES_ERROR","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"YES","CLANG_WARN_RANGE_LOOP_ANALYSIS":"YES","CLANG_WARN_STRICT_PROTOTYPES":"YES","CLANG_WARN_SUSPICIOUS_MOVE":"YES","CLANG_WARN_UNGUARDED_AVAILABILITY":"YES_AGGRESSIVE","CLANG_WARN_UNREACHABLE_CODE":"YES","CLANG_WARN__DUPLICATE_METHOD_MATCH":"YES","COPY_PHASE_STRIP":"NO","DEBUG_INFORMATION_FORMAT":"dwarf-with-dsym","ENABLE_NS_ASSERTIONS":"NO","ENABLE_STRICT_OBJC_MSGSEND":"YES","GCC_C_LANGUAGE_STANDARD":"gnu11","GCC_NO_COMMON_BLOCKS":"YES","GCC_PREPROCESSOR_DEFINITIONS":"POD_CONFIGURATION_RELEASE=1 $(inherited)","GCC_WARN_64_TO_32_BIT_CONVERSION":"YES","GCC_WARN_ABOUT_RETURN_TYPE":"YES_ERROR","GCC_WARN_UNDECLARED_SELECTOR":"YES","GCC_WARN_UNINITIALIZED_AUTOS":"YES_AGGRESSIVE","GCC_WARN_UNUSED_FUNCTION":"YES","GCC_WARN_UNUSED_VARIABLE":"YES","IPHONEOS_DEPLOYMENT_TARGET":"15.0","MTL_ENABLE_DEBUG_INFO":"NO","MTL_FAST_MATH":"YES","PRODUCT_NAME":"$(TARGET_NAME)","STRIP_INSTALLED_PRODUCT":"NO","SWIFT_COMPILATION_MODE":"wholemodule","SWIFT_OPTIMIZATION_LEVEL":"-O","SWIFT_VERSION":"5.0","SYMROOT":"${SRCROOT}/../build"},"guid":"bfdfe7dc352907fc980b868725387e98ab0849b3c8d2627830dfc45f1064e777","name":"Release"}],"classPrefix":"","defaultConfigurationName":"Release","developmentRegion":"en","groupTree":{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98d0b25d39b515a574839e998df229c3cb","path":"../Podfile","sourceTree":"SOURCE_ROOT","type":"file"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9872eebb2da253991c84bbba8bb96b7dc2","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/ios/connectivity_plus/Sources/connectivity_plus/ConnectivityPlusPlugin.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e986bfcd66e2b6cf7925cc55086297eb7f7","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/ios/connectivity_plus/Sources/connectivity_plus/ConnectivityProvider.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d3e377babb11fdfae36e092f1ec8d8fa","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/ios/connectivity_plus/Sources/connectivity_plus/PathMonitorConnectivityProvider.swift","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98356935c986018bb3098689ec7a3a26ad","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/ios/connectivity_plus/Sources/connectivity_plus/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984b1b59b290593f3f53d84395a019201e","name":"connectivity_plus","path":"connectivity_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b66d924894b36ccf0ebcfe14eeed3242","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981dcb28f2eb2aebbab207026856f91679","name":"connectivity_plus","path":"connectivity_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cd9187c205f4f56b232aaf2e8f7d2d3a","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98efc8686127d03265985829209746ed3b","name":"connectivity_plus","path":"connectivity_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f32b7612b715025d939946c13b5f95ad","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989d2c7ffb7d499264d3ca54ab9ebf6dc9","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d97de30841b1b7482afb92e02d5f8688","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982fb0cc331e27ca492b307db1ce4385af","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987deffa9747ca42b15c2e11bbf025ce38","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985701dcae05d10e58be71f8b68aa2d3aa","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989095aabbdefdd53c3c205d8866fed341","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9811efd3e9b0db508a1bd261bf13b8994e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bceb458ad9200d64e94a2115c1d2acb9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9807f2f73545ea0f1ef9e6cffdb71cfd4e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9869cc40f3b10b02ef74096dc215c83df4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f9e12b79711ce94d8ad5365c9993e8aa","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d17ffe36d788ded394e94f28783073e5","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/ios/connectivity_plus/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98cd5b9d60bba3163f04eb18847dfd7bb8","path":"../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/ios/connectivity_plus.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e985c280e59a0174ae85c79082f191c31ba","path":"../../../../../../../.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9841a4b6e9e4048bc14ab2dd6a93aca2e1","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98b24d747c3d4c51f1efcc8009f8d58d21","path":"connectivity_plus.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9843a96d5fd96805d46d0692d9325d980d","path":"connectivity_plus-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98c5657471b7aaf28b291542855696cf95","path":"connectivity_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9865038124f722326923bedf8887fb4568","path":"connectivity_plus-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983cfcab79a54914cbd81d8b9377f5935e","path":"connectivity_plus-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e987564ada9b3c747132b7cc328c7354080","path":"connectivity_plus.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c497507cd3183e768a71b5fcf97576db","path":"connectivity_plus.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e986764caeda1950247bf09e61c6313f712","path":"ResourceBundle-connectivity_plus_privacy-connectivity_plus-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c14166c2478a825fc51ac6a45910366b","name":"Support Files","path":"../../../../Pods/Target Support Files/connectivity_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e9a8689a256e7d18015ada7c5a02b3b6","name":"connectivity_plus","path":"../.symlinks/plugins/connectivity_plus/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d110aa5dfaeaf8ea6250e3a6e42c9377","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/dummy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b06d459d0049725472a04cf058e155fd","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/FLTFirebaseCorePlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ab994b56d016e955434bb67352a80e60","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/FLTFirebasePlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982afeebd074f91a717034051b3be1a18b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/FLTFirebasePluginRegistry.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bd2f07f57b1e47a2b408da49bd40c973","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/messages.g.m","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d1a0058ce404d361cea2717dcb3a2036","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/include/firebase_core/dummy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ac552192d9746ac7bba22225198f7e43","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebaseCorePlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989e601b519af9d3bd7518ae8d251348ff","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ccba96fd247c956e74b9830e04e2d006","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/include/firebase_core/FLTFirebasePluginRegistry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98993ffba6108659de3a4235da0b8468f9","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources/firebase_core/include/firebase_core/messages.g.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98d88948ffc683b8701aad7c1d9785fd77","name":"firebase_core","path":"firebase_core","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983062bc8a1af7484e9e220e5460023121","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98116825f36a82be9c2e616f9798826e4f","name":"firebase_core","path":"firebase_core","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c807cee1553c7c19297423e53f07168b","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9821b408d1dc3e359c2228b6f0d4101ef8","name":"firebase_core","path":"firebase_core","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dd72772c2741c8f00e4a52674c6cd4eb","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989caab0a2e712a9a96490fe867101d051","name":"firebase_core","path":"firebase_core","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9823e216047b6d9ba0f5b52a8e3bef15eb","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a218131b398015e2fe509b68ff5d9b32","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980ada16bf3256523dce3200b786385b3f","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983d4ef17ce94a416a562aa23e7595f693","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98835fac35819077ad53815530fee48f27","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dc077dbd3bee4662ab579d3ec9378095","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986b4c483810971dc43f7f7fa25972e077","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bbfb01628981bcdf946a5b52b86cfa7e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b307a41a68c2a42fa44f8625d32adb95","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9802b8868fb58e895cec925a1d347925b8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984d4efea4e605598cd6d92a0dbccff312","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986aa608920601012c6c904626ded5818e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987c253a49e423da70fcf5356afaf1dcbe","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98a4a30928bb571e1e549eca967012deb0","path":"../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/ios/firebase_core.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e984543e9a052fbb9517405556cf8f3dbd0","path":"../../../../../../../.pub-cache/hosted/pub.dev/firebase_core-3.15.2/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986fdffc0603d7f5600b5ce4a33e2bab83","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e980e953f1d25286130e66cb318c233c7ba","path":"firebase_core.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98effa16c5987aca27bdd9dccc14f1a6bc","path":"firebase_core-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9810d73f8486c9329c7b2ae53fb89566e9","path":"firebase_core-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9822501cb10bb30c70b18b91d5f8995aca","path":"firebase_core-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bd39bbc3a2215e0f7777c5fa7ff6f934","path":"firebase_core-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98fe29903a20bcf6761c2ae17d2f17fe0b","path":"firebase_core.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e986477926082e2bc18055c3350f95b5793","path":"firebase_core.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989c7716f4230005b1d7276d461852f05e","name":"Support Files","path":"../../../../Pods/Target Support Files/firebase_core","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982fb62576e5b4832adbad9eec3b85d660","name":"firebase_core","path":"../.symlinks/plugins/firebase_core/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a6d095d1c7788cd9870ecd39443c2a98","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_in_app_messaging-0.8.1+10/ios/firebase_in_app_messaging/Sources/firebase_in_app_messaging/FirebaseInAppMessagingPlugin.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9879cbc2d3e996c8920cc9c0e1293d1999","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/firebase_in_app_messaging-0.8.1+10/ios/firebase_in_app_messaging/Sources/firebase_in_app_messaging/include/FirebaseInAppMessagingPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9845bf2d1fa47bb74b9089a9619f156150","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980498ae7e8153a4a4f640a95b08b6de9f","name":"firebase_in_app_messaging","path":"firebase_in_app_messaging","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a9c63b24c96ac5c582e7deb31c1ced8f","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98edbe7c0258c9aebe3641abea79f2dc3c","name":"firebase_in_app_messaging","path":"firebase_in_app_messaging","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985ab7e17f26b323507bccf97de39c63c0","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c12b3985aa70757367405d5828929cfb","name":"firebase_in_app_messaging","path":"firebase_in_app_messaging","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9845f0287c2601814fa2d8f3148634671e","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d60ae8a5c97ff6e8e6ff0d79787d363c","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9866d59a9d728392ad1e68d0fa54b3a673","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9865cb0804df0e18f9b5bc8daa3cd2c6eb","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984320a27ddd9c12502b4d0f466c68df81","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9826945fa28d2081e2c3131b8e782b8088","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9823a1172f21e0bb22cc771768b8b8bb91","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ed67e42ca8113576dcba642159413692","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9844ecab0b99a89cbf5d9da3da4b43cda0","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985379d71065e3a84c3b3f8d5275df0a02","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989d3519c9544e67c316a45ea78473607f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9807228001c25a8b5fbb95f7ab5532f491","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e6a6bb61e1c00f2f23d0868f3f0bd923","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/firebase_in_app_messaging-0.8.1+10/ios/firebase_in_app_messaging/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98aba2c529ae57fed0053ff9f29e9bb7b7","path":"../../../../../../../.pub-cache/hosted/pub.dev/firebase_in_app_messaging-0.8.1+10/ios/firebase_in_app_messaging.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98f2d975a6497aab160a5906186943eda0","path":"../../../../../../../.pub-cache/hosted/pub.dev/firebase_in_app_messaging-0.8.1+10/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983ed27aa450928074010268437cee69f7","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98ae9d8208f9cddbbca7a149d05c6a21f7","path":"firebase_in_app_messaging.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d114160599f6f4ccf5c85591669b0b03","path":"firebase_in_app_messaging-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e980d2d18b306b2f13658754850d776fef5","path":"firebase_in_app_messaging-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a92868a92787c395665e4810af6bdcfd","path":"firebase_in_app_messaging-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98649b2538baf62e1c7bbb39811380b4cb","path":"firebase_in_app_messaging-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98180b674572cdb3e9695c259b09d2ce32","path":"firebase_in_app_messaging.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98831890504e8ae337c3b9356141d820c3","path":"firebase_in_app_messaging.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e1942dc5d8c24257191673e789bb1faa","name":"Support Files","path":"../../../../Pods/Target Support Files/firebase_in_app_messaging","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980a1375f5705dc4b123dc7a475cc661a5","name":"firebase_in_app_messaging","path":"../.symlinks/plugins/firebase_in_app_messaging/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e982b588ed474ff0912d93391422d53824a","path":"Flutter.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bd71a1b1bdb2d6dd7321c3ad8457fd96","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e985c18f34f813c55ef325687f54df8f2c1","path":"Flutter.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f6b0c13da80591d540151e6658196652","path":"Flutter.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983e2917d4dced88547a86ce1b40f27d98","name":"Support Files","path":"../Pods/Target Support Files/Flutter","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989139e183da32bfab8df12037eeac90c6","name":"Flutter","path":"../Flutter","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cee0377b125afa6107dd7b491d769fae","path":"../../../../../../../../.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ios/Classes/FlutterKeyboardVisibilityPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d0934a8729b86a7bd6f01e0cb80ae163","path":"../../../../../../../../.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ios/Classes/FlutterKeyboardVisibilityPlugin.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9806a6ed31ebc874202a1e2b5639d13408","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98568cae7c91a292b26bb408c19dd01679","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989faf52662ee76138c300552384e5bedf","name":"flutter_keyboard_visibility","path":"flutter_keyboard_visibility","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cc9ffeee3649e552bc5ad426ce85bbc0","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bb18e9e1518cc5c2e49604be1ef60468","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f3f07cb4cc0af93198a396bc7f6fa37c","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9821389c52d74221740bdc4a8ba860dcef","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983b95953c305be557dcdccc7205acac39","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984b762fc98e2a35ac813ff1f1cd439485","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9825b428e435278d00068f3e3c0f2a2f74","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9861a0284e71ac9302a53d9f1c3d450c7b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98789d0b61ce3fee6e5df0f55c61ee5d51","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c71a3792017b1253f7b0857c3d37b42c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f2ec2975bf92d62286a1fef61fab30a7","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98a7f864df7002011e7a8a16aec54810df","path":"../../../../../../../.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ios/flutter_keyboard_visibility.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e980cad88fcfce088b8b999b3837274706d","path":"../../../../../../../.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ae75b9e6aca8f6ea827d0709f93a97a2","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e981fb21e899ac3b16670635771b77d0dee","path":"flutter_keyboard_visibility.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f9b76277262d870270dff71f2de7d97c","path":"flutter_keyboard_visibility-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e985a2d1e20e6d692da28acb26f515b15ab","path":"flutter_keyboard_visibility-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982b186801769c3201b172cb93348b26c3","path":"flutter_keyboard_visibility-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c920612d05367c58a1a6d0117365cee9","path":"flutter_keyboard_visibility-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982533737f4cfec9c1d0f9027e946a9789","path":"flutter_keyboard_visibility.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e980226329c91a2d55ee7019bcff2b6daaf","path":"flutter_keyboard_visibility.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a9f5aa239ce15b64231f1cda1be29edc","name":"Support Files","path":"../../../../Pods/Target Support Files/flutter_keyboard_visibility","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9835ee63c3df1aad6dde609fa6b6eeebde","name":"flutter_keyboard_visibility","path":"../.symlinks/plugins/flutter_keyboard_visibility/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a46926607c95bc947f6d4965ff95deb6","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/ActionEventSink.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9858854f76dcebec981a77fece01fdac21","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/FlutterEngineManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98844e635e0437206d75e79821f4d32122","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/FlutterLocalNotificationsConverters.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9864e07e9a0210c5af9437e10ddbe6dd17","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/FlutterLocalNotificationsPlugin.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e985631588caf089fb981872a139274889d","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98487d44a4141755502cb7483d5114400d","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/include/flutter_local_notifications/ActionEventSink.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ccdadac3f09ac35d5dfa12238752b175","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/include/flutter_local_notifications/FlutterEngineManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b3739256d545e98a79ff6fc34a802ab","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/include/flutter_local_notifications/FlutterLocalNotificationsConverters.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f2755d3c4b8488258035cc54059f3204","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources/flutter_local_notifications/include/flutter_local_notifications/FlutterLocalNotificationsPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985893bce05c65ed33837f56fa5d3899c4","name":"flutter_local_notifications","path":"flutter_local_notifications","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b736dc2d9376722ed85d8d3fcd708d08","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982ac8ca2feedeba2203faf6f97c7ae42c","name":"flutter_local_notifications","path":"flutter_local_notifications","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fbad9b98ddf6a49084bda47d69d460f1","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9898de37fd1b9f755a5ec1e16271a06728","name":"flutter_local_notifications","path":"flutter_local_notifications","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bf88a9fc4f9ce996468e04a51177dee8","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d85144f45508f3cb00f4f6dbcaeee263","name":"flutter_local_notifications","path":"flutter_local_notifications","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9814f5a350fe7b2b22678db36bc326c146","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98426b5825fe10bca01b9f25f79958457d","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98401f0c0a85356997a3fd7c59fa361502","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983808e7162ebfd57bf1c44b4c8c70997b","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981e0e0e9ef14a0512cd0df496c4687310","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98831ff1c0d18a8c7cb0ae566601569b6f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9851e88438f26dbcc187f69ccef246a557","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f9003c94ae11cf0d71022b5950664f41","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987c57b3774191d027412c3ea280375424","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9888b957727798a838176f593e288273e4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98015e36eedd0417b5826ba939f2eb9353","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98808e3a9b51791f5ca153bfba6af06c18","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bce16711e1b465b8e79397d5ebe2b6d2","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98ae447042d2ce8d1be9d7da8d4c5d655b","path":"../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/ios/flutter_local_notifications.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9829f999b9f6827858cabe5590006ea29a","path":"../../../../../../../.pub-cache/hosted/pub.dev/flutter_local_notifications-19.5.0/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983ab07c50e7a3a383f3431a90dd1dd1dc","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d5dc8b1e9df90f08d142b2bff596e826","path":"flutter_local_notifications.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98026e739adf3b7d061385dacab545252e","path":"flutter_local_notifications-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98bac028deaca37a2f58760ecf939949b8","path":"flutter_local_notifications-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d18c0ef7db2b4abd79468848122f7f65","path":"flutter_local_notifications-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987052c322d6b0d77ddfe96c4efd1420d2","path":"flutter_local_notifications-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98bdfa794a409e8575755a64d622769cd9","path":"flutter_local_notifications.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9870bc7b08350d844146018ec7647687d6","path":"flutter_local_notifications.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9827dc3a667f146016411a8c46b0ed5dca","path":"ResourceBundle-flutter_local_notifications_privacy-flutter_local_notifications-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e6005b82ce69a3c120d225ddfb518ccb","name":"Support Files","path":"../../../../Pods/Target Support Files/flutter_local_notifications","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9860fb47c46e47af7db866cd8629a7e5cc","name":"flutter_local_notifications","path":"../.symlinks/plugins/flutter_local_notifications/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98771fe79d0f1c89f044a66644403264d4","path":"../../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios/Classes/FluttertoastPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98151d6e26c2ff59dc98c12f4eeb567331","path":"../../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios/Classes/FluttertoastPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98476b9ad2385374422c80ba343be38ea4","path":"../../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios/Classes/UIView+Toast.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b2a800124419d4f0ce48e797138b1168","path":"../../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios/Classes/UIView+Toast.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e981795ec321c9de54f7279e6f4d04e2ad4","name":"Classes","path":"Classes","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98a5726ed02f44eee070b219d5a64d122e","path":"../../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985d7c8819585726c17184b0097168b8b1","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985b78b662b0d45adfeb384fd3eb80dc02","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98835b47ecc0607a68b5106d780f07bfb7","name":"fluttertoast","path":"fluttertoast","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9872ea552cf9b28a2f458c7da71888a4ac","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98954b1c36924baaea96a71c2f8bbb6c9e","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98731ccd078a616c966e89939e893ab116","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981ef5927913ce3b31aefd8c6329434475","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983ebbbece4a5f12a8836f62d994f99686","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d592afc26697827bc9850a6fb8fec0f8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984e0115ca75227475a72e031d02cbbd06","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982ff6936a279e7962fe58039d77a7a10e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9814e716f9e46875f41b107f9c182dbcdc","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dea924d8a2143d62b4f70413481a51ad","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980f2efe8794ea8758d3095fe1ed0202ed","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98295b6056cf2cc4282c87c70c20d9aa4b","path":"../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/ios/fluttertoast.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98417df09d53559450570bdd488ea98000","path":"../../../../../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.14/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984613121413534004573d9310beed36e5","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98bce1a467bae1740ae59a5f5c89d15763","path":"fluttertoast.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ca76bf7f3a374247ac66b93a176a266e","path":"fluttertoast-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e981427a4f26a159836bda5759011d5d03d","path":"fluttertoast-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98795bb0135c2786bf5a423879bc152439","path":"fluttertoast-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987e51463547b2bb3cd449e240301f162b","path":"fluttertoast-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f9466b5323060d69426a9c88dccb7266","path":"fluttertoast.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f2be65e3ce7ab755bdc018c7db50740e","path":"fluttertoast.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98f3dfa7961a02105af144b2a1cc57c847","path":"ResourceBundle-fluttertoast_privacy-fluttertoast-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e2d6f370bd16e793889d357c2c89b2fa","name":"Support Files","path":"../../../../Pods/Target Support Files/fluttertoast","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e27d7f330536eb85deb6437b9bb23f12","name":"fluttertoast","path":"../.symlinks/plugins/fluttertoast/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986752d2fa73b1704aaa89a4ddef4502ec","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/GeocodingHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cf51765272905a51d9410030708075a7","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/GeocodingPlugin.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9822353b269498ef546ebf9cc9ed2fb2b2","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98250c62023b9a5bf4616fafde9dfa51fa","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/extensions/CLPlacemarkExtensions.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e980a3f6a116833bfef71089aee8c59e39d","name":"extensions","path":"extensions","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e8dc899b44c618d7ee91c6138549d36d","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/include/geocoding_ios/CLPlacemarkExtensions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987dfb61622c6379e5e3414eec8ac940fd","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/include/geocoding_ios/GeocodingHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983a3382442cdf5da545627149ee3cf300","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources/geocoding_ios/include/geocoding_ios/GeocodingPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98532bfe35293181be81792a1148a7685c","name":"geocoding_ios","path":"geocoding_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98903d2492280c4ac46d7ac5d2d732bc56","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ee3794b6b8f40e1d8f20122b1a8e1a39","name":"geocoding_ios","path":"geocoding_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989edac0035e3ab03b4692b728131df1ac","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a2a3bf6dc671b03081739b8ca84ea1c4","name":"geocoding_ios","path":"geocoding_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fbb68347ec355d30af5dc9bb68bff9bc","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e5ac3590773167912a1a1f83521a1980","name":"geocoding_ios","path":"geocoding_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c4249ff27849379588e7b5ce5eb305e0","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985ccf2748ac12b06074d73a098064ba66","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9845d702e09a4f72cd2f09d3a49ed3684c","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987ef8cced3c41efcc7e4673e0b7c2b5fb","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98172ae7fc82851cc47b3f918e28b4f68b","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982e9d3fbec2ad7d5405989f60c0a393b7","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9805297f82bf3620321bddbbeb8a27b365","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98721ee5cea485c26717d3b6581f9e2f24","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890d0a44635d048bc8abaca05dd572377","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e8a14355fe15152eeb75df89caf60880","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ddf98643bdb4de64addfe4e307e02967","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b0b54f7bb4b42570e1223fa4138fb2be","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986d7584b5eb3e856ac8e5b6e753ef3eee","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98539af73c6ea642daf4fb63e533b16407","path":"../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/ios/geocoding_ios.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e988ab177f0b22bc55eadf179d0bd0d0375","path":"../../../../../../../.pub-cache/hosted/pub.dev/geocoding_ios-3.1.0/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e988e8397611a24580a4a8fa500fd765","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a588da32a2df45c90159b328559b733c","path":"geocoding_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98db8bc0b08a220e285e9062da25145a94","path":"geocoding_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98597347c68dc6d6f412dd23e61e9cb1eb","path":"geocoding_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c23e10e3463056ce8b2ba6efc68dcb8a","path":"geocoding_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9876436220574d6b28081bd02f14ad7db9","path":"geocoding_ios-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98edf33bbee7e91972546501d8a5ea8819","path":"geocoding_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e980012aacba8110850068ae9e1d5ec2b1f","path":"geocoding_ios.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e986b9f2c672bb3bf49bb5b7f4ab73c0e94","path":"ResourceBundle-geocoding_ios_privacy-geocoding_ios-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9871395a1545b57dc712f05e4c5cb6f178","name":"Support Files","path":"../../../../Pods/Target Support Files/geocoding_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ca551eb768c8d0163314ee25434fc2fb","name":"geocoding_ios","path":"../.symlinks/plugins/geocoding_ios/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b845c16a350965527b54da4d1c643a43","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/GeolocatorPlugin.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9860094f8e2106544e41bd607fdfb11e1d","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ece2eef75e1814398df82666e5bd595d","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Constants/ErrorCodes.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a02d9454032ee62ca469c32aef52538b","name":"Constants","path":"Constants","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c8dd239195f6f218f85e9645dd4fcf5a","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Handlers/GeolocationHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989544664f5b0d31832a153c1eede2b2cc","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Handlers/LocationAccuracyHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98206df9a8e0975193ae2bf6b8c0ecc32a","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Handlers/LocationServiceStreamHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c910f5565721a3811f9f067c798a59e5","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Handlers/PermissionHandler.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9800714bc229d78f328390537f15034d75","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Handlers/PositionStreamHandler.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e980f7fc6e16f1ffa7cf4f28e6b5bceb7e8","name":"Handlers","path":"Handlers","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982ad300fddd5eb7317568438aaf1dd688","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator-umbrella.h","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bdac6fc933c7467c798f38adcae91a5a","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/GeolocatorPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983f93d2ee9d2eccf1be6e8d02a6a44f87","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/GeolocatorPlugin_Test.h","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985361a5d58dc547bcf7d64bd7c0034f97","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Constants/ErrorCodes.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98971945f2a91fbb8e5f5927b2a76c4648","name":"Constants","path":"Constants","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986d39ef017f9fdc4c658d18d3accd8359","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Handlers/GeolocationHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b8f59378873268962f79f27fe1704b04","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Handlers/GeolocationHandler_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98909823f343e416cc4f36d3c05eea548c","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Handlers/LocationAccuracyHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893efb63726e9eccae55394c6a7d4f812","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Handlers/LocationServiceStreamHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98859e4823d29d35f1e93f69a7831a68c6","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Handlers/PermissionHandler.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98351efa4f1d0fed3ca28603be2784f731","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Handlers/PositionStreamHandler.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98032cea909c929c053c96402db4f1593b","name":"Handlers","path":"Handlers","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985e2396e1bb185393739b2ba649e21d94","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/ActivityTypeMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985acf905fa3d0d81b7064be4e655d8297","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/AuthorizationStatusMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981be47100951535e1a34cc15e2a585567","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/LocationAccuracyMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b9c1e9c8de949d3626824d529fc62834","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/LocationDistanceMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d7b72feb113d2e1407d589ad40f7f08e","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/LocationMapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9858a37b50b36e6b7e2ca27cc437411854","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/PermissionUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980a0bce55d257765176e562e953a12a2d","path":"../../../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/geolocator_apple/Utils/ServiceStatus.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98330c227de113f29945671505b2267a42","name":"Utils","path":"Utils","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9863a730eef0982cd26a46d21e6923029f","name":"geolocator_apple","path":"geolocator_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987399dc9a778f9d949dd0e1ed3a0d8ea7","name":"include","path":"include","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98510b3cd61f7993d657d8fb4073e91dbc","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Utils/ActivityTypeMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9821479bdb8b95e80a9c837c2f46e4bed0","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Utils/AuthorizationStatusMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98996f791dc67fb1b8ec3b1dbda0f0846c","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Utils/LocationAccuracyMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980a7b00bf5d9c10ffd07035729aeeb0b0","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Utils/LocationDistanceMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981e107c09be2611dd97f32b49f1d95fe8","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Utils/LocationMapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d8f3237e6262447f2bde62daa6428e7c","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/Utils/PermissionUtils.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9860b05a6c4474567b645d4596a8f9f04b","name":"Utils","path":"Utils","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98eb13d850aa2bbbbb792ac55546358262","name":"geolocator_apple","path":"geolocator_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b5c50072f0c6f06b0e18e73d30c0706b","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98259541090cf1c8a9e5cc4985dfa3e359","name":"geolocator_apple","path":"geolocator_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9825b985413f6c93acb85325cc8c4dedfc","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982add136c082fbb999a53b5aaf2f6269e","name":"geolocator_apple","path":"geolocator_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9828581dcbb483b5cf32eaab82bd7b51e5","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fac8260ece936ae717b5e7b096385643","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9867997c2a602ea5a6bad6801cf8f6e9ba","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982ede85bcb5270cd3ad57dd47aefa9166","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9808dc181ceb8fe3ee3a8795b5009d3e3f","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986bc9b3ed9dec1fe328a3d9b9a4a051dd","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d18fffe564568be3a23c18311be5048c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98023aee3fca2caf01da416ba4d745b8c9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ae864dbadb5d906beb460c799b7778f0","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b92fbf7f79cb21a54e6e43640dcee0dc","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e8d28462e8673d0e76a85cfe312e2d98","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9883ba3f19b57e3e8fdf1d818bfe81a50a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985021fc1078d97b32829a5bad4b8388cc","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98772831a4d179d95c030160199722ecd9","path":"../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple.podspec","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e987385a253dd320cdbc24a616c820776cd","path":"../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/darwin/geolocator_apple/Sources/geolocator_apple/include/GeolocatorPlugin.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9805c9b8194aa4df470b0bf62054929dc0","path":"../../../../../../../.pub-cache/hosted/pub.dev/geolocator_apple-2.3.13/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98ffe3f44a27330512c1b2082e3f776585","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98ad879c4348dd1e435d7a5cebfb64c8b8","path":"geolocator_apple.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983f24e869c0eb01ae7c777cb18f512929","path":"geolocator_apple-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e988dc67bb21760dbddbf84c4d1ac8936d9","path":"geolocator_apple-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982a731378bf65aa2359ec67cb2aacd47b","path":"geolocator_apple-prefix.pch","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9805e51dd871dd6fb79e02d1cb5ab54212","path":"geolocator_apple.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98984ad40820dd938bfb9eba483d6ca621","path":"geolocator_apple.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e460d8747ce42bb2987ae973620c9883","path":"ResourceBundle-geolocator_apple_privacy-geolocator_apple-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98fb530f8238b85a5ae1498743abbf9b21","name":"Support Files","path":"../../../../Pods/Target Support Files/geolocator_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9804a4be9efa2bcd7fea6e03a52ef55f64","name":"geolocator_apple","path":"../.symlinks/plugins/geolocator_apple/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fcfb35c2b3e5b1e01ee91b37d05e8f26","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMCATransactionWrapper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987f7263dfe94caa3826ff6f62aedc4e34","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMCATransactionWrapper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d19b9c82b7077190eacc0c467101f141","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMClusterManagersController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b46b076742a0f1077af4c7961b7c41f3","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMClusterManagersController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a29996b847f1d957cce8dfeeee33d28d","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMGroundOverlayController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9811023691eee52d7fc1496a29682cba32","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMGroundOverlayController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980ded4190af776e2c49928e6a6b414f74","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMGroundOverlayController_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985cc0bfd4172648018f3ce99db95c74a4","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMImageUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980d142ba4a0a9d61b20da85342ad4d2a5","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMImageUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98054053b837e53259a3294183e77e840f","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMMarkerUserData.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d0226effdc87c44fa72f0b59e84a8d60","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FGMMarkerUserData.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9819421c6f291ec18235ab558d190b622a","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapHeatmapController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985242ca9dbdfb6a68e4002c5963ef40d1","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapHeatmapController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9800a2080b00ca7af1db67e74ef6c90cab","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapJSONConversions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e8cfbdfbcd15df9f8be9e6f1e773e2c3","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapJSONConversions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986cf26768efb170a2bf4822aa80b723de","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapsPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b8c9ba70d726acf8e51ac1e721ef0ab1","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapsPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98671ee5ca94b402b86b5cc4a552a85807","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapTileOverlayController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985dc973f06b3630551e9c1bf898006643","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/FLTGoogleMapTileOverlayController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e446a33c1142279efd907f3e26f07fa8","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/google_maps_flutter_ios-umbrella.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f5dba5a25fc0b70432707f6602250239","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapCircleController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fc6175e2764632da677d52a39e42bb16","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapCircleController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c869bacec39fff2a592c3a03a6c59d04","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dae0a8c3c1b21b81135dbd60e418d8db","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988de33f140ebd10baddad3db40d1d1991","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapController_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98994fad65d58036e76a7b6d381c9ff841","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapMarkerController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bd62a04e5c91bc2974e629d48b54d184","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapMarkerController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989fae1e76817a901579673303cbb831e9","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapMarkerController_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ddc3e3af7228cbb74a095d04bd158f9d","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapPolygonController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ef70dd8afacddb2d1008f9e7f129694e","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapPolygonController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9883982b5ff29bc2e61024da8a7d909365","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapPolylineController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e337abba84be7b94c2888e415ed66dfc","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapPolylineController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fa64621b8c03a903b346f2dba4543c5e","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/GoogleMapPolylineController_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d498d534c36d6542fdf40be4be07efa9","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/messages.g.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eca6f0884f2f4050a9fc56a4dfa66216","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/messages.g.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988e48c1f41f6bde038566a96c6cc4abc8","name":"Classes","path":"Classes","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e982979a5625dda625dc1c5ceb83fc7bb69","path":"../../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e988e5d04da65624b5c9c30053c539ef993","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9844ab184dc41d53c3f6f0c0cd960652a0","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984ce74c09f17cf06b73a2ce70363dcacd","name":"google_maps_flutter_ios","path":"google_maps_flutter_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98115df8bc1a7926d0115dcbdf2e7fd9be","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fcf9fcb096ba3a847bf800f101667e72","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d0861e1f02a8d6769912167ada09626f","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b60e13c0c2ffc59317de1d78ed154459","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98eae2191200c3d7c2d4f6dcbca44949b2","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984a28a80ab0db52f90e025e4ce940a6c9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9884e55350b9dac89c476234250647ad27","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989141bcc621ec9838945f17bb30b8198d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986f595392a3127119c2ffdaf297d3d818","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98741cf2aef431c78a497ecc80a8f23726","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98655a2f778414fca750ba4442b974fdbd","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e989374de4c197a37877094f9e5c4fe8066","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/Classes/google_maps_flutter_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e986d911d7d7daf36f35619994433e2518f","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/ios/google_maps_flutter_ios.podspec","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e986d292498d36934db6e6081b817624915","path":"../../../../../../../.pub-cache/hosted/pub.dev/google_maps_flutter_ios-2.15.5/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98d3a0fa213655d6ea7d764ea150e16e63","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e982c79b4142335ff4e8575fae83620b821","path":"google_maps_flutter_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aa3513025db45bd7ffe5ee391f9768e7","path":"google_maps_flutter_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e981cbae7fce79b7f40803de8e5aa975162","path":"google_maps_flutter_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9864d95b2c7003ab0c814f4fd6e571be22","path":"google_maps_flutter_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a263fd221541734798ccc759929cd54b","path":"google_maps_flutter_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98c7e8b3a905ece34a84a70af1409fbe9f","path":"google_maps_flutter_ios.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989df255caaa158c203b6e1cb013599a6b","path":"ResourceBundle-google_maps_flutter_ios_privacy-google_maps_flutter_ios-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e987c748e2a8232ba045760944c7824bc5a","name":"Support Files","path":"../../../../Pods/Target Support Files/google_maps_flutter_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98202a17f1f39983162aa97e1b66611645","name":"google_maps_flutter_ios","path":"../.symlinks/plugins/google_maps_flutter_ios/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9831c6eb038ecc641b5df96b1e375bccf4","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986ef66422ced8b769d4cb7df5751acf39","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98399677852d623130087aaa4bd645d78e","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d03fafe7c886a972766da3201ccf5279","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a018c1e6fffae5fa02911d9798d701ba","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989ad8a8208fec4dff0da09d4be427e42d","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9804faebe9fba6fdd3bb23e405538c85e9","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989684a7f0e7f682c1e22df99cc701a7fd","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9804de695d15e7c1ecc0f2a2df4b0dc737","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a403ebfefe1166b94820ad2978ff719a","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986ad242b7d18ed06584717fee5015156b","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bf7ce4d563e9e2a07116d5c17d660644","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9881c482685276103c565bbefb81728bb7","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985d0e21977fcd48e8bdc86be43d8b3dc0","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerImageUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982ce39739b5ae97d195a2e017d33e483e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerMetaDataUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988d5ebe2daf571c9cfe2197d3b490b343","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPhotoAssetUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f6cb9a70999bb0d38bf3a32aaa29faf9","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/FLTImagePickerPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980c828eb40974f7d098e68d25ae9da8cc","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/FLTPHPickerSaveImageToPathOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a45b6385912a859064a0d55301734a8a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/messages.g.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983d743bcd089218684ca9b3173789369a","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios-umbrella.h","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984b4b759359de6567f958e0099ac5f22d","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerImageUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ea6084ae9701920e2a7ec3fd1768dabe","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerMetaDataUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e1b2a1c49d2b52f6c94686ce236eb8cf","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerPhotoAssetUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cc6a64c7830b0aa4c7552f9427104acf","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ecb4349708caa90128e6920f09d605fa","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTImagePickerPlugin_Test.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b80d26c81532db8a3378019f5f787c40","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/FLTPHPickerSaveImageToPathOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f685603bc96a3a8c7d25a203789a68ae","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/image_picker_ios/messages.g.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a3c763782ab7634fe27f28d49a53b59c","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c83da3c03477bfdd742d4fc9994ee639","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98337b8df82587955982ea5207371c1e72","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988aaed2eda3915b61d66593f110a05690","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985c1f54933190f84737db08b1b141f7a5","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98843ad8fa5a7e1810660de050e663014e","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9834637759e770ba91f08474c29f57a1a3","name":"image_picker_ios","path":"image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e81670a65d409fe4b504fef4548a5fa6","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985e67c803c611e4fec2a7c18968617f82","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98daedd880c073d8d890e8b3211090743e","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988165d01e5f6ee15c751b07ecad659fe9","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986a424a7faa2c67782bf3fac0becd8bcb","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9823d5878836d00ed173cb8983f9ea967c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980c2b5e99577defc765a031873443520e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986028c96e217e559dd2933e33ec30183b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98eb17a6ade247ab2d01ecc155d4de24c4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890450f33d6ea70fc3a95372c0f240cda","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b0059ce4de9daeef30a52547e626eaa5","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d2f91f0a52e679cb570c34950bfea6cd","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980da9d112fc2e288bc47cb167465f08ab","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9886e7a8881028883c996865167a7a59f0","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios.podspec","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98062e3dbc5808d992d5ca239fe53daae4","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/ios/image_picker_ios/Sources/image_picker_ios/include/ImagePickerPlugin.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98d9d0a84825db2f9e1e78cb2e08e9947e","path":"../../../../../../../.pub-cache/hosted/pub.dev/image_picker_ios-0.8.13/LICENSE","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9840e5cbd3fbae86100a1ca2b0a8542cc9","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9833e865940e05d932f144efe3e0237d2f","path":"image_picker_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9899cbf1509f49e1f0c66bfa1b4f511ee5","path":"image_picker_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98c12d211467606b696e0b673bb5524c11","path":"image_picker_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981b7265c8d310f46a8a3d13c779e24b3b","path":"image_picker_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98e2453c6b1c942f8b1248825b856a67df","path":"image_picker_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98832082a829299906f5bc876ee63fb3eb","path":"image_picker_ios.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989f3d4ad6d0a35f1ef5f882d1498e582c","path":"ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e234e13c422b4c83c41ec803aa5859bd","name":"Support Files","path":"../../../../Pods/Target Support Files/image_picker_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c5a8bd4d2e9c17750db1fe450f8ee16e","name":"image_picker_ios","path":"../.symlinks/plugins/image_picker_ios/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9819617d51f3fcb6d97489bed9e4d120d6","path":"../../../../../../../../.pub-cache/hosted/pub.dev/location-5.0.3/ios/Classes/LocationPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98932a333c1e828e2adffb40da3a704879","path":"../../../../../../../../.pub-cache/hosted/pub.dev/location-5.0.3/ios/Classes/LocationPlugin.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98b3410cf8a73dc56b1935775b6789cea4","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98daaab249debf348438beaef5d7251ac4","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985d4c0ee04ac3feba63697a67732d624e","name":"location","path":"location","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ac303fe3773438924ae7e09c638ae8c4","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b7ee777a7b3d60528d17b146b1b1e01d","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98644649207bce5290862a5bd26ecf7d87","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98de3e415d501d5f6bc97c5fc65c8eaf74","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9835d52fba6a0c6c336e4c755de9234e59","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aec7af3559d771cc7602fe92d5be295b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9813eee8c7ebba957212eda96b436f8b5d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983b8801d6c7062de72429b10ea1ccff62","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a8500d7fabbe7fbdb308de0edc1ed72c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980810a33eaac3b62b66b4790b233162d9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983de70db29336279002b19b2eabf728b8","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/location-5.0.3/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98236bce4a8b31b2f4c51418eed3558214","path":"../../../../../../../.pub-cache/hosted/pub.dev/location-5.0.3/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98cad9fc358563da7eadf2d661d37fe8e5","path":"../../../../../../../.pub-cache/hosted/pub.dev/location-5.0.3/ios/location.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98fde28273a615071c9bd740cce85ffce1","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e980972f9b0a2e25430c71f0b69ea73b62b","path":"location.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98512badf6be63bbac4469b2b9109881b4","path":"location-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b94ada5055afc37c2e3898d16ae40b85","path":"location-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a11ff54d6f7f0be67309066a53ef958c","path":"location-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983b8c29a26df986e68f71012cec4f20fe","path":"location-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f8f026c85d3139a8d41de8937c69684d","path":"location.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98eb3929f763f883db16dafed5b59b1955","path":"location.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c34ad74c49cc8e95fe9c022aa6e1fd7b","name":"Support Files","path":"../../../../Pods/Target Support Files/location","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98de85297664f26ee960318c7feaad812c","name":"location","path":"../.symlinks/plugins/location/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986a52375664d64324da6ff4b081e5cea8","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/ios/package_info_plus/Sources/package_info_plus/FPPPackageInfoPlusPlugin.m","sourceTree":"","type":"file"},{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9849d2956f07fa59be71d84df9ce50f618","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/ios/package_info_plus/Sources/package_info_plus/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d75ccd733d3416d06e2f659b84a4d66a","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/ios/package_info_plus/Sources/package_info_plus/include/package_info_plus/FPPPackageInfoPlusPlugin.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c14702cfab6fd8a0a88c2203378b362b","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987ec45df8ee0ba8a9066fe32e6953f1c2","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9853403c452fe3a708630b5cd01d00d71b","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e8eecc828e203c91e16c3f917199d578","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985ce1716ce30d1e042eb960c12cf8b369","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985c68bec01af262915fef7d0160ea43e6","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986640a7cfdd5849ebcdab9b7786c636b6","name":"package_info_plus","path":"package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983d0592a10464640a76ec6deb98ce5be2","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e724cc0f240f15d28fab87087000149d","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984412e7979ee9e61388a93eee391caadb","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ff3e4115212f68860381f8122675cd32","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f2cf3058081c397340fe8a43466c4f46","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dfa0bbf156f9b57d05c2381affaf149f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980778d34c3920532c7fec644e33a7f145","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9849f2d6b343cf6e2d2bfb3e5f9bd3f4b7","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985d31f24234582f79427d30cf1cbd2f73","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d008cf48098959e0ee5b0f32f3f27b9e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c5cec5246acdf4bd77455919cd4710b5","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98742825e39bdce5f842a0a1a43ee6f766","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98936541accbc4d44f568b5d315de290f0","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/ios/package_info_plus/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9818af5b5e656c27bcb67eff9cc0bbe8ee","path":"../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98e7dc4212de1dd46bc23aae07e5ec47fa","path":"../../../../../../../.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/ios/package_info_plus.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989e3a03782ee9c082bab11bca8a319bbc","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d1254587b0f6216e522bfc2ca67fb4a1","path":"package_info_plus.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982fffccd20b93243842d93eb6ad1b4be4","path":"package_info_plus-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9826fbcfed059169209cc8a7cfeb0d0812","path":"package_info_plus-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987a2b8a2740b96bb499799f8804144bba","path":"package_info_plus-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98953eb2659a181e3bc1d6d697792159b6","path":"package_info_plus-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9840183a5bb3a6b7e543d99018fa2efc59","path":"package_info_plus.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982d7f419eb3718b8b24c14079835fe5fa","path":"package_info_plus.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98ed6f61ee2f6f0f979e3942e77821cd7e","path":"ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983e486606917428d25d6c45e0069ca33f","name":"Support Files","path":"../../../../Pods/Target Support Files/package_info_plus","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9876be8126887f3b5be9e813bccee0dc5a","name":"package_info_plus","path":"../.symlinks/plugins/package_info_plus/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e986e2ea521305edb284c9a134bbfbc76a7","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/darwin/path_provider_foundation/Sources/path_provider_foundation/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a94ca2cf47dd35932b5d3f95357ecf48","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e12b43a71685df1a51763bda559c47c4","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a0d3621b3979833ac88ef2343ad0664b","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fa2dc387dd26e0deb1e32812c56f5a0f","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98142d266438d9008a8eda1778f350fd7a","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fa8b4f7d053ab55a7766a909848213be","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a88516906b50728243c896657b9e2314","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b03b1b9f77947cf562dab075d1f2de0b","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9802077a0837acf722a242f387613a2ff4","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dc92780280992b3b16e4b701350bb72c","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984e0f14ca71b0db2536bddb5c266ebd09","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f0fbf7cfc93ceeb8aaba31ca2501ddb5","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d2d5125c99243031f96f0e8449979597","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/darwin/path_provider_foundation/Sources/path_provider_foundation/messages.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988eeeaf10672fb26d1f661b9ddc857541","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/darwin/path_provider_foundation/Sources/path_provider_foundation/PathProviderPlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984ed0e297702f71eb6466e87d24b5c2d5","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dea2562653e2dc2cacdf4ea51b434a17","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981b16d13d556f35792307d6abf7a3698f","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cceb5ee3a8c23f9948cbfea9a8151146","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98865ed4d5c09ad3026cb4da50e757cc1a","name":"path_provider_foundation","path":"path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98776f72735236319ba4bc29088789eb86","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f2715f9eaf7827d5fe04f21ba93c85f0","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984cf4b656707f6c5e4bfac22e9c7e7c67","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9839e6bb5881043a19a63a8cb87f18e009","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98461a3abcdca735ff3ac91d2b9f2f85e2","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98aa1bd843347455f6716b827f927d5bc7","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989851d9372dfb37454ce8741a9db95b27","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98beb1de1667f6c9ad44fd8fc12be1effe","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cbaeba2baf461e34b094c1003784a0bc","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98da18fd830eaccf3279d3e9c3e7b262b8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9893f910c7809ea45172cf1f2a054c4db8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9850c4f3b2a61c5cdc17fa243c6fbf8889","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f8342d553898c1c1117f66af921a6363","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/darwin/path_provider_foundation/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98e0bde5d2f941e0036b090ddddd7c0003","path":"../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e989ce5fc053316ad1e167196b5ddec06e8","path":"../../../../../../../.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/darwin/path_provider_foundation.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a53b579f3f63dd1eb0c3a8dfb0779f5a","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9827892b65c4f2e369931b77095a84d2b8","path":"path_provider_foundation.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982123b786b944731f885089ffe53e4a94","path":"path_provider_foundation-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98ff13ec63520ea3a9f980b8421bcce0f3","path":"path_provider_foundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988a2b09487190e22445779d62ca6596a3","path":"path_provider_foundation-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983dea99fc86e43127912b1cf0adec3c85","path":"path_provider_foundation-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98de1eef506778ed27c180efd52d606d0a","path":"path_provider_foundation.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e980033b112d6450edae8d624450ae13b80","path":"path_provider_foundation.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e8055ff618742b68a2e7396da58b3afd","path":"ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e982fd878ff6f3b536375f75010f61c285c","name":"Support Files","path":"../../../../Pods/Target Support Files/path_provider_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981b22577e89f93e821f10751649252101","name":"path_provider_foundation","path":"../.symlinks/plugins/path_provider_foundation/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9879cdc34c196e0551668fce836a413d2f","path":"../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/PermissionHandlerEnums.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988acf330788bc80d0e9a0a002669d36b2","path":"../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/PermissionHandlerPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9838d9b449e1df99bb3e4f95b7ad9969f9","path":"../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/PermissionHandlerPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f276a626ed9286a505cf3d31bd777f35","path":"../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/PermissionManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f7e3ed70acddffb12c30d4a6771460f6","path":"../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/PermissionManager.m","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dbfd295f12c007800c932f4f24967307","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/AppTrackingTransparencyPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9882f8befb398bd4fae5d79ff4e9f5587b","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/AppTrackingTransparencyPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98398d0e8d74d0f892526cf537e312cd85","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/AssistantPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b735813da91e2e5f2fe6add3b134c107","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/AssistantPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b83cdbcee318ad5facf9556c270d2062","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/AudioVideoPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9861c82b9db8a47473e424530597e2e24b","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/AudioVideoPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980f1411614cb82ecf69119acf9c4ea1d2","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/BackgroundRefreshStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f2b28f6a02ff8fd474eb5c78630913cb","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/BackgroundRefreshStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98182a4d1d22e00f884eb9ee789d25e7ff","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/BluetoothPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9873cfb9a4bbf5ed16d35652a00591ec7b","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/BluetoothPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fd6901d4770fc52c15998221fb95f9ed","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/ContactPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9812612720bf2420c01d7202567821b6f0","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/ContactPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98224d92080f0985ad3e356763a11d6a38","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/CriticalAlertsPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e10d210d2d54fca69d2b768fbbd13a0c","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/CriticalAlertsPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d63d89cd1fbc9c89aa470b7877a866ff","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/EventPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ca7c9f8da59363c34156fa297813276e","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/EventPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988b642fb257e048086d2dffa0876d68a5","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/LocationPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982e7e6141bf9a51fbac9be2cd2b27ac91","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/LocationPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b51896c86f014ed7fe39e15b54ab3e88","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/MediaLibraryPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a25ba82d4871040bfec800f4218ec076","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/MediaLibraryPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fb26cbb5831549b1e76d745a4bf3bd87","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/NotificationPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a5c2440b2cea8fc8462f3e155d4fc1d1","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/NotificationPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98781ef2b66c0ad0b9839eab14c4b5cf2c","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/PermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984a87d244924fcb786bc6aa8b7b656c2f","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/PhonePermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98239109c8a88f596c2252d970b70ab85e","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/PhonePermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98098a2d967439d77ba188df85e8ff70be","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/PhotoPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98439f42ae6513e0b48e0b3eedec4b5ee7","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/PhotoPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98128323170ba40290740c2fce45e161f6","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/SensorPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e85400f8b7b9cb48e430df24e15a3654","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/SensorPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9811a4f96d976df6a29a489c3a95ff819b","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/SpeechPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b8ccd5d26ac2ae6ee7f4d0a301d2a7de","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/SpeechPermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985601e76ffd75c287e24f8d6fa672c75c","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/StoragePermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98adf2f1c4e04b2b79776302c164bb38b6","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/StoragePermissionStrategy.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c748f1649e70414c63b738961ec6eac8","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/UnknownPermissionStrategy.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98969b3617878b4c6af0dd1ebfd3d2775e","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/strategies/UnknownPermissionStrategy.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9886313cbd87921c9de7cf483387e456d3","name":"strategies","path":"strategies","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980558be4c1a27f554c34378b2a25518e1","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/util/Codec.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9806be094affbbbf0870bbb05a17e5bbeb","path":"../../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Classes/util/Codec.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98d4acd4825a51d1d0bcaaa10a406c318e","name":"util","path":"util","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ba6e261d98b7d17b1eaa74098a2d26d1","name":"Classes","path":"Classes","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9867508e15cd39d5decf24d09ac0db0299","path":"../../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985557cffd256940a347406cf065c4597d","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a7cf795c0311f77cc558de1f02019cfb","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c6b9572a3ebf0bf4f5e77865124f212c","name":"permission_handler_apple","path":"permission_handler_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987a63dbba325007dd9cf51a7c4ca8d8c9","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9812cb221e853c60d8c2b6eab8339a592c","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ed4fa663b5e62fb11d681c104e0c88aa","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985f5549731e786dd062466f497dc1f5a5","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985e8b3a61395ff084340252f4e8037578","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890ea717ff4a7b1e551e382a0bdeb67eb","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9819688f421b3cef9cd2b17c8c5a1b9965","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c99b7093f367e04e1cd497d2874753c9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9817efef314168beaf86b57a7fcd44c729","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b20c573a88a96fa62dfc55618ccf0463","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bc3ae038031dd3461ecb2e97dfb001f5","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98c22c1fba3bf375ef514358d282e7b92f","path":"../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98d5d74381f226aa63b139b478bac0183f","path":"../../../../../../../.pub-cache/hosted/pub.dev/permission_handler_apple-9.4.7/ios/permission_handler_apple.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98679a5323dacda878b0c38657d765736f","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e986e4f3f8e54a7b191c380a57596792037","path":"permission_handler_apple.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a245186f766ee9e2a660cf650967cba0","path":"permission_handler_apple-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9821980c4fd6539ab0835e70320954608e","path":"permission_handler_apple-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a3eb51c96ecfc4d29fce756dc4db06fe","path":"permission_handler_apple-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981e2483bf11763f9da6df73fadd398487","path":"permission_handler_apple-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a64f3896535e2e8b8f2df82f6b10b110","path":"permission_handler_apple.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e983c223d510dcb0a44dc6710fddf454b91","path":"permission_handler_apple.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98713aa32fbe2297627487223a0e4020f4","path":"ResourceBundle-permission_handler_apple_privacy-permission_handler_apple-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983c60472d1985e551a204e04575769bd9","name":"Support Files","path":"../../../../Pods/Target Support Files/permission_handler_apple","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9899da72ea63a39673db879f95c92b5215","name":"permission_handler_apple","path":"../.symlinks/plugins/permission_handler_apple/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9825da8a5241970eedd353a61b4b1f2694","path":"../../../../../../../../.pub-cache/hosted/pub.dev/rive_native-0.0.15/ios/Classes/rive_native_plugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.cpp.objcpp","guid":"bfdfe7dc352907fc980b868725387e98f936a0d29d85992b5e0ece32ef4c08ba","path":"../../../../../../../../.pub-cache/hosted/pub.dev/rive_native-0.0.15/ios/Classes/rive_native_plugin.mm","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98eb0b74fbaad9b31fca8bf057e7705f07","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987c10b3f984c98743cfcc5bde6a8a64c6","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98385f35d5be4054ebfdc8bc3b9f1c3c1f","name":"rive_native","path":"rive_native","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fadb5fc9c48880bf7fd857cebfbdf75b","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9801e7f0a2e51e2b0b59a40d7115625621","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987b40da2a3355c1202fec3feb2f1d59ed","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989040b4dad2dc57a855db37f2bd8ad8da","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98453b173fbfc76ae82ae4ae8809783a52","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989e4c2d83428e0fd0115a4882be53b239","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dc3c53b761a9bea3be82392b3519474b","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989e101ffa99ce1e31b547439fcfdc6e0c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98492026091ca346269e50aa24bdb5d56f","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f4320c687dc88db3846763b22132c730","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98df2fb01f874ccce6352fb8902b4e5ec3","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/rive_native-0.0.15/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9857792306a4609aae40e4d034769e71e7","path":"../../../../../../../.pub-cache/hosted/pub.dev/rive_native-0.0.15/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98b090f52b4198aeb19c2b8b03bac58adb","path":"../../../../../../../.pub-cache/hosted/pub.dev/rive_native-0.0.15/ios/rive_native.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9835f26356ad92faafb84ff2933028bb9a","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a589a28ace87c8ffc9c2e93d1bae1d54","path":"rive_native.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d6400716f2ebdd9b24e07c30a4808f9f","path":"rive_native-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9872196002bb08fb5f78bc098818a24104","path":"rive_native-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b98f34660c22db724c7f28c303aefde1","path":"rive_native-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983bd0a8190203d1077a764884ae1ac030","path":"rive_native-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e986f7700d8a4cbe4b8940d5ca6f0476aa3","path":"rive_native.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98dcb5c75ff82170465cc341071011a839","path":"rive_native.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984570343c1b0ae80b2df6ce3ff568f63e","name":"Support Files","path":"../../../../Pods/Target Support Files/rive_native","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9802caf3b981dc8afeecd65ef9b6b13906","name":"rive_native","path":"../.symlinks/plugins/rive_native/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98cd5fadcc72bda6dd9da303d5f422b13e","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources/shared_preferences_foundation/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e216116906eeb45ed636526be0365b30","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e9d0e2e7e6bc4a9954a0695cb641c208","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9898c6c56ea7ae3c6c59d7424e5644b7e9","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b792b5149f6a27ad7607a64f037f72b1","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982496fc5fe9a67632701a66da0ceb8180","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9882fba0ea4aae40749eea4a316f2db6a2","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dc07e0ef94e829bef8e1d5e4fa22a9f9","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b4668af5c85854aff9455311606bc64f","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b2ca0d792895c7713286a806fd743a11","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987f964de4f76feecc4fb6460a8247f004","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c752123fb87c8496eb8c11879c4d5375","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984b0e5c0885b9b1cdf5a9a4a068ebc373","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9898462086af654cafdf68086318c87cd6","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources/shared_preferences_foundation/messages.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98fea17a22204334550968fdb7bd1efd3a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources/shared_preferences_foundation/SharedPreferencesPlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98666db11e051354019eb45e1ce7e60b72","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bca2e16ff3430f50852092e92f29d30c","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981867a74a36a0a4c998dd2869852efdde","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987c24d70c8e29436f812e6fc07332bfed","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9842b5d5425b224d7d84b4981787cf19a7","name":"shared_preferences_foundation","path":"shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d4fa4608af92af874c6587009d45994c","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9805b74e2e5dfc4cb2dc5bb99fe0e1b49a","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984c637287531413b6a8f69d94506ee444","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e980fed65e186348244005dfedac4179c37","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981d771c37a36a339f9452e65b9a6f4b31","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a2a0d66cbf61a3599198db29cd950027","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98373bbdf9249bf00718cf3f9e1f162e23","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9833b92b0080db305f422ed43262630da8","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983f4c9af32185d00db908bc0ea60d6742","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983f84416543891c7a2efe5ffed5b0b0fb","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ff90bcf56cecfd2452ac3e7a4dfbe383","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9803f8daa51c9d784faf5e1b9be8c8d084","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c7560528137f2ea8651fead0f97a0b80","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98ebed46fdab97467b2c90791d07a0325e","path":"../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98582f059506514e5ec3efe20bff203301","path":"../../../../../../../.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/darwin/shared_preferences_foundation.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98340363ff3dd2e00a048f772835fd89b4","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e985bf8a6e2ac977be59004c1aed02a7b25","path":"ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9895ca34e942804a30789bce95f474737b","path":"shared_preferences_foundation.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dbacbee193cb4e61fe7329fff091ba3f","path":"shared_preferences_foundation-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9803e8292ff09eec51b5e1599b074bd36b","path":"shared_preferences_foundation-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9844116ef8b046f4482b6707e9bd17bc60","path":"shared_preferences_foundation-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984a5a28702fa2bc41035c7b4195b0b6a2","path":"shared_preferences_foundation-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e987aa197d51bdafe96a679f336c5693be9","path":"shared_preferences_foundation.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98062ca8af23f11ed946f6757b30222f87","path":"shared_preferences_foundation.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e980da3360d420f1b9cabdfe3d36013e397","name":"Support Files","path":"../../../../Pods/Target Support Files/shared_preferences_foundation","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d64e5e135a87ab726c41f6e4d0a08d8e","name":"shared_preferences_foundation","path":"../.symlinks/plugins/shared_preferences_foundation/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98156e8f54359f3dd8eedd852746ff8a13","path":"../../../../../../../../.pub-cache/hosted/pub.dev/smart_auth-2.0.0/ios/Classes/SmartAuthPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b1d3c315dcb66660fdb81a961bee30b9","path":"../../../../../../../../.pub-cache/hosted/pub.dev/smart_auth-2.0.0/ios/Classes/SmartAuthPlugin.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bccaf913b0e7deb8a8d26ef8564d3f06","path":"../../../../../../../../.pub-cache/hosted/pub.dev/smart_auth-2.0.0/ios/Classes/SwiftSmartAuthPlugin.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98538f01048a80b9e186d3e8557a6aa115","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fc03102c1daf52746c79d057fdaac473","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982ef72be88c23b694f92d719f5319663f","name":"smart_auth","path":"smart_auth","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ef72232cc340b77b427361ef2eae5b2d","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985c0ceddaf095b54f8564ce319fa42118","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9834dbc1d07e4e4253e383d515cda58934","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9887e86a4ecefca6954d1c74d20af84664","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9872c80fa717105af2b6d70fc873d45b89","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a7698a0aeaac7dc2e5177d4c00cc5bda","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9801aaa3fe18b6e48cc51f74d4504e90d5","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e983674ad52828b61c44977da6546ad9876","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989a08839f8e1aeb68766e7489ce7de1bd","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9897081e9a737f9b8c1763296c0826ca4e","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a9389a12325a343b01af5de1e691b323","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/smart_auth-2.0.0/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e980ad2d0df4d5e3743ddca258692abf412","path":"../../../../../../../.pub-cache/hosted/pub.dev/smart_auth-2.0.0/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98e483b3f17f7dd51f40660d323f04c9b3","path":"../../../../../../../.pub-cache/hosted/pub.dev/smart_auth-2.0.0/ios/smart_auth.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e981c577d95d96b28e753524200afcbb539","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98f7d088ea58c52b1dfa2b2ec319cef7f9","path":"smart_auth.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fc7b5d9c059009f659868eba9b1a2527","path":"smart_auth-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9819c8493220c4a0129ccd78801f165e62","path":"smart_auth-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aefd78418bce266e901fa9a4e4c156f1","path":"smart_auth-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985c255e949ef12b1cfa643388677a5414","path":"smart_auth-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e983c092bfa5de54a6d1ae8b69ba54a80d5","path":"smart_auth.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98600796f864742f2aba23d7a7f57fe9ca","path":"smart_auth.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9820c81f89f822c9de3865ae37f6c71882","name":"Support Files","path":"../../../../Pods/Target Support Files/smart_auth","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d91e8c504eed526116d84be5d0e42938","name":"smart_auth","path":"../.symlinks/plugins/smart_auth/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98720adfa9709a8da1cb901e7db147add6","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios/Classes/SmsAutoFillPlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988e516b0c0695efc9d52cbbca8410bb86","path":"../../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios/Classes/SmsAutoFillPlugin.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989680d4ed0eb405b63867939a36dfef06","name":"Classes","path":"Classes","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a0d8e85b6549216aa35e4e89e5d1bb1b","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989720cd80d2e465f1661575f0daab2c23","name":"sms_autofill","path":"sms_autofill","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989f1dbe89c96d93c37859d4c2cfced94f","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9810ae893fa17ee9f622d6490c865a310c","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98251ca421d05f47ac0e327991830c2f1b","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9840b6cc7ce9ee26c741b0f2451ddf6018","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987e0fe55c5052b3eba1eeaf19f9d31a8c","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dca9b8fef646b8b0b03dde3700db4fe4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985fec24ab3b94a8e8be92aa9072e80181","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98497b9313745047fc58e29184d5809784","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985bdf0da2de3c9e493c3440c263fc6db0","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98619ab113e7005f5c2be3c54666e39ce0","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98867eefce586b34439fa4ad1c0854cdad","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98c848e654f17daf04c9f3e0a0931f89d6","path":"../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98e22fa738b44824b1a788ec9dcce2ac0d","path":"../../../../../../../.pub-cache/hosted/pub.dev/sms_autofill-2.4.1/ios/sms_autofill.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98b795e41a50925f51fc60d4780092247f","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98e473900519b9937c5e87d35c95882224","path":"sms_autofill.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981df73942939f9cbae3b1ebd371fb59f8","path":"sms_autofill-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e983d13740c5e3b4ea1aa87a06a6b8ecc6c","path":"sms_autofill-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98962c4337991088c69fede9d5f2ee44d9","path":"sms_autofill-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ae25f8a4db014545f1d678663a61c779","path":"sms_autofill-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e985909e69ab9e3a8c49b07a8c61497c403","path":"sms_autofill.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e981e1cbd314acbce117b8860ba0b470dd7","path":"sms_autofill.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e987f2ba594ba2f855cd28c4e942df8ef1b","name":"Support Files","path":"../../../../Pods/Target Support Files/sms_autofill","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985d3b6e869908de9b4885c177b9da01c8","name":"sms_autofill","path":"../.symlinks/plugins/sms_autofill/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98854fbea71e4b04ac2471dfde2ef42c4e","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985597d7f6ec00d29d89c58347fe5d1550","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986a8c1b3e852479b29869ffe89407df07","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bcb3fda01f8ad2469c9927fca4a64951","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f488d0cf1834680b5ab69b9ab4e7f784","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989bce65051643a698961d6771882e9898","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ddda3fa761dc860440e73f670dc81a15","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9888645d0b5cbc4f42795b00af6fd052c3","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d44d3ad809a482bb54f406430ad2beda","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9847d30142518d953cd2b6e4036cedca6c","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9870b432cef1bf48837c38a10fcf343929","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e989840784d2d6cff1606f8aa6f2ce5bf03","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ab315147402f01fe52fea7a34e73bd6c","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cec603cf30adcf07efc2cc5f179d455b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteCursor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9892426ca978f6207363086df477afbbde","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteCursor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a4c03f4b4e244c38e29ad2a606a0de4f","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabase.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ffbf35012a83fc2afb8ddad368158573","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabase.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9cea943acc195f4da64609edaa9ab41","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseAdditions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9834d6696b98b6c00834ad9f36ab23c33d","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseAdditions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98131d08bc16603b1e847a8fe485583cf9","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseQueue.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980c0370b2f6d9767791c00adf4cd9da10","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDatabaseQueue.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987da31d3d4d21a4ee35a7c15061e2504d","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinDB.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fc7330e346846c624bff75a3c1da253e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinImport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f9a197e5098eda4a32b968654d7ec958","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinResultSet.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e0ac3a59c791ee8fcb514aff747b080c","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDarwinResultSet.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b232e6773f709b0bfbc499a96fccc29e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDatabase.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98590b2357ba5b8f29b72019b3e1505bd7","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteDatabase.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98801c658791c1234b2c1241fbcae02c0a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteImport.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982a4cac941d1d74ef14aac446e833c29b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteOperation.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a4128a7141238b90f2931c0299f6ecad","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqfliteOperation.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b4d0c73566e18d38593ca6d6d00aeb16","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqflitePlugin.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9850460bc0092527e91dd8bd8527d7a8fe","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/SqflitePlugin.m","sourceTree":"","type":"file"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982d800b4a42a135cb9ac31446084e8dc7","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/include/sqflite_darwin/SqfliteImportPublic.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9817f7f0e30479586c0ba01a06976e318f","path":"../../../../../../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources/sqflite_darwin/include/sqflite_darwin/SqflitePluginPublic.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9847b9d9a03b9d9697fe8bf282941352e1","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9842c7195ff603d74a32d783cf021de424","name":"include","path":"include","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9896f0a22d15f7ace8d4834ca729d64972","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bc27fe3bb83ec73fae50de1b78ad8cb3","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a95a38e96263ae79703d541d08039455","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985d89cd2511774cd9ed6cb53863f821e4","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bef4bdc3cc712ee71619daaad229f252","name":"sqflite_darwin","path":"sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890d2657284601c22532b9e4429e9b675","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981554ab63499836b369a7515e0f9e5acd","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98afb246faa6ba6b16d4eec055f621f2bf","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9868af56ace8f04f07e69964ad7a59d5e0","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98fd3fc9a8627659b0941ce38c3660809c","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9860c6e9e69fbeb5740377f8e58a211554","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98eae7da43557aaefa0fa497b569189a60","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986f5dab9f542969bec74da2af3c73713d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e982da5fed82662d3cc37bdea5d7a575d33","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985554e848a0e52660d9b26cc04f990649","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984f77189fca07712939fb53e660503c0d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98838b3d3118d88daed1f8dc3040252ad9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9845d5556c62d00dca5bd8ffc806e61fc3","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9813d625970f0a395acb7fd726995ee131","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/LICENSE","sourceTree":"","type":"file"},{"fileType":"net.daringfireball.markdown","guid":"bfdfe7dc352907fc980b868725387e9842206b4e23c0b31f96c66786a567a48d","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/README.md","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e9837cc0b13505afd866bded7d631844cc7","path":"../../../../../../../.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.2/darwin/sqflite_darwin.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e989469abe2b1f85a854f8a227217a17b87","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e984be2c3373324740e2acc019b4f06407b","path":"ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98dffcf1a05f8fe4ff63cc2b739e65248a","path":"sqflite_darwin.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989711cbfedea03dd36c7c939018f37c70","path":"sqflite_darwin-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9844ff868f82739e5775d036022acc15cf","path":"sqflite_darwin-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986ff3f8ef9750f6b79bc6b351bb2b86c9","path":"sqflite_darwin-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980c93e9cd40aae77f269cead731fce660","path":"sqflite_darwin-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98cf35ffb8bcc9bd9562b8ec9bc24330fa","path":"sqflite_darwin.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98640957fca97173748eefcacc82c1afdf","path":"sqflite_darwin.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98073b32345029c92bda38fe8dd74314f8","name":"Support Files","path":"../../../../Pods/Target Support Files/sqflite_darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890adfffc4e3e57f71ba72c2de3feb856","name":"sqflite_darwin","path":"../.symlinks/plugins/sqflite_darwin/darwin","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9849a55187f1cdb2859731df506ed5c8bd","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios/Sources/url_launcher_ios/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e987b980058d18dd179ce6527f2bdf197f4","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98085aef9873628235255e6f8ef36c45fb","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981730d0dd6316ba83087b7252c3290a9b","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9890eed53a28d705d5c8793a62befa3eca","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987fd3834853f2b1bfedc7af2c0fcd1b7c","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e23a5a1829b95b1a0b8549afbc5ae91b","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cbe0ccdea3a6315bae278f33c07bc17b","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98afefb5b15181cf805e66e75673ca7a66","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9884498b8771f3c8c4201931ece1eb04ef","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cc89de59335b30a8e1667794a0ed7086","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d870314ccc93c27b3b1fbdc06b872409","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984efd4608efa0261c203e99e6cda4e0c4","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9864dff9d044a6d495c75e4c38266e2042","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios/Sources/url_launcher_ios/Launcher.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f0cc9e74bcb42148986a1c714e39c22e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios/Sources/url_launcher_ios/messages.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e984308309f400357da95c1b1f6608a2f08","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios/Sources/url_launcher_ios/URLLauncherPlugin.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a44d278e62555aa5ea8ca0dbc8af7e63","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios/Sources/url_launcher_ios/URLLaunchSession.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9858417410c5bf0a8a0865528920fab241","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a5ce5863b99ae916efd1627b95435199","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d98c7fe9d4129ad2062afc6a316c497e","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e809302986f3e2c7b2a7fc149dce67cd","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e986aef5acd1b7720344cbe42dd901f8424","name":"url_launcher_ios","path":"url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9859fc624c6dc8c14d7b2e0441d5c77a77","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98ddfafee8edde04234379cfe2cfc879e0","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cf5c4c3dae1ffa8c7d62579dfec414f1","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d7578bf110e77c9e99ee379415ec852b","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984de71a0c0dab263af6fb90e9fc2d8df9","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d4410fa6ca1074f1533b3cb1b7882dd4","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98995588a8d08d3073a4a99ca11ffe3735","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f06e11e65a6c59b2896173dd9eff5c3a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987de20fd2a65af762764178a0b41d043c","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b4ce80bed03adfa8fc75bae575a9591a","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d93368257885afc39ee643c5eab10eb9","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98708be1c6ccdaf2768a5d68f7e39f971d","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984b83ef0ac67acef84eee558b07ef23ac","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e989b198ff85a89f62205ef2d19bb087ad8","path":"../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98ca616278eb7828c3dbf79e000e961a9c","path":"../../../../../../../.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/ios/url_launcher_ios.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98f00c23810c57b98da356a20823cc0cbd","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98b90575a79113364ae92e29878fee080f","path":"ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e989988a41458dd35fe8a589152b82bded1","path":"url_launcher_ios.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98753c8448b648741b6a86d8f2c47a565c","path":"url_launcher_ios-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e4942d477059d8dab40df19d228d9577","path":"url_launcher_ios-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980d4b9eb6a5c583f83b44125439dc1b3c","path":"url_launcher_ios-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9877b35a5f5871c6aa739200e8977da51a","path":"url_launcher_ios-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9892384722d5eeb82f5eee6a6d2a80e499","path":"url_launcher_ios.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9883551ceaa3441a893ddf0a29beb8cb2e","path":"url_launcher_ios.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e980aea93198cac3de7df53a92a094003ab","name":"Support Files","path":"../../../../Pods/Target Support Files/url_launcher_ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a5c46749682e261501bcbae5c1d45422","name":"url_launcher_ios","path":"../.symlinks/plugins/url_launcher_ios/ios","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e988a1c3224c5e4e4f308dacd99046199cf","path":"../../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9881071da67260d7a5f69102e7fbdffa6d","name":"Resources","path":"Resources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98780d98aa767c8a1300ffc5b3c60b84aa","name":"webview_flutter_wkwebview","path":"webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984625e343d52a02964801bd8fe133cb30","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981a1a2dc8c2923ab0317e2b280aaac21a","name":"webview_flutter_wkwebview","path":"webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987a5cd9d03f6f7c8642b6e77000eb7e7f","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e70c58d8877cded9d67a34c0787ed6a0","name":"webview_flutter_wkwebview","path":"webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a90097d11d64ad06bf2b397a05ac9c15","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98397e669620e3e5d39b181dd2d6e60673","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98535443f51ac4bbad476b996639b48fe7","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984dd84441d7193929043d0b9682c16a3b","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984a0c706b05460f83e6060a06d1cf8b2a","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f2570a1430e2ffe0461c3cd9014cc795","name":"..","path":".","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f4fa6607ef78eaf25893c15119f8d23f","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/AuthenticationChallengeResponse.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98af0533ba4af0fd8829edb34d58eb8fe5","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/AuthenticationChallengeResponseProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bc88804199115088a64354db4fe8c59f","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/ErrorProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98daf7fc771f14f246941cf835c82b2e76","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/FlutterAssetManager.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b3458f83f790cf0ce30292170056951b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/FlutterViewFactory.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a679cb591714989df54a8d3d07c2fb3a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/FrameInfoProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98716ea376ea11a9ee50b488ed95cdb6ae","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/GetTrustResultResponse.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988dba78f96e3444b23c0b1e21f2d1e63a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/GetTrustResultResponseProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f182b17f0e75041adb39be4fbc916dd1","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/HTTPCookieProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987e6c05b3c08a529e81f2955781bc3c78","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/HTTPCookieStoreProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bf67fe3a60c1e994f02e17ef621f6b52","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/HTTPURLResponseProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f7542dfc82121c0b8e491aa2463fdf10","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/NavigationActionProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9808dfa4987177d1d41dbb7c0ec8fb1809","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/NavigationDelegateProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b01a7f513cca5e487872ed27ff5e7a62","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/NavigationResponseProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9845d30bfe5bfe72863d5ee999473f0989","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/NSObjectProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98cdcd569d745ca5ab0ba9ef2afaf30151","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/PreferencesProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9853fa2d43ace0ee47ac305220f15bd966","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/ProxyAPIRegistrar.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985d6c619f76b73de880346140383a6e1b","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/ScriptMessageHandlerProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9830ea343ae6627bdb292c9da3205fe574","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/ScriptMessageProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9884aa3b936463081c428987d1bfdb8e49","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/ScrollViewDelegateProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c2d4ae70ce4caa40d3301076b8138932","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/ScrollViewProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98dd7cdfee31faf4940ce2ea9c62490c3c","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/SecCertificateProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d60c3309b86efcdbf6992828ff60b91a","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/SecTrustProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9822dcffb4949771fdd6a83777b36e42c9","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/SecurityOriginProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9851afea7725ce58205eea184a3040fb9e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/SecWrappers.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b831ac70d57ccf07047662ae3ebf3f63","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/StructWrappers.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e95c1841d560f8efcf6447cd0b5bfbe7","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/UIDelegateProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98b3ce70539619b31bd30fca59e297cf72","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/UIViewProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987c5356148e626358db77dd9d36272e9e","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/URLAuthenticationChallengeProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982260f6119a36c0a254ffc211a79ed219","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/URLCredentialProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9881dd713080a76a8ed0234a92c549fcf1","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/URLProtectionSpaceProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98cf9de9573aa846265ef3538b6fb875f6","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/URLProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985c07bc5f01db3bb132324d672650d937","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/URLRequestProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9887a9527c9d4d0b7505faf4118ccc68f8","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/UserContentControllerProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982a00d85604512f8843f8675148932004","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/UserScriptProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e986a06778b43d37b0a549a1b3844161baf","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebKitLibrary.g.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988e62d7a5ce1ee774e55f668b8ddce6c1","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebpagePreferencesProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9850449ffaf2254f49147c609c1349f930","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebsiteDataStoreProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98bcff4cb351f765f0a445c3eb109d3ada","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebViewConfigurationProxyAPIDelegate.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e8fdbc282f3635244926ee11304a1adf","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebViewFlutterPlugin.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985408c81414ad52e0d6facc8c7a5775e9","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebViewFlutterWKWebViewExternalAPI.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e983ebd3cb9f4d7bfae0d366cc2fd5f0d98","path":"../../../../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/WebViewProxyAPIDelegate.swift","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98025dbde79b8dab1648634e7d921cde5d","name":"webview_flutter_wkwebview","path":"webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98da131b8ea7ee15366932cb542d8e3121","name":"Sources","path":"Sources","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e984d05ea06bf6cc28253ebd8900d004c56","name":"webview_flutter_wkwebview","path":"webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dcfa04df52f67c91907872d945819767","name":"darwin","path":"darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98bf6fe4ff2f445024aa1993e54d9ecfff","name":"webview_flutter_wkwebview","path":"webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a782adb4453fa503752386be6508bff6","name":"plugins","path":"plugins","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9849e9b9042568d0ac6d9be54579161e0e","name":".symlinks","path":".symlinks","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98c2aa8f2f855ad159477a26693cdf7c67","name":"ios","path":"ios","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b62951546e725ef24482dce23e07e716","name":"businessv1","path":"businessv1","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98d051f5efdd0b345e63c2533cc6e42936","name":"StudioProjects","path":"StudioProjects","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e987474ff2593887ffcc0483eb6bce66873","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dcfd4fd559f9d06421827fd8421d0619","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985080042ab46c434d200a1c9056473cea","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f0a4be57566fcf8e3627108270d57201","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e00932f7f9d6cb6b1119c298103cc4ce","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98544562d41fa31b893b6e43e5457039d7","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981c9339ceab37645c389078ad79ead3c6","name":"..","path":"..","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9880bcaa5296137242542a8286c3bcbb16","name":"..","path":"../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview/Sources","sourceTree":"","type":"group"},{"children":[{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98220f68c1bec5f7375a109f4785aa0fe1","path":"../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/LICENSE","sourceTree":"","type":"file"},{"fileType":"text.script.ruby","guid":"bfdfe7dc352907fc980b868725387e98971c82e59f3c3b511a927d68ca9a7a0e","path":"../../../../../../../.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.23.0/darwin/webview_flutter_wkwebview.podspec","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e985a0c528ba38c30cccf48cde124a3756b","name":"Pod","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98fb1eb4ff738a5c6e419cff6bbdf3a55b","path":"ResourceBundle-webview_flutter_wkwebview_privacy-webview_flutter_wkwebview-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98eca0ed00bd8de1bb95c0116fb2d88487","path":"webview_flutter_wkwebview.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989bb051dd32c3470539ab7ad8f1fdbf8e","path":"webview_flutter_wkwebview-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9844ab11e549f95ab6611fee3d2b2ab5d4","path":"webview_flutter_wkwebview-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9855496007cd7338857eb6f4d3bf1efb1e","path":"webview_flutter_wkwebview-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988281cf5a7efa7dac7963fa0b150738e3","path":"webview_flutter_wkwebview-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9818551ce907735f179c36bd422f38ef80","path":"webview_flutter_wkwebview.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982efcb7682d14757e01b7d401e62c76f2","path":"webview_flutter_wkwebview.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98249fdd621dc396d32bf3b85975c71006","name":"Support Files","path":"../../../../Pods/Target Support Files/webview_flutter_wkwebview","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98a4807b813d0605988fada4beaad0dac0","name":"webview_flutter_wkwebview","path":"../.symlinks/plugins/webview_flutter_wkwebview/darwin","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98e4735370f862447539be84a5b67a93fb","name":"Development Pods","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e989e090a3d01310b6d84002cff2cccd6bf","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AudioToolbox.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98d1813f7e5de36e03286781275d7557ea","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AVFAudio.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e980b3a3e4fe9e04a7b642b72fa79239746","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Security.framework","sourceTree":"DEVELOPER_DIR","type":"file"},{"fileType":"wrapper.framework","guid":"bfdfe7dc352907fc980b868725387e9835ca341e0b23bb4a61c649cefb2052db","path":"Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/UIKit.framework","sourceTree":"DEVELOPER_DIR","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bad38b366348f7118a64a3beb35907b1","name":"iOS","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98b9163923ee837c07da085bd144ec1ec3","name":"Frameworks","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983af6277377b788e234e57e7c1aada749","path":"CoreOnly/Sources/Firebase.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98265a8a0e6e105374166a3a9c61e02d12","name":"CoreOnly","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9844a36a2e9274c91be13f1e320c8a8000","path":"Firebase.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e985f69c24ba0cc7615ef06fbd452cbd409","path":"Firebase.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bbd66c680821b0c934479214213e8754","name":"Support Files","path":"../Target Support Files/Firebase","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98f345613349e31e6dadfa74f3adec2f57","name":"Firebase","path":"Firebase","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9881f9a9f8bd504f1919c17f68ee07db0d","path":"FirebaseABTesting/Sources/ABTConditionalUserPropertyController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9849eb009a1b4b73e0c571faa48d43ea79","path":"FirebaseABTesting/Sources/ABTConditionalUserPropertyController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987b095b88c54cbc4ab107c08f5cf62bc2","path":"FirebaseABTesting/Sources/ABTConstants.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98973fc030b8647cb75cb59b0263b65405","path":"FirebaseABTesting/Sources/Private/ABTExperimentPayload.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98742172dc34c1ab8ebb877fed2ab698c0","path":"FirebaseABTesting/Sources/ABTExperimentPayload.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9809286933e32609121f18dbe62fe0ce0c","path":"Interop/Analytics/Public/FIRAnalyticsInterop.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98df22db8306542f401c7f462244bb6132","path":"Interop/Analytics/Public/FIRAnalyticsInteropListener.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9866101da7e1c4fe90f6575877ad5e61f6","path":"FirebaseCore/Extension/FIRAppInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9833e23b28b666458a06a8417b3e10d3cb","path":"FirebaseCore/Extension/FIRComponent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9848c5bc121055a3fceeedfe1ea0c69db3","path":"FirebaseCore/Extension/FIRComponentContainer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982f2dc9b916895d992ea9f1271431dbfc","path":"FirebaseCore/Extension/FIRComponentType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984c5e966c2eb42cb5365379a7ef50b312","path":"FirebaseABTesting/Sources/Public/FirebaseABTesting/FirebaseABTesting.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f3a7593e45c4796a015c0eeafac186b8","path":"FirebaseABTesting/Sources/Private/FirebaseABTestingInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dd26c655552d2c76961464bdc7ac23e7","path":"FirebaseCore/Extension/FirebaseCoreInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988dbe7cd57c2b6c796316eb4ba93f3a7b","path":"FirebaseABTesting/Sources/Public/FirebaseABTesting/FIRExperimentController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fb00d9abca9c0d2f9442f34f4a72773e","path":"FirebaseABTesting/Sources/FIRExperimentController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d9f1a9f30f23ac0ae46fe7379549b976","path":"FirebaseCore/Extension/FIRHeartbeatLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9813fd0d3f98ed44cf164976df3a152700","path":"Interop/Analytics/Public/FIRInteropEventNames.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b4e409e4eeaa3f894bed5c58dac40d85","path":"Interop/Analytics/Public/FIRInteropParameterNames.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9810bfe50890dfc60bffe427b4df9e9ad5","path":"FirebaseCore/Extension/FIRLibrary.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984e7cb2abba58415b080b37c871cdfe2b","path":"FirebaseABTesting/Sources/Public/FirebaseABTesting/FIRLifecycleEvents.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d446f9eb2ae6a6e892f95326b5d554b1","path":"FirebaseABTesting/Sources/FIRLifecycleEvents.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98084ec61021bef6a9a66619b9132eb9c5","path":"FirebaseCore/Extension/FIRLogger.h","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98c34dee3fdfa9bb9168df8fe93134b6cc","path":"FirebaseABTesting/Sources/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98a3811e2e28b6ca51299f4a7f21fbba15","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e985f9a4f9002eb7a3e193dec2c319677d6","path":"FirebaseABTesting.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980145e188526670249375f7cc18713f77","path":"FirebaseABTesting-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9800f1846e0cdeda7d7f0ea20d3781d5f0","path":"FirebaseABTesting-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bbc6edb90570c5d91ca22be5d03cdc85","path":"FirebaseABTesting-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e985212b94297d3e57a502788a203806e5d","path":"FirebaseABTesting.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98ad7b68664812150513910dbbf7fb5b1f","path":"FirebaseABTesting.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9822082e4ecd1205f1ffb088ee939cb3de","path":"ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98b27b7a9b3207129882f114c102194d38","name":"Support Files","path":"../Target Support Files/FirebaseABTesting","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9819234f080c37534448a87575e9c062bb","name":"FirebaseABTesting","path":"FirebaseABTesting","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98750afed94ea747bf0d98e601ab0a46fe","path":"FirebaseCore/Sources/FIRAnalyticsConfiguration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e8f5b0044320ced7c6383f7ad148dd3c","path":"FirebaseCore/Sources/FIRAnalyticsConfiguration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9855ae5c1d44bc9c39c9fd06ee5a09bb13","path":"FirebaseCore/Sources/Public/FirebaseCore/FIRApp.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9887eeb365e6abf3f4bc66afbaffe608d4","path":"FirebaseCore/Sources/FIRApp.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9870d5c1b1fbe8335a0947bbe208286530","path":"FirebaseCore/Extension/FIRAppInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984101e1abc22977e40aee98700ab534e9","path":"FirebaseCore/Sources/FIRBundleUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980df4e320decc2147a03f9b1964e5cff0","path":"FirebaseCore/Sources/FIRBundleUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cbc34c362f1f8067bee1a8c3c116fcbc","path":"FirebaseCore/Extension/FIRComponent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9808dacc85764b52eb46570279cd1bb855","path":"FirebaseCore/Sources/FIRComponent.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982a31eb3fbbfb41264e692be5383dc3e2","path":"FirebaseCore/Extension/FIRComponentContainer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98dc3572cfa7134bcf746b9253669ec4d7","path":"FirebaseCore/Sources/FIRComponentContainer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989479000ecc7c98f0ca64fa042f94010e","path":"FirebaseCore/Sources/FIRComponentContainerInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9824512ff987cbe51e4649cd52ec54eb2e","path":"FirebaseCore/Extension/FIRComponentType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982c293883391a0d24bcdb43ce3d466d62","path":"FirebaseCore/Sources/FIRComponentType.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b52c36a6497832c2e160dd38d3a5d201","path":"FirebaseCore/Sources/Public/FirebaseCore/FIRConfiguration.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d2b8cd824507c20d60aa06afabc27d5a","path":"FirebaseCore/Sources/FIRConfiguration.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9859c33900ebbda6c56d85be05f3eda76a","path":"FirebaseCore/Sources/FIRConfigurationInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984ceddf0919cf93bb13176271bdd3aa15","path":"FirebaseCore/Sources/Public/FirebaseCore/FirebaseCore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cbf768cd7c127c7bc72921d99e97804a","path":"FirebaseCore/Extension/FirebaseCoreInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982abc12e73cb87ab3f226e5d0edf6a591","path":"FirebaseCore/Sources/FIRFirebaseUserAgent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cb488c9d89bedbb61a2de3a78177f417","path":"FirebaseCore/Sources/FIRFirebaseUserAgent.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9808f8c8ff7e5a2a63d9f8f8b5bffc24ca","path":"FirebaseCore/Extension/FIRHeartbeatLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9896f7813e3ae5ab580d04b64d26b2ce5c","path":"FirebaseCore/Sources/FIRHeartbeatLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983b0b6d23970e541e76d360de50b5a799","path":"FirebaseCore/Extension/FIRLibrary.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98424ba3ce1a4fbc2d665cbf5c86580920","path":"FirebaseCore/Extension/FIRLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ae9e6d14b36b60d4c0c6298cf7b75522","path":"FirebaseCore/Sources/FIRLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982a4cb43a8cde797bc42619969480fa34","path":"FirebaseCore/Sources/Public/FirebaseCore/FIRLoggerLevel.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a8b38cec21347aa07d7c3733a7aec5e9","path":"FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98815fbeb4a3c0d28daee068086169499c","path":"FirebaseCore/Sources/FIROptions.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98beacf7a258da7ebfe1c44fc927f0307a","path":"FirebaseCore/Sources/FIROptionsInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aafc2a0afdf021a9b8d29dfbfc87c042","path":"FirebaseCore/Sources/Public/FirebaseCore/FIRTimestamp.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e38a4d908331c27bad79e86f8d9c3a1d","path":"FirebaseCore/Sources/FIRTimestamp.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9868343b7ba51246929873bc361739a51b","path":"FirebaseCore/Sources/FIRTimestampInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981633cbb8d2c444b057cacac65bcabdeb","path":"FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985b2a03f3720f92cf4646730487962317","path":"FirebaseCore/Sources/FIRVersion.m","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9883df20f4f6a557f500e50343c21f7581","path":"FirebaseCore/Sources/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98bbeb356532c57d7ce5dc2ceddab6eef9","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9875007a696ec9f9fac7f93649b91470f6","path":"FirebaseCore.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9816c9b31597e1f98b8136dc4cf0a1a5b0","path":"FirebaseCore-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98ae9873b02c4cb7f2d8f0df380ce3a7c2","path":"FirebaseCore-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c29b33925a578cfb33767c6c92dd4180","path":"FirebaseCore-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f2726115c8992b10f4191472164b92db","path":"FirebaseCore.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98468148e317fbbb770bfa9ed80334b989","path":"FirebaseCore.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9834ea0968b6f39d72bac33cf522943443","path":"ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e982dbcdc14baf18f1d1fd84aa6d527b666","name":"Support Files","path":"../Target Support Files/FirebaseCore","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98cf251c61c494460a841a5815c188412a","name":"FirebaseCore","path":"FirebaseCore","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9816366655a13826a6ff3488f855e6b839","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/_ObjC_HeartbeatController.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d7c28fa32240eb9e2ec46695a837222c","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/_ObjC_HeartbeatsPayload.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987024785baa93d123c1c2a23a1b2dd379","path":"FirebaseCore/Internal/Sources/Utilities/AtomicBox.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9806fe2914650e06e01e7ddd3e11dc8f0d","path":"FirebaseCore/Internal/Sources/Utilities/FIRAllocatedUnfairLock.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e989d7c5286bbee5121be97ddcf2d579ac5","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/Heartbeat.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9872b77bb417b11d55180f25a7189d6799","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatController.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98be4af9e68843be2c2b03de379e990b9f","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatLoggingTestUtils.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e985bed9707abaeab26777579f8e6664dce","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatsBundle.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c17942208900c076f30adb0b8ba12324","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatsPayload.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a51bb84b63c93ae336147c78012b0b3b","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/HeartbeatStorage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98644b31474c22f0ff43ae47d757c4be1a","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/RingBuffer.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c5fe993d95485c9f8f5fe7ef3f64ea9e","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/Storage.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e987211ef79fb8b5331f8f422fc212de567","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/StorageFactory.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9864f79bc2314f1f587b1fd4db98c25870","path":"FirebaseCore/Internal/Sources/HeartbeatLogging/WeakContainer.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e983abc5eee6c6f88610609f66f413efb21","path":"FirebaseCore/Internal/Sources/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e4c45c1177f1b974678767231fe326d1","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e988ebee24c31b8cdeee3c3586036bbee69","path":"FirebaseCoreInternal.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ed94e328af74be91988a62702d04ed06","path":"FirebaseCoreInternal-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e980819a3c41281b0df9800dc99e4b351a2","path":"FirebaseCoreInternal-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b1919fd56225abbe7aebbf30a4354a66","path":"FirebaseCoreInternal-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983f3ed8145b5899004381af2f1e6c8178","path":"FirebaseCoreInternal-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98b7c5e6270376617ea414cbd519967f5a","path":"FirebaseCoreInternal.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98ccbb44338e340d03ced12fe388221f2f","path":"FirebaseCoreInternal.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e4dff56890b9e078f7603cfa5e9b64c8","path":"ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98b7fc380ba872bfea06ddf202b5f7303b","name":"Support Files","path":"../Target Support Files/FirebaseCoreInternal","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9811cf18df9762740aa8163fe668d45c47","name":"FirebaseCoreInternal","path":"FirebaseCoreInternal","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b2549dfba104e586d45a6e6ae9ab4e01","path":"FirebaseABTesting/Sources/Private/ABTExperimentPayload.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98156758269e84bda8ddbec9b85790052d","path":"FirebaseInAppMessaging/Swift/Source/CustomInAppMessageDisplayViewModifier.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e985c36b44f069e0fa051f9114783e42d49","path":"FirebaseInAppMessaging/Sources/Analytics/Protogen/nanopb/fiam.nanopb.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986b5e6baa677e51b71b8c4479727fb5d0","path":"FirebaseInAppMessaging/Sources/Analytics/Protogen/nanopb/fiam.nanopb.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984a7b0c38d81c1a51a21332eb98be4784","path":"Interop/Analytics/Public/FIRAnalyticsInterop.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d469f1bc4e1aad5c401183cb285fb6c7","path":"Interop/Analytics/Public/FIRAnalyticsInteropListener.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981ca488182498c8d56f6f4706e10efac4","path":"FirebaseCore/Extension/FIRAppInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98eca3f1ebfd440f57ad83258079a1daec","path":"FirebaseCore/Extension/FIRComponent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ca38abb2e288a9749eafd22300ae9c57","path":"FirebaseCore/Extension/FIRComponentContainer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d019ea54b807008ce5f3093de3c58cb3","path":"FirebaseCore/Extension/FIRComponentType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fa2db8eea30b75f381f27b745fb90d1c","path":"FirebaseInAppMessaging/Sources/FIRCore+InAppMessaging.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98130056100a0e448e625e5dfc1950c6ae","path":"FirebaseInAppMessaging/Sources/FIRCore+InAppMessaging.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a7229bf4d6014021b7d6fbf3a19848f4","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRCore+InAppMessagingDisplay.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9826aae0a9d3332f0244bd7f4905f208f1","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRCore+InAppMessagingDisplay.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fec493e57fe33a900a3203e29a53d11f","path":"FirebaseABTesting/Sources/Private/FirebaseABTestingInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ef0c14d347ba94d95f7471d24bc0fb0b","path":"FirebaseCore/Extension/FirebaseCoreInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9846dc853b525b92cedba6e6adef5b081e","path":"FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FirebaseInAppMessaging.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987324e6fb9d498637d69c39e376a11591","path":"FirebaseInAppMessaging/Sources/DefaultUI/FirebaseInAppMessagingDisplay.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98026ce6e1ab8f7f5be78b1ae72245ce78","path":"FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989b54d1b4dd40fefacf6a8043c872d315","path":"FirebaseCore/Extension/FIRHeartbeatLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987ab21ba7dd3a95c78fc146ace78a924b","path":"FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMActionURLFollower.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9848d3c6ef3d5d11fd21e2f5f2d5a1d611","path":"FirebaseInAppMessaging/Sources/Runtime/FIRIAMActionURLFollower.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9835ec7730ce228eb348215078fab9f806","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMActivityLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98bde46307fe65c26621a60fbe0548796b","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMActivityLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985b43e89e6f9fd1d987bcd45531f0f124","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMAnalyticsEventLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9859f21ee991279ce69afb528bad1d4996","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMAnalyticsEventLoggerImpl.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983e10ef8e6e95bfe8be1600c323e708e3","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMAnalyticsEventLoggerImpl.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98374925e40fa9eb0474a2a487329969eb","path":"FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98579f035cc4c15db53298d21a36c5a219","path":"FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982530a1f9fb4c262a48aa4efbc8b62529","path":"FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewUIWindow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983f0047e206f78e44da77401cf8c7ea0d","path":"FirebaseInAppMessaging/Sources/DefaultUI/Banner/FIRIAMBannerViewUIWindow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9895a1ef0b3d56bbb7da9c2995ff354971","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMBaseRenderingViewController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983d190a4ccf2bb250e57484670305fce6","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMBaseRenderingViewController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f123f92e7797f661cefb586aa08783de","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMBookKeeper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9803ad575c123351fd875eacc38cf4307f","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMBookKeeper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9819f742eaff16c8532a1466d2f0219ca7","path":"FirebaseInAppMessaging/Sources/DefaultUI/Card/FIRIAMCardViewController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987277cb82f9b444aeeeb0158a6e794f76","path":"FirebaseInAppMessaging/Sources/DefaultUI/Card/FIRIAMCardViewController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988c790c36a5f3f0bd62010364476ea2f5","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutHttpRequestSender.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98aaef023a88ecc0d4e38df6b064d61999","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutHttpRequestSender.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98005f36ca4c67428d1b5195ee0a7462d7","path":"FirebaseInAppMessaging/Sources/Private/Analytics/FIRIAMClearcutLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980a3bf703446e3e995015628ecef4be64","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f4db9c7a4e5037f71037c60605d5fe0a","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutLogStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cd726d3b0055706ada50cf37b7540b42","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutLogStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f0d3f4b9bff4f1f8d0279917ea3acfec","path":"FirebaseInAppMessaging/Sources/Private/Analytics/FIRIAMClearcutUploader.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987f4e51f83c43da373be5ee263aed0f7f","path":"FirebaseInAppMessaging/Sources/Analytics/FIRIAMClearcutUploader.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98973287d40403975b931dfea842a713b5","path":"FirebaseInAppMessaging/Sources/Private/Analytics/FIRIAMClientInfoFetcher.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e7e144b5e1b23dc4ae456fddd992da31","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMClientInfoFetcher.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98daffc29c36cf6f7a2de6ad1dc5f55cd7","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMDefaultDisplayImpl.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98366d482ad0574db6eb14c14b09e252d7","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMDefaultDisplayImpl.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e5fa12fb995ab9ea2395dd36894a8a92","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayCheckOnAnalyticEventsFlow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987bd34e6bcede96cf729976aa631cf6bb","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayCheckOnAnalyticEventsFlow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ecc355ffeab7adbb3ea2bdc6a5d0f707","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayCheckOnAppForegroundFlow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d2d96ea91800a9ebf7677f7be394a813","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayCheckOnAppForegroundFlow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9868b5d1c7599f3a618d00e4117bb6b630","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayCheckOnFetchDoneNotificationFlow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e987c6dde8d8b91dc950dddfdf24a834b0e","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayCheckOnFetchDoneNotificationFlow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987015d1750fc19d37e044786a5c63b864","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayCheckTriggerFlow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981b9cf05597ca2e0a3b460121e11c9ba5","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayCheckTriggerFlow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bee522752bc61e330ae23f512c3d5d43","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMDisplayExecutor.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e2a1c4afafbbc0b32c6114121398000a","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayExecutor.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983e6ceb6e3b89e7a465c82b7bdb423776","path":"FirebaseInAppMessaging/Sources/Private/DisplayTrigger/FIRIAMDisplayTriggerDefinition.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b2f63532d8808a14414468244121817b","path":"FirebaseInAppMessaging/Sources/DisplayTrigger/FIRIAMDisplayTriggerDefinition.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a11fa332ef9cc3d74e39bb68fa081d58","path":"FirebaseInAppMessaging/Sources/Util/FIRIAMElapsedTimeTracker.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983d7418dafb854cee7758d23aa22ec400","path":"FirebaseInAppMessaging/Sources/Util/FIRIAMElapsedTimeTracker.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987bb009adcce5275812a95751485e86f5","path":"FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMFetchFlow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985c14c31546d40b4850de012a54079b58","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMFetchFlow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9806dccab018cadfb2d3cf8c77668150d1","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMFetchOnAppForegroundFlow.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c5781f1c181097e3589bfef477bb86e9","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMFetchOnAppForegroundFlow.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9800b458e5facda8f351e4d12d539da332","path":"FirebaseInAppMessaging/Sources/Private/Data/FIRIAMFetchResponseParser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98960d1a46de6807119b503f4399d35deb","path":"FirebaseInAppMessaging/Sources/Data/FIRIAMFetchResponseParser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98329bb402ab9675fb637dce8f5065586d","path":"FirebaseInAppMessaging/Sources/DefaultUI/ImageOnly/FIRIAMImageOnlyViewController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984a2c6c6ffa07ce0fffced4c4ea049bf6","path":"FirebaseInAppMessaging/Sources/DefaultUI/ImageOnly/FIRIAMImageOnlyViewController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f3f8d340f68e14fb9fcf6ef41c8eb6c3","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMMessageClientCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983e2f4f5b46358ad0a03e25c8f03a1b8a","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMMessageClientCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981644ca78278a5b49955b35f88b6dcfeb","path":"FirebaseInAppMessaging/Sources/Private/Data/FIRIAMMessageContentData.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98edc9f4072b8bbceaec4707dbac37a8ea","path":"FirebaseInAppMessaging/Sources/Private/Data/FIRIAMMessageContentDataWithImageURL.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9819e3fe86377d88aaa4f1aac2f0fdd0b8","path":"FirebaseInAppMessaging/Sources/Data/FIRIAMMessageContentDataWithImageURL.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b09d26ad82277558d063be540a3e5b60","path":"FirebaseInAppMessaging/Sources/Private/Data/FIRIAMMessageDefinition.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e8f36a0953d5a82963e5f44d6ed2148a","path":"FirebaseInAppMessaging/Sources/Data/FIRIAMMessageDefinition.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b8e540685264e057cb9d75e0c1c79163","path":"FirebaseInAppMessaging/Sources/Private/Data/FIRIAMMessageRenderData.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c87eb9d077555670e40d3b5bcbe507e8","path":"FirebaseInAppMessaging/Sources/DefaultUI/Modal/FIRIAMModalViewController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98980236523bbe1bdc446139b6daa87e22","path":"FirebaseInAppMessaging/Sources/DefaultUI/Modal/FIRIAMModalViewController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a2601417b90a501590083916f46e0218","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMMsgFetcherUsingRestful.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980d3a063b3cf409d97c5fa6b783972587","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMMsgFetcherUsingRestful.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987bba462628800abb8615f37b29365390","path":"FirebaseInAppMessaging/Sources/Private/Data/FIRIAMRenderingEffectSetting.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98ab1adc0c351d4d3523fd9a819621395d","path":"FirebaseInAppMessaging/Sources/Data/FIRIAMRenderingEffectSetting.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98425d206dd8d41b22074784ac6e1250ac","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMRenderingWindowHelper.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98898c38fbe29c393815ff46b88716b4ca","path":"FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMRenderingWindowHelper.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9801f1cfb7d55f9c62028fc364b0736c6c","path":"FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMRuntimeManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e3c9253f644bafd504d123ac0bb40ac6","path":"FirebaseInAppMessaging/Sources/Runtime/FIRIAMRuntimeManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985b33a5e74b73add041f41126808dc43b","path":"FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMSDKModeManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982ccb747d2d5c984b2d4f05e87a5da591","path":"FirebaseInAppMessaging/Sources/Runtime/FIRIAMSDKModeManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98915889fc4d38e1ed9147a7c542be9567","path":"FirebaseInAppMessaging/Sources/Runtime/FIRIAMSDKRuntimeErrorCodes.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98545a383e1b1274fedb4402c32bc163e3","path":"FirebaseInAppMessaging/Sources/Private/Runtime/FIRIAMSDKSettings.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f20675fa28e80a751c9f7310b2823c1a","path":"FirebaseInAppMessaging/Sources/Runtime/FIRIAMSDKSettings.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9831819901bf40fdfcd5bef8aa443f0c25","path":"FirebaseInAppMessaging/Sources/Private/Flows/FIRIAMServerMsgFetchStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9869b24396aa321d689f742210c9fd042e","path":"FirebaseInAppMessaging/Sources/Flows/FIRIAMServerMsgFetchStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9870f9f1c1e019bf5665236b6456719bd5","path":"FirebaseInAppMessaging/Sources/Private/Util/FIRIAMTimeFetcher.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d22743fb02d0285ce857b9a7e4ec53f6","path":"FirebaseInAppMessaging/Sources/Util/FIRIAMTimeFetcher.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980134e7f9e756650dd166bbd602ceea2b","path":"FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessaging.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d6db5e26a5adb4f79b7b80bb88e2224b","path":"FirebaseInAppMessaging/Sources/FIRInAppMessaging.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ca4469e11838c1bd5d6e60778f1f2174","path":"FirebaseInAppMessaging/Sources/Private/Runtime/FIRInAppMessaging+Bootstrap.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98de7c68f647737cf17e6cdeee07de1055","path":"FirebaseInAppMessaging/Sources/Runtime/FIRInAppMessaging+Bootstrap.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987f3f8af81ab747607c71a0d26b7ad448","path":"FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessagingErrors.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98508768f0a6703edd2a67d66333b9e287","path":"FirebaseInAppMessaging/Sources/FIRInAppMessagingErrors.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989f38e75a79f8cb4e7afd867850bab854","path":"FirebaseInAppMessaging/Sources/FIRInAppMessagingPrivate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dfe670e19cebbb718ccd1ee5a8bef99b","path":"FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessagingRendering.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98137a1ec23902b3774e7ac1cb597f80ec","path":"FirebaseInAppMessaging/Sources/RenderingObjects/FIRInAppMessagingRenderingDataClasses.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9873d23ff0a207bee60fd9380b76d31831","path":"FirebaseInAppMessaging/Sources/RenderingObjects/FIRInAppMessagingRenderingPrivate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987a5e6f146ee22c70c36db18603d11bae","path":"Interop/Analytics/Public/FIRInteropEventNames.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9856462a5d6348225f533f5b1ada96d62f","path":"Interop/Analytics/Public/FIRInteropParameterNames.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af934f8619a5647feb2af9b1720035ce","path":"FirebaseCore/Extension/FIRLibrary.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ebe2131a11528a959085ed75f70cf0aa","path":"FirebaseCore/Extension/FIRLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f7cd78e8b36f8c3004bdfa687b288b09","path":"FirebaseInAppMessaging/Sources/Private/Util/NSString+FIRInterlaceStrings.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98676b887eb000322556e8064934d72c16","path":"FirebaseInAppMessaging/Sources/Util/NSString+FIRInterlaceStrings.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f011a68ddf3834fca52e96bf0bb102f1","path":"FirebaseInAppMessaging/Swift/Source/SPMSwiftHeaderWorkaround.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e988f91b9b4140f31d48fd0fb9ebdce9788","path":"FirebaseInAppMessaging/Swift/Source/SwiftUIPreviewHelpers.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984cf6e77e3d639ae117e3267eb37c0691","path":"FirebaseInAppMessaging/Sources/Private/Util/UIApplication+FIRForegroundWindowScene.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9887ad48707335d8f99008d0c028240f45","path":"FirebaseInAppMessaging/Sources/Util/UIApplication+FIRForegroundWindowScene.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984feeb14bb6d4d8139190344836a81a94","path":"FirebaseInAppMessaging/Sources/Util/UIColor+FIRIAMHexString.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984c83fc90682ce1d8915cc0be45b34bcf","path":"FirebaseInAppMessaging/Sources/Util/UIColor+FIRIAMHexString.m","sourceTree":"","type":"file"},{"children":[{"fileType":"image.png","guid":"bfdfe7dc352907fc980b868725387e9823bade057a6925e2ffc64411ea091b18","path":"FirebaseInAppMessaging/iOS/Resources/close-with-transparency.png","sourceTree":"","type":"file"},{"fileType":"image.png","guid":"bfdfe7dc352907fc980b868725387e98c9af6da466ebf375b5991aae863086f7","path":"FirebaseInAppMessaging/iOS/Resources/close-with-transparency@2x.png","sourceTree":"","type":"file"},{"fileType":"file.storyboard","guid":"bfdfe7dc352907fc980b868725387e986ef36210b84044f558afeaa66abb8a4a","path":"FirebaseInAppMessaging/iOS/Resources/FIRInAppMessageDisplayStoryboard.storyboard","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98431bf6a51f715045c5b9f3e6365bb4c0","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98184eb90ac9a96384b04d2bdb7161b886","path":"FirebaseInAppMessaging.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f47d61e57bf37b0c028abdf94113103a","path":"FirebaseInAppMessaging-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98038ca26032fa9374812a272c48dd963e","path":"FirebaseInAppMessaging-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d11b7bd67e95821c4d4a17bdc4cf20cd","path":"FirebaseInAppMessaging-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e983106f635c27eb9ff750b37aef1c2122a","path":"FirebaseInAppMessaging.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9873c1e50ab2e948a439504af0c877b222","path":"FirebaseInAppMessaging.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9874f1d873c298da742073a9689d769a4b","path":"ResourceBundle-InAppMessagingDisplayResources-FirebaseInAppMessaging-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98e9af03c5692cdd0b66735aae522a44b8","name":"Support Files","path":"../Target Support Files/FirebaseInAppMessaging","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e985b328f7d07f18a183cda04c2cd698297","name":"FirebaseInAppMessaging","path":"FirebaseInAppMessaging","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9820c469dbcea71d5844db7e67e351fe84","path":"FirebaseCore/Extension/FIRAppInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cddeb58a7c97bb3dab7d7642cd19ae2d","path":"FirebaseCore/Extension/FIRComponent.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9806d78a768ff8ab7a758cfb9603bf40ec","path":"FirebaseCore/Extension/FIRComponentContainer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985e47eacb98c853c03d1c461451fc4b9a","path":"FirebaseCore/Extension/FIRComponentType.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d7e39e1934f7ae5b1c9dd02e84fea0e3","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98595b48a778d03287f4643c53dbd86ef8","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRCurrentDateProvider.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ba006882a99110cb5753cea2323b5b0e","path":"FirebaseCore/Extension/FirebaseCoreInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982196d4a5cef0c567b458f6c0f541ad62","path":"FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FirebaseInstallations.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e37c6f8f8344b2f3297534e9d00daceb","path":"FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988065da28eaeed9ed7c40a9a709fd0030","path":"FirebaseCore/Extension/FIRHeartbeatLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9832a7ef721da7a2ea6fd5e12568d27cbe","path":"FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallations.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9864e3d2778de8be17cf6aabfa269112c2","path":"FirebaseInstallations/Source/Library/FIRInstallations.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983df491bcc93a0a8284a0f6f09af6ee68","path":"FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e983eb4567a9312f88211cabde7cc0d5bb5","path":"FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984e7a243490266e4b960cd2da26a9e583","path":"FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsAuthTokenResult.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980964dd0d9a4700326a3827425fb64885","path":"FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResult.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ce209b23ae1e621f49d48449559a5fb5","path":"FirebaseInstallations/Source/Library/FIRInstallationsAuthTokenResultInternal.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cfd4fb72b7e3e26e7987f26d76841f34","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9864f6331c340d6b06883d2b3e2f962269","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsBackoffController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9876809ee029e263e58124f75ececa0ccc","path":"FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FIRInstallationsErrors.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98815902a0b8ff3ba9863db1b8dfce8f10","path":"FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98675b5e89143ac3b156d205175bcae2db","path":"FirebaseInstallations/Source/Library/Errors/FIRInstallationsErrorUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c520b0cc8554c94284f144b9388e8da4","path":"FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9867261dc432fb73b240a154d72043f9b2","path":"FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ca70bbdad1caf72287dae5c12035ed52","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9871032e1165cc37bd3d04fd6589a46655","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9804e0416cbfaa63014674d63930914e61","path":"FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f57a55c4af26ffae0d7931f12473cf2a","path":"FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDStore.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98db5a5e84c0437759e4cd8d9eb1584455","path":"FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b380235b7d661eb3c463d45782e44cf8","path":"FirebaseInstallations/Source/Library/IIDMigration/FIRInstallationsIIDTokenStore.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985a8653e5eb0b04443ea30b1a758c09c3","path":"FirebaseInstallations/Source/Library/FIRInstallationsItem.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98175ad08e0dce3d06ee01913227a1504a","path":"FirebaseInstallations/Source/Library/FIRInstallationsItem.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9823934ba054b61b5c07a51f400e3a8a60","path":"FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b95b56e55359badfed2d7ff9e9e0ccfe","path":"FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsItem+RegisterInstallationAPI.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98280a4ce5a029aaf99226bb101ff336b8","path":"FirebaseInstallations/Source/Library/FIRInstallationsLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986395eea2472d1117d7539c0d9864061f","path":"FirebaseInstallations/Source/Library/FIRInstallationsLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985501e45a0d01a54458116f637f5a0cbf","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9851797e33341a3bd1c1332b135f8c3fff","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsSingleOperationPromiseCache.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980dccd05639cce8e66421f92c13d7af65","path":"FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98700255ae1b3e8d373316e7f65525c5f1","path":"FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982b6f32fe2372aa125be7ed1fed1ee0f8","path":"FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStore.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98703cd2412a51d31bd99ed23881658e48","path":"FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9895bf281ee6128ce8d8341f63e9f26092","path":"FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986f52bc3af5fc7923d3326581cb95c80f","path":"FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f5a49f8f0ffcbd25af5eea40e60b0a0a","path":"FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9859890f280feb0e23c6db6efac1c6f775","path":"FirebaseCore/Extension/FIRLibrary.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e471aafa8b6ecce9e3a576df03e9b596","path":"FirebaseCore/Extension/FIRLogger.h","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98331691f130c390965e72b63e3158e084","path":"FirebaseInstallations/Source/Library/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98439c8c0da53002efa3e75970837093ca","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e9878a8b4c23dc7fb1fdfc200e2d1b06a38","path":"FirebaseInstallations.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98eb6b72891d593610c1d209106bc5de6d","path":"FirebaseInstallations-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e988a7084fc775f0dddee3c0940a3faa8ec","path":"FirebaseInstallations-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982d5adbecdeee8f6c3a53589fa3a535e6","path":"FirebaseInstallations-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98eb9d725b7a2c82f64dfe553020ca8c12","path":"FirebaseInstallations.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e986216caa578cc31c3ef154bd2a922bf1d","path":"FirebaseInstallations.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98684786fafa9d114055bef002003549ab","path":"ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98c7a48a0c43e032ff7033db49a7d14c85","name":"Support Files","path":"../Target Support Files/FirebaseInstallations","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98561fd950520c9973f1f2e80363a1c3f8","name":"FirebaseInstallations","path":"FirebaseInstallations","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98c0d3f4b37037c3d39f79a0c62a98471d","path":"Sources/GoogleMapsUtils/GeometryUtils/Internal/CartesianPoint.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98caae3a3d507e5336371c300b77c58230","path":"Sources/GoogleMapsUtils/GeometryUtils/CLLocationCoordinate2D+GeometryUtils.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e96e6192f0a8fcfdfdd224f69fdcd788","path":"Sources/GoogleMapsUtilsObjC/include/GMSMarker+GMUClusteritem.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98133f968dd789799e2c1b85847cd31a6b","path":"Sources/GoogleMapsUtilsObjC/include/GMSMarker+GMUClusteritem.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9856464b8feb66ef58513ee6aa27cb2dc2","path":"Sources/GoogleMapsUtils/GeometryUtils/GMSPath+GeometryUtils.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9895314d005643d36685ba650438530b36","path":"Sources/GoogleMapsUtils/GeometryUtils/GMSPolygon+GeometryUtils.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98a5c0e23f67fc0272b3fa48297e93642d","path":"Sources/GoogleMapsUtils/GeometryUtils/GMSPolyline+GeometryUtils.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ac934706ef8d7710d61b1e7ad7798691","path":"Sources/GoogleMapsUtilsObjC/include/GMUCluster.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98297406ca1608ec542f34c4ae841d18f0","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterAlgorithm.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9835a82c427d24fa0d2cf25bb13a56b41c","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterIconGenerator.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9875694458243355f1c4f44c040855a7c5","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterItem.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fdcf9b2e39801846d82118309fa0b256","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterManager.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9859167a39d09ad33ef183ac0350c3100e","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterManager.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98003cee3523479618d33d7cb551bdc05c","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterManager+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988e4163f4d5120a483df7c711ffbd3193","path":"Sources/GoogleMapsUtilsObjC/include/GMUClusterRenderer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9816e7e836475268e2771ea998b5b72998","path":"Sources/GoogleMapsUtilsObjC/include/GMUDefaultClusterIconGenerator.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985aa669feff48625e3b54542ede3b4e3a","path":"Sources/GoogleMapsUtilsObjC/include/GMUDefaultClusterIconGenerator.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a78c066a134c6872eabccd98df725c61","path":"Sources/GoogleMapsUtilsObjC/include/GMUDefaultClusterIconGenerator+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981d73156654b952e73e7d69ccb483e6be","path":"Sources/GoogleMapsUtilsObjC/include/GMUDefaultClusterRenderer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e989efb35952ff99864e6b34dcd9594e3cf","path":"Sources/GoogleMapsUtilsObjC/include/GMUDefaultClusterRenderer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d4829719c78e5a42631f086e64c14520","path":"Sources/GoogleMapsUtilsObjC/include/GMUDefaultClusterRenderer+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9847435f83bc9fe0f2e7f14a4da2d0d417","path":"Sources/GoogleMapsUtilsObjC/include/GMUFeature.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9895c3c7f171400da55b1d36abfbec1ff1","path":"Sources/GoogleMapsUtilsObjC/include/GMUFeature.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dfeb246ee35d5adae71937d612b0572c","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeoJSONParser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c464415c95529785e2b6c3cc2a912b3d","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeoJSONParser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980942a06393cc7e4d9da2ee4b6ea2c41a","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986036d1ed80b879c44cdd01792564138e","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometryCollection.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981410398979eac49a4ed9b1afab247856","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometryCollection.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9802af5b3c8d369e5339cfd5e25a5b3cfe","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometryContainer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98ea450a1aab71ddd9a6d2d858ec9796a1","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometryRenderer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b690822b87fb6878925c4d1e8a61423f","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometryRenderer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986fa8ae482b8bb2aafe5eb722c57819ab","path":"Sources/GoogleMapsUtilsObjC/include/GMUGeometryRenderer+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988ae9164f315836dcf9f0e5f1e8688bde","path":"Sources/GoogleMapsUtilsObjC/include/GMUGradient.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984a39a441a56ff7061d47c86c86eced79","path":"Sources/GoogleMapsUtilsObjC/include/GMUGradient.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985f2ea4e68272257a9db4e8f11e3593eb","path":"Sources/GoogleMapsUtilsObjC/include/GMUGridBasedClusterAlgorithm.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d9178511d3feba07fc7b605fbd80eaa8","path":"Sources/GoogleMapsUtilsObjC/include/GMUGridBasedClusterAlgorithm.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893a39e36c1e0494157a9891708917545","path":"Sources/GoogleMapsUtilsObjC/include/GMUGroundOverlay.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e988e1b033ce1851897bcaf8238114490bd","path":"Sources/GoogleMapsUtilsObjC/include/GMUGroundOverlay.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c483d93a51931e08b8b5fba53347a019","path":"Sources/GoogleMapsUtilsObjC/include/GMUHeatmapTileLayer.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98254cb82bf7bb852a6a26e3dfaa5b1720","path":"Sources/GoogleMapsUtilsObjC/include/GMUHeatmapTileLayer.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f43a2156490649419a1a144f32315aea","path":"Sources/GoogleMapsUtilsObjC/include/GMUHeatmapTileLayer+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9858a47251f435d160d293efa459c82d06","path":"Sources/GoogleMapsUtilsObjC/include/GMUKMLParser.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982dcfbf893a6c2340990a2fdb4328c19a","path":"Sources/GoogleMapsUtilsObjC/include/GMUKMLParser.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e987a025a1eaba06014e2bfcc38aef69b2a","path":"Sources/GoogleMapsUtilsObjC/include/GMULineString.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9886a2d8b9519c0ac3762873da3b0333bd","path":"Sources/GoogleMapsUtilsObjC/include/GMULineString.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98af36be62118ca01dfeda1ceec5ee8dff","path":"Sources/GoogleMapsUtilsObjC/include/GMUMarkerClustering.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9874969872273fb9483a975ecef003f657","path":"Sources/GoogleMapsUtilsObjC/include/GMUNonHierarchicalDistanceBasedAlgorithm.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9810b72fe8a74d85bf3af3feee77f40b89","path":"Sources/GoogleMapsUtilsObjC/include/GMUNonHierarchicalDistanceBasedAlgorithm.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9803444454650be84f83765bc7b18673da","path":"Sources/GoogleMapsUtilsObjC/include/GMUPair.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984feeef293e533e4753e258263f510280","path":"Sources/GoogleMapsUtilsObjC/include/GMUPair.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986ef6abcf57fdad0477202156df9ea31e","path":"Sources/GoogleMapsUtilsObjC/include/GMUPlacemark.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985f9e334bfd69353154a5ccf2fd19c7ff","path":"Sources/GoogleMapsUtilsObjC/include/GMUPlacemark.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98979c6c0a11bea7f271819534e7f7dd88","path":"Sources/GoogleMapsUtilsObjC/include/GMUPoint.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9876c310a5cf1a0440d11aed0f9e2309c6","path":"Sources/GoogleMapsUtilsObjC/include/GMUPoint.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e3f019749535b07acc8145a992bd2625","path":"Sources/GoogleMapsUtilsObjC/include/GMUPolygon.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98861587e93463f0bdac57ee51ddbc4c2b","path":"Sources/GoogleMapsUtilsObjC/include/GMUPolygon.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985753ef3fd6a1c3a63c3f0c60fce61862","path":"Sources/GoogleMapsUtilsObjC/include/GMUSimpleClusterAlgorithm.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98046bccd735084ba5c68cfa9312ce65c1","path":"Sources/GoogleMapsUtilsObjC/include/GMUSimpleClusterAlgorithm.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e981c95d1d62e0bae3ea2fc68b1a9a6789a","path":"Sources/GoogleMapsUtilsObjC/include/GMUStaticCluster.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980f02bba660f404080a5597633a1cd957","path":"Sources/GoogleMapsUtilsObjC/include/GMUStaticCluster.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c6f0ee9f5a579a51aa5eabb92b1996ae","path":"Sources/GoogleMapsUtilsObjC/include/GMUStyle.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b6a1fcb8de627e4a149dbeaa3fa5fca0","path":"Sources/GoogleMapsUtilsObjC/include/GMUStyle.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fcfd986d77afcc6095214a15564f845b","path":"Sources/GoogleMapsUtilsObjC/include/GMUStyleMap.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98779ba55a043129b4cb2a8298f38b5a38","path":"Sources/GoogleMapsUtilsObjC/include/GMUStyleMap.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9841e0d9ead2e75f9c0547eadbaf603ebd","path":"Sources/GoogleMapsUtilsObjC/include/GMUWeightedLatLng.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984fcb1353e10344e3b37b66ab105ff9df","path":"Sources/GoogleMapsUtilsObjC/include/GMUWeightedLatLng.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98f7e48b78c10132ef1157c58fcb44a8c0","path":"Sources/GoogleMapsUtilsObjC/include/GMUWrappingDictionaryKey.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985e0d27beb33afd8c2a21c99c2ccad8ff","path":"Sources/GoogleMapsUtilsObjC/include/GMUWrappingDictionaryKey.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aa46525b645af3b060ae70cb2a04d7b1","path":"Sources/GoogleMapsUtilsObjC/include/GoogleMapsUtils-Bridging-Header.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e983c8fb430362bc6df2404bb19aed1e18a","path":"Sources/GoogleMapsUtilsObjC/include/GQTBounds.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e988124f4cca2b144d1b6d313671c790a95","path":"Sources/GoogleMapsUtilsObjC/include/GQTPoint.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982e36e3f0418abfbd1231d14afc3e431e","path":"Sources/GoogleMapsUtilsObjC/include/GQTPointQuadTree.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98f660d0c0cd1da3a27899ec0022d8d1a5","path":"Sources/GoogleMapsUtilsObjC/include/GQTPointQuadTree.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9837a371f82480ad93e46e3390de6d3efa","path":"Sources/GoogleMapsUtilsObjC/include/GQTPointQuadTreeChild.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9820ccee8407a76e52a65bbf322314ff24","path":"Sources/GoogleMapsUtilsObjC/include/GQTPointQuadTreeChild.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9868e3d3f5f49dd91556147e7cd4012045","path":"Sources/GoogleMapsUtilsObjC/include/GQTPointQuadTreeItem.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e982a378c57812ca7d898234f3cc11ceb13","path":"Sources/GoogleMapsUtils/Heatmap/HeatmapInterpolationPoints.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98e99e177c966f2ff38aa05af9369e0d12","path":"Sources/GoogleMapsUtils/GeometryUtils/Internal/LatLngRadians.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e9806214aad2c526ded1138c62610f86b34","path":"Sources/GoogleMapsUtils/GeometryUtils/MapPoint.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98d179aa16d343f78f75bdb1b308e19ab2","path":"Sources/GoogleMapsUtils/GeometryUtils/Math.swift","sourceTree":"","type":"file"},{"fileType":"sourcecode.swift","guid":"bfdfe7dc352907fc980b868725387e98f29a0ba53be4a73034962f441758af1b","path":"Sources/GoogleMapsUtils/Helper/MockMapView.swift","sourceTree":"","type":"file"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98d85c436c9682deed9195af793876592b","path":"Google-Maps-iOS-Utils.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98343648552569b07a4e4f8b3ae6a1c541","path":"Google-Maps-iOS-Utils-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9802c3e3ae980eef66d2858f24c5e11764","path":"Google-Maps-iOS-Utils-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9818029a54bfcc206a23b74eea5273589e","path":"Google-Maps-iOS-Utils-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b7a8743f7a79cf2a707386ad015dc2cd","path":"Google-Maps-iOS-Utils-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e984e5ddf305b15e328b278f7ec613cd72f","path":"Google-Maps-iOS-Utils.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982deaf7ef5abb8babe5030989e83fee12","path":"Google-Maps-iOS-Utils.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e983921bdd684d552d9ec2f8849c94bf109","name":"Support Files","path":"../Target Support Files/Google-Maps-iOS-Utils","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9853b126f86e8445b2d358a8c01df52ef2","name":"Google-Maps-iOS-Utils","path":"Google-Maps-iOS-Utils","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98aa03eac9255b5780aea32c8a06afe485","path":"Maps/Sources/GMSEmpty.h","sourceTree":"","type":"file"},{"children":[{"fileType":"wrapper.xcframework","guid":"bfdfe7dc352907fc980b868725387e98e4769d348944009f646da9190abbb280","path":"Maps/Frameworks/GoogleMaps.xcframework","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e986da7b6262073aff96731c4f3b2a66104","name":"Frameworks","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"wrapper.plug-in","guid":"bfdfe7dc352907fc980b868725387e98ef4af8760316bbbb2082eb8f1810633d","path":"Maps/Resources/GoogleMapsResources/GoogleMaps.bundle","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e981369eee644f0fa4b4439b4c3a01ebfb1","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98396aca0623b228f5275027c514c4eda5","name":"Maps","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.script.sh","guid":"bfdfe7dc352907fc980b868725387e9846ee4050e0f5990c829c9f45118afc47","path":"GoogleMaps-xcframeworks.sh","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982889bbbdf685bde5893929a9769c028f","path":"GoogleMaps.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9814564448a44197e8075f3f5dd8318b45","path":"GoogleMaps.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98c438ed3494790a43c6d35d9febde44e9","path":"ResourceBundle-GoogleMapsResources-GoogleMaps-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9807de10e65f54058148fdca49e3f3eabf","name":"Support Files","path":"../Target Support Files/GoogleMaps","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dcfe909a6841ddea3bd953c090216761","name":"GoogleMaps","path":"GoogleMaps","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e985835f96d89218a122e5ce3e141394305","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98265a7bc109c9a02c996a209f9cbe4d80","path":"GoogleUtilities/Environment/GULAppEnvironmentUtil.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98bc69bb31fc25ac4268e383c844f7cd40","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainStorage.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b962fd69f59039840959ff95cba51a29","path":"GoogleUtilities/Environment/SecureStorage/GULKeychainStorage.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9864b4ec5e8ab0c9d4afcf7597f90af5fc","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULKeychainUtils.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cb9827d4dd304a06dfdc8f6272256460","path":"GoogleUtilities/Environment/SecureStorage/GULKeychainUtils.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9840991bf29feb5074808284bcf578d090","path":"GoogleUtilities/Environment/Public/GoogleUtilities/GULNetworkInfo.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d62ce38a345b93a443d396c58c047f07","path":"GoogleUtilities/Environment/NetworkInfo/GULNetworkInfo.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98b128781c706c420f1f4054ece59d628b","path":"third_party/IsAppEncrypted/Public/IsAppEncrypted.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98711c55f1a635d927da4fa29d65a30984","path":"third_party/IsAppEncrypted/IsAppEncrypted.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e982dea01f887f33a44c6a3b6d2555879b0","name":"Environment","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9828ef6f1816e9ed20e0e7065e4ccf6313","path":"GoogleUtilities/Logger/Public/GoogleUtilities/GULLogger.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984f589020f00e73298747c0d3cc93b407","path":"GoogleUtilities/Logger/GULLogger.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9898b0e20abd0e6e1bc7f7b208d36bf587","path":"GoogleUtilities/Logger/Public/GoogleUtilities/GULLoggerLevel.h","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9849f759c0f0bed98b992a9c903737f80d","name":"Logger","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98513bac5cece328e8840e1bb830fedc9b","path":"GoogleUtilities/NSData+zlib/Public/GoogleUtilities/GULNSData+zlib.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e985fc51065ad7468cef68ee5ee121a9145","path":"GoogleUtilities/NSData+zlib/GULNSData+zlib.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98fd681ec05708c22cf8305bfbd4898b08","name":"NSData+zlib","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9872243415f68e8c26f9c70d0f8beb42a0","path":"GoogleUtilities/Privacy/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9877391d8637f75362b22bde5b6c67c723","name":"Resources","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e988d26406e69e9ec2aa94b0ea541f47fe6","name":"Privacy","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e983e089ddfe299085bc7d20e655dd5518f","path":"GoogleUtilities.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98c920204df96fa29abb14a01a3bb7ef34","path":"GoogleUtilities-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e986f8bf3f51bc483fab517fbe48c9cb748","path":"GoogleUtilities-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98024809acf933461028e2666bdfcf1862","path":"GoogleUtilities-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9810636fd05cda4b4be2ac24c3541280a5","path":"GoogleUtilities.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98a5a83b96886cb2edf9ceacb35cb7b59a","path":"GoogleUtilities.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e980a108b1e728266cdbbab8722fcbec16a","path":"ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9899bde56aaf5c4ddb439208737f1c890d","name":"Support Files","path":"../Target Support Files/GoogleUtilities","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fb81ed6443859923df6ff2d9b8e9e551","path":"GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e981e1991d659076ff0ba434c74063974b7","path":"GoogleUtilities/UserDefaults/GULUserDefaults.m","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e982e3ff4140b4024a72727bae66f77aec9","name":"UserDefaults","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e981627aa18000a4f74d81259de01f69fc7","name":"GoogleUtilities","path":"GoogleUtilities","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98da568d77aea5943c4262605db2a04d54","path":"pb.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98086d496a513512fe0eb0c7649ad9b8ab","path":"pb_common.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98833ec06991ec1e41f693acb6edaaca12","path":"pb_common.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98e6ef1aa976d29227d5af03d77325d29d","path":"pb_decode.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98845fff2bd2f6de1bce1bc8448047f6cd","path":"pb_decode.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.c","guid":"bfdfe7dc352907fc980b868725387e98cca7df0aa3b34edc888f8ab6f7d0b2a5","path":"pb_encode.c","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98314e333a9698bf6afebad1d61771b5d2","path":"pb_encode.h","sourceTree":"","type":"file"},{"guid":"bfdfe7dc352907fc980b868725387e98ed2f998f55207b21232895541b8b94f3","name":"decode","path":"","sourceTree":"","type":"group"},{"guid":"bfdfe7dc352907fc980b868725387e985c6cb138d5a54aa6ef39ff4362bd2727","name":"encode","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e9827a6ba5b75b5406d9c84abd02d00019d","path":"spm_resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e982c96e12ec6ca544685f8e33e347ff02c","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a469bbf2ec569e8a0f3fe1f41b25f17a","path":"nanopb.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98608d3baf93c9910ad82470ccbe9e8d1d","path":"nanopb-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e987afa6d96b8bbb5b17cd12dba5c83ff45","path":"nanopb-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98cab5aff257c8128e0e9f88660fa58d5a","path":"nanopb-prefix.pch","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98356f2881dddb32fd0cf71d7b256f3d56","path":"nanopb-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e982b1a2e6a05bf006e8da499a313201ffd","path":"nanopb.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98eec79f52c283202bb2af70351c694dc3","path":"nanopb.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98e2a33636a489e67a6ae96d8b1b3ba1d5","path":"ResourceBundle-nanopb_Privacy-nanopb-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98f4b9afbe59af29207204962bce4cf9c8","name":"Support Files","path":"../Target Support Files/nanopb","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9855adaf83d6227a9f3bbf99dc165aa8fe","name":"nanopb","path":"nanopb","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9886948c13094c0a42ab0e3047f5aa258a","path":"Sources/FBLPromises/include/FBLPromise.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9821fedb626a0bd363a80c081601d4062a","path":"Sources/FBLPromises/FBLPromise.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98115ce9fb60e7e4ceef4bc94c9bc94f0d","path":"Sources/FBLPromises/include/FBLPromise+All.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98e4be7260673dcd81411fb454cd20b009","path":"Sources/FBLPromises/FBLPromise+All.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9897593c5a49ec08bb6c0fa1497f630feb","path":"Sources/FBLPromises/include/FBLPromise+Always.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9839a151d76d99b53507807caaa55af049","path":"Sources/FBLPromises/FBLPromise+Always.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98c791b6628e76fe84b48d093171a813db","path":"Sources/FBLPromises/include/FBLPromise+Any.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9833eeeadaf87f9293446c2e6503e6b018","path":"Sources/FBLPromises/FBLPromise+Any.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9846e73f8bbc2a37a554f087a1c783bcad","path":"Sources/FBLPromises/include/FBLPromise+Async.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e982bbe6ed792ae052632795dcb434acbca","path":"Sources/FBLPromises/FBLPromise+Async.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e986a597a1fa1fd32097026634c20232b56","path":"Sources/FBLPromises/include/FBLPromise+Await.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9857fcd3d833ecbb849a198b46d54cd396","path":"Sources/FBLPromises/FBLPromise+Await.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98fdb0642d26d06c78dea864ba3ff94fe2","path":"Sources/FBLPromises/include/FBLPromise+Catch.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e980168900600fc5664b84a6c44348c5095","path":"Sources/FBLPromises/FBLPromise+Catch.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e982c6d60a984c4f9f41238b730ba006af7","path":"Sources/FBLPromises/include/FBLPromise+Delay.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98cc5334f309885fa7c0c2a8be66fa576f","path":"Sources/FBLPromises/FBLPromise+Delay.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e3c76a08fcb4a170a6f32f704bf4ae4c","path":"Sources/FBLPromises/include/FBLPromise+Do.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98868be4213b79be77199b38ba7023ec4a","path":"Sources/FBLPromises/FBLPromise+Do.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9834b83b523b54aa79e2e6622c58690ff8","path":"Sources/FBLPromises/include/FBLPromise+Race.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9853bca0bb74815f791461574c31ab1ebf","path":"Sources/FBLPromises/FBLPromise+Race.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980ca96948ac55f1cf470f0e38b75d865a","path":"Sources/FBLPromises/include/FBLPromise+Recover.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986bf55b00b9f96ce8ca77099fc7c04d14","path":"Sources/FBLPromises/FBLPromise+Recover.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e984c122272947d4acdd0b216dc666d25b6","path":"Sources/FBLPromises/include/FBLPromise+Reduce.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9826a39b43b43da508939f64dac43651b8","path":"Sources/FBLPromises/FBLPromise+Reduce.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98967949b1d28c020fb4a56c9ed278766e","path":"Sources/FBLPromises/include/FBLPromise+Retry.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98d14403bf648844ebe28c72dac0d061e8","path":"Sources/FBLPromises/FBLPromise+Retry.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98254fba5dd6fda4b2d7df0b89835f8a26","path":"Sources/FBLPromises/include/FBLPromise+Testing.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98832813e5ac2d4e7d21f73f0011f9a03a","path":"Sources/FBLPromises/FBLPromise+Testing.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98d20bd599d8a1fd7b09d6b3d605b16f35","path":"Sources/FBLPromises/include/FBLPromise+Then.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98a177c5fa3388e1de07e7b02a4a2d7a57","path":"Sources/FBLPromises/FBLPromise+Then.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e4838a5a95946722bf9676ab94a823f2","path":"Sources/FBLPromises/include/FBLPromise+Timeout.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e9832ecb5ed6e6f6d8101156074ef07c06e","path":"Sources/FBLPromises/FBLPromise+Timeout.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98dc1f368c3ef686f0bb67ed509341147d","path":"Sources/FBLPromises/include/FBLPromise+Validate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e984614ae2a28f5059ffbdf1fecb4c99956","path":"Sources/FBLPromises/FBLPromise+Validate.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98a657b78be9a6141d34e9a2673a802c4e","path":"Sources/FBLPromises/include/FBLPromise+Wrap.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98b4e05b765bd1cc8c2c14395ccfe99ae4","path":"Sources/FBLPromises/FBLPromise+Wrap.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e24aecb46c96d4186c8778a9dc45f237","path":"Sources/FBLPromises/include/FBLPromiseError.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98753c304fe1338c9560f344e4ee011d18","path":"Sources/FBLPromises/FBLPromiseError.m","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e9893729bf4c32017e79e6bb89eb569625f","path":"Sources/FBLPromises/include/FBLPromisePrivate.h","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98621f635e9f291f8e20291cd47ee2c1e3","path":"Sources/FBLPromises/include/FBLPromises.h","sourceTree":"","type":"file"},{"children":[{"fileType":"text.xml","guid":"bfdfe7dc352907fc980b868725387e98be7925d0b7c567d7b3b81e4f9b8f3dd4","path":"Sources/FBLPromises/Resources/PrivacyInfo.xcprivacy","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98565a6724ddfe3bf0141f93ef918e7199","name":"Resources","path":"","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98e1d3cc5ff35bdf93bcddd860cc2257f1","path":"PromisesObjC.modulemap","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e986df6e9ad692ed93bf8f685436cee9b18","path":"PromisesObjC-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9861764c860beda69252da75f8392edb6d","path":"PromisesObjC-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e989b3a6ba296c9716b3ebb4f08cbb12121","path":"PromisesObjC-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98384faf6833a8ff5c4a6994aec5d64a32","path":"PromisesObjC.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98dd17c7a49baf3905e7f403f18531effa","path":"PromisesObjC.release.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e982699c1900be790fc6158f514969bd983","path":"ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e984e1ce67d892a4107508dd399ecad8b53","name":"Support Files","path":"../Target Support Files/PromisesObjC","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9802a4f27f59a5b0a5df4aef90cea98bc5","name":"PromisesObjC","path":"PromisesObjC","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e9889c0344ba8b79672b1aa73ec533e4274","name":"Pods","path":"","sourceTree":"","type":"group"},{"guid":"bfdfe7dc352907fc980b868725387e98e7c677d0787b4dd3afe32b7dc3507d20","name":"Products","path":"","sourceTree":"","type":"group"},{"children":[{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e98a3f4680c874ecbcb5b5a6338bc13a426","path":"Pods-Runner.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e9814181933c973297b0001d0e9ee64381d","path":"Pods-Runner-acknowledgements.markdown","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e9887440869a53d6020d968ddf6b9b30aa0","path":"Pods-Runner-acknowledgements.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98fed0970e703d355c9aff813f280aafdc","path":"Pods-Runner-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.script.sh","guid":"bfdfe7dc352907fc980b868725387e9826e505869a67d81656859ded68178c1d","path":"Pods-Runner-frameworks.sh","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e98de02ac5005ab1eb052abf25c63731e95","path":"Pods-Runner-Info.plist","sourceTree":"","type":"file"},{"fileType":"text.script.sh","guid":"bfdfe7dc352907fc980b868725387e98f6f4dcb116856f2da0fa97d3015cb1af","path":"Pods-Runner-resources.sh","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e980ec6fbca7264a6936f2adfc48dd7f5bc","path":"Pods-Runner-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e9850cc7fc2d23136fb4fac488d6c47df20","path":"Pods-Runner.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98dc1a21852c7a085c7dd8f65cf0fa9907","path":"Pods-Runner.profile.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98f17abf55d75f35efcaf45a1185b085b6","path":"Pods-Runner.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e98cf3c1972df678a5e36df75a46391500d","name":"Pods-Runner","path":"Target Support Files/Pods-Runner","sourceTree":"","type":"group"},{"children":[{"fileType":"sourcecode.module-map","guid":"bfdfe7dc352907fc980b868725387e984c4f55ec853c945e234980557a98aed8","path":"Pods-RunnerTests.modulemap","sourceTree":"","type":"file"},{"fileType":"text","guid":"bfdfe7dc352907fc980b868725387e98fc0f7e7242f459f81e455145932dcafd","path":"Pods-RunnerTests-acknowledgements.markdown","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e985f8b68b152f46f18718da20c04e675cb","path":"Pods-RunnerTests-acknowledgements.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.objc","guid":"bfdfe7dc352907fc980b868725387e98022654f1ff78dd844d694dba2439dab2","path":"Pods-RunnerTests-dummy.m","sourceTree":"","type":"file"},{"fileType":"text.plist.xml","guid":"bfdfe7dc352907fc980b868725387e989e5ad6b9a07953a12c7008a15bd9c99c","path":"Pods-RunnerTests-Info.plist","sourceTree":"","type":"file"},{"fileType":"sourcecode.c.h","guid":"bfdfe7dc352907fc980b868725387e98e5e8bcdff29e5f8321be18f7989b4bc7","path":"Pods-RunnerTests-umbrella.h","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98144cd18850e477837c238075d5256ffe","path":"Pods-RunnerTests.debug.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e981b663a2c82f0220040296818ba53477e","path":"Pods-RunnerTests.profile.xcconfig","sourceTree":"","type":"file"},{"fileType":"text.xcconfig","guid":"bfdfe7dc352907fc980b868725387e98965b92d39d30a7872295adc2841cd1b1","path":"Pods-RunnerTests.release.xcconfig","sourceTree":"","type":"file"}],"guid":"bfdfe7dc352907fc980b868725387e9859551a2ccb1df711861b574920cd49bf","name":"Pods-RunnerTests","path":"Target Support Files/Pods-RunnerTests","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98dafc421ff02609f2772b356038eb9849","name":"Targets Support Files","path":"","sourceTree":"","type":"group"}],"guid":"bfdfe7dc352907fc980b868725387e98677e601b37074db53aff90e47c8f96d1","name":"Pods","path":"","sourceTree":"","type":"group"},"guid":"bfdfe7dc352907fc980b868725387e98","path":"/Users/anbarasu/StudioProjects/businessv1/ios/Pods/Pods.xcodeproj","projectDirectory":"/Users/anbarasu/StudioProjects/businessv1/ios/Pods","targets":["TARGET@v11_hash=721ef4b08355be6994a510dbb50b0e46","TARGET@v11_hash=4b4c162da4c9cd039f5c0abeb394ca77","TARGET@v11_hash=3fdfa40b45cfa885ed5244c776550751","TARGET@v11_hash=d3119035b8d352c6c71fb6834f2c7eea","TARGET@v11_hash=6f8583089c6731cb96458df04f917e43","TARGET@v11_hash=251aa3a9f2177b4df9676e067ed399a2","TARGET@v11_hash=0b8a6684b0a5d6e7f6047883e1ac9bc2","TARGET@v11_hash=7d72c6d9139bbbc45845b1d55d27face","TARGET@v11_hash=6241203fef033d193d2f0560f3cf0ea9","TARGET@v11_hash=2c1bdf12b2725e2baade8a6703513dc0","TARGET@v11_hash=60da4ace29c4b32265ba53d002c23a66","TARGET@v11_hash=0c911f4f752a9c33a1ba4761a4530f94","TARGET@v11_hash=f7bd16dc3e27da9f416bedcd6d25c81e","TARGET@v11_hash=b7cfdb19eba991e47751deddb3237f55","TARGET@v11_hash=34270ceab2ee94742b43dfec0872c529","TARGET@v11_hash=04bb28afcfc4730607aed0457182dd27","TARGET@v11_hash=0b6d0b5fb2d537f13e26f6eaf344f57c","TARGET@v11_hash=ad65974128f9d9fa582fd1f471fca0c6","TARGET@v11_hash=2db8d378a58119ee420cc366703d859e","TARGET@v11_hash=cbd9e4ec57aa84e0e8c51be15acbe1d9","TARGET@v11_hash=ee764aff52559a26f05e14beda9cd104","TARGET@v11_hash=0cd4c06300c0839e9bd70aa2b2d14d1c","TARGET@v11_hash=9c1ff46a3badeab38089604ac4b957d0","TARGET@v11_hash=ec8f51018cc9417b9667cad266e51f6f","TARGET@v11_hash=cb79a6ae52f45af7f18cae4150e8f9dc","TARGET@v11_hash=c49458fb5f351aeac72caf15704a0996","TARGET@v11_hash=f459a979308737aab1153061734a67a9","TARGET@v11_hash=b3979d748f74350c46e69d6ce018e6ff","TARGET@v11_hash=9323cd7af10a20ac4bfe78efa11f2d1f","TARGET@v11_hash=861a73f16e0756409bcc2503ac740d6f","TARGET@v11_hash=5114a9e5203f4eb04bd386aac0631c04","TARGET@v11_hash=9c8823fb141898d2d3c282834a81310c","TARGET@v11_hash=5a99a43ca8a79ba648755142ef976d64","TARGET@v11_hash=49e544e05a091d10652d3c6b73c28708","TARGET@v11_hash=44d169aa2379312db2ff4b3c9faa2364","TARGET@v11_hash=e262977a2568fa86238c80f671c03716","TARGET@v11_hash=af0c014b6f2e262eb4dd2dff194b319f","TARGET@v11_hash=4244627913a8a943e8cfbeb1d18e3a57","TARGET@v11_hash=dba0731e25b80e1d09e07b4491953e28","TARGET@v11_hash=2ec7a085849d7c36d7460c5aec320cdb","TARGET@v11_hash=6b9b37e0e11733425e61bcbba0aaa55c","TARGET@v11_hash=ebbeae02a3029c9ed647ba83a0a15ab1","TARGET@v11_hash=f017be357f5f94239118f2ad470ba3af","TARGET@v11_hash=af39109b0974bab470d89741bc7ee4e8","TARGET@v11_hash=0b5c56eba210690b388911ad4c468d4e","TARGET@v11_hash=826a4ccff02639bdb45d63701c13e979","TARGET@v11_hash=5007876e86206d721739f4dd64c2bb53","TARGET@v11_hash=4eaee209067cc3e5f9b877bc619a0d04","TARGET@v11_hash=876bcfe3bcd2a9f3368ac0b12c6afe5f","TARGET@v11_hash=c0a1c1d8a4b3b0d4f7f24b05e0231096","TARGET@v11_hash=6e54c97a63b8201c1bfa6286996e9fc0","TARGET@v11_hash=1b0f2be2e3d0cf6624ca6c750ccbfcdf","TARGET@v11_hash=447826e89bbefc2ea81b8346d2f54fe9","TARGET@v11_hash=509ef2b5f0713db35338bdc2c28ba58b","TARGET@v11_hash=7f84e58ffd0f184005dd2244c1722731","TARGET@v11_hash=2f73669acaa8eda4f6b48f7b55840369","TARGET@v11_hash=7dd9c6124ead3357b80228871ef74d3d","TARGET@v11_hash=121e2137e0bc5b16dd5b5a5f61286806"]} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=04bb28afcfc4730607aed0457182dd27-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=04bb28afcfc4730607aed0457182dd27-json new file mode 100644 index 0000000..a382df4 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=04bb28afcfc4730607aed0457182dd27-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985c18f34f813c55ef325687f54df8f2c1","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","ONLY_ACTIVE_ARCH":"NO","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2"},"guid":"bfdfe7dc352907fc980b868725387e982cf0da236cf10d087750aa1434da9227","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f6b0c13da80591d540151e6658196652","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e98cc28f154213fd8181aa70d4c188a8335","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f6b0c13da80591d540151e6658196652","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e981f19fefc6e52ad9e4e005a2248234387","name":"Release"}],"buildPhases":[],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Release","provisioningStyle":0}],"type":"aggregate"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b5c56eba210690b388911ad4c468d4e-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b5c56eba210690b388911ad4c468d4e-json new file mode 100644 index 0000000..447a5d6 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b5c56eba210690b388911ad4c468d4e-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98144cd18850e477837c238075d5256ffe","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e3a6adc2d53263414625bdf293fa572a","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981b663a2c82f0220040296818ba53477e","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a03a454c090b5a88c06fbf75733125ca","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98965b92d39d30a7872295adc2841cd1b1","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-RunnerTests/Pods-RunnerTests.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982ff090509fc06ef6b7ec3e24fdc61eed","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e5e8bcdff29e5f8321be18f7989b4bc7","guid":"bfdfe7dc352907fc980b868725387e98ca9af5e2c54f437f9ebb0c203883ccae","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e986e6b8bd91d07f2fb082ccd84c7dcacb1","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98022654f1ff78dd844d694dba2439dab2","guid":"bfdfe7dc352907fc980b868725387e9881f185e1672aa83b98d6e30b47f8f468"}],"guid":"bfdfe7dc352907fc980b868725387e98de09b1176c796343f1f9bcd422c73402","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98e7ac2b91ee49764a75561cf994247683"}],"guid":"bfdfe7dc352907fc980b868725387e983bb5c38e7891bdb262f8e050f7d97030","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e987fddc24c35656402341de288e0688015","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98312b4bc59bbbe2c06c205bf4da6737f5","name":"Pods-Runner"}],"guid":"bfdfe7dc352907fc980b868725387e98483832d3c820398e9d40e1a6904b03fe","name":"Pods-RunnerTests","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e984f9f39caeddf64cc331db2b69d62aa63","name":"Pods_RunnerTests.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b6d0b5fb2d537f13e26f6eaf344f57c-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b6d0b5fb2d537f13e26f6eaf344f57c-json new file mode 100644 index 0000000..53f162b --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b6d0b5fb2d537f13e26f6eaf344f57c-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982533737f4cfec9c1d0f9027e946a9789","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"flutter_keyboard_visibility","PRODUCT_NAME":"flutter_keyboard_visibility","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98393eb1efda29ef31259dda5d589467eb","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980226329c91a2d55ee7019bcff2b6daaf","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"flutter_keyboard_visibility","PRODUCT_NAME":"flutter_keyboard_visibility","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98943d3e711d56ecf175042853ab88b110","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980226329c91a2d55ee7019bcff2b6daaf","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/flutter_keyboard_visibility/flutter_keyboard_visibility.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"flutter_keyboard_visibility","PRODUCT_NAME":"flutter_keyboard_visibility","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e986c95d5fcc38a27d5f4c7b7ff9730161e","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c920612d05367c58a1a6d0117365cee9","guid":"bfdfe7dc352907fc980b868725387e983c6bcc1556283ea4958cc9798fad93f4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cee0377b125afa6107dd7b491d769fae","guid":"bfdfe7dc352907fc980b868725387e98029c6cffaf6232763eef53d463cb00fc","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9833b159845d971c8f249d517b1610e26f","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f9b76277262d870270dff71f2de7d97c","guid":"bfdfe7dc352907fc980b868725387e987979f77b933a7cb640e0115b59deb14d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d0934a8729b86a7bd6f01e0cb80ae163","guid":"bfdfe7dc352907fc980b868725387e9826bd88aa8dcf1deeef5a22a79525473c"}],"guid":"bfdfe7dc352907fc980b868725387e985b5b680d1f7661079dc47b8daffaabf3","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98664630480fa00b26b8a1a8bb4d5ebb97"}],"guid":"bfdfe7dc352907fc980b868725387e985e4a4449d158131c66d916c7814a19b6","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e983e814ccd221ca48f0d8fd132119dac92","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e98397d1949c19933d656e15d632cccabfd","name":"flutter_keyboard_visibility","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98465e8ddc0c1c3fe0e4bb7ea0de0215ca","name":"flutter_keyboard_visibility.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b8a6684b0a5d6e7f6047883e1ac9bc2-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b8a6684b0a5d6e7f6047883e1ac9bc2-json new file mode 100644 index 0000000..b335402 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0b8a6684b0a5d6e7f6047883e1ac9bc2-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985212b94297d3e57a502788a203806e5d","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseABTesting","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseABTesting","INFOPLIST_FILE":"Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"13.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"FirebaseABTesting_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f87ba5195a8e2d1b1a54bb8efba76e7a","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ad7b68664812150513910dbbf7fb5b1f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseABTesting","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseABTesting","INFOPLIST_FILE":"Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"13.0","PRODUCT_NAME":"FirebaseABTesting_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98dd175b4c431496323b0c7d5edde53914","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ad7b68664812150513910dbbf7fb5b1f","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseABTesting","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseABTesting","INFOPLIST_FILE":"Target Support Files/FirebaseABTesting/ResourceBundle-FirebaseABTesting_Privacy-FirebaseABTesting-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"13.0","PRODUCT_NAME":"FirebaseABTesting_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9811b73e8fa4eaab3be5323a3fca6f3791","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d4dcf46f33eb6acf96f98c184b9aa969","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984ca06a8ca226c64e22b9f85202536137","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c34dee3fdfa9bb9168df8fe93134b6cc","guid":"bfdfe7dc352907fc980b868725387e98621a38edbbe5389f4653eebe265d9f11"}],"guid":"bfdfe7dc352907fc980b868725387e98a27d148543da102bf7e1f911e08cdc09","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98b9cce05bc25808e2e3952904a4034443","name":"FirebaseABTesting-FirebaseABTesting_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98a718a291ceac43da58780ce82d37524d","name":"FirebaseABTesting_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0c911f4f752a9c33a1ba4761a4530f94-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0c911f4f752a9c33a1ba4761a4530f94-json new file mode 100644 index 0000000..395ecde --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0c911f4f752a9c33a1ba4761a4530f94-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983106f635c27eb9ff750b37aef1c2122a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FirebaseInAppMessaging","PRODUCT_NAME":"FirebaseInAppMessaging","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9838d2fed85fd013c288c30bbf6c6d9d5e","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9873c1e50ab2e948a439504af0c877b222","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging.modulemap","PRODUCT_MODULE_NAME":"FirebaseInAppMessaging","PRODUCT_NAME":"FirebaseInAppMessaging","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98fb5eb1dc75d2c7b98923d7079d8fe5d0","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9873c1e50ab2e948a439504af0c877b222","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseInAppMessaging/FirebaseInAppMessaging.modulemap","PRODUCT_MODULE_NAME":"FirebaseInAppMessaging","PRODUCT_NAME":"FirebaseInAppMessaging","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ca50715f96be5d1c9d89a5ccb2cfc188","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98b2549dfba104e586d45a6e6ae9ab4e01","guid":"bfdfe7dc352907fc980b868725387e98f40381f3ac8af3715f9d90b6b63b31e8"},{"fileReference":"bfdfe7dc352907fc980b868725387e986b5e6baa677e51b71b8c4479727fb5d0","guid":"bfdfe7dc352907fc980b868725387e983f8a5a3a9597e56156b0018c3a54556e"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a7b0c38d81c1a51a21332eb98be4784","guid":"bfdfe7dc352907fc980b868725387e987e31f43a0b2dfc4a162d44db1b0d5cf4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d469f1bc4e1aad5c401183cb285fb6c7","guid":"bfdfe7dc352907fc980b868725387e98e16e1ca04968af6ba5fc87006a3b89aa"},{"fileReference":"bfdfe7dc352907fc980b868725387e981ca488182498c8d56f6f4706e10efac4","guid":"bfdfe7dc352907fc980b868725387e982489e766249b856efe6aad01ca2557c3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eca3f1ebfd440f57ad83258079a1daec","guid":"bfdfe7dc352907fc980b868725387e98a11a7ab4069f6ef39a89f65b4a534b42"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca38abb2e288a9749eafd22300ae9c57","guid":"bfdfe7dc352907fc980b868725387e980d0504a8f9e211e4c074bb1bbe8ab649"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d019ea54b807008ce5f3093de3c58cb3","guid":"bfdfe7dc352907fc980b868725387e9812b9337326941a6f9c9352b6de46db1f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fa2db8eea30b75f381f27b745fb90d1c","guid":"bfdfe7dc352907fc980b868725387e98a338f9cd2892b95397547fcaaa65c9ee"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a7229bf4d6014021b7d6fbf3a19848f4","guid":"bfdfe7dc352907fc980b868725387e98b811b79602697f698be36d18ecd744fd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fec493e57fe33a900a3203e29a53d11f","guid":"bfdfe7dc352907fc980b868725387e98242b0417d6479a1cff5d6138811737a1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ef0c14d347ba94d95f7471d24bc0fb0b","guid":"bfdfe7dc352907fc980b868725387e9839d1d0e2be5656f6d5cfa4ba3e56f1ec"},{"fileReference":"bfdfe7dc352907fc980b868725387e9846dc853b525b92cedba6e6adef5b081e","guid":"bfdfe7dc352907fc980b868725387e983b9b2a0cf88841a4a9f7feeec0d41ab9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d11b7bd67e95821c4d4a17bdc4cf20cd","guid":"bfdfe7dc352907fc980b868725387e986aa363788c1ce8f9d82351a5e78c64a3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987324e6fb9d498637d69c39e376a11591","guid":"bfdfe7dc352907fc980b868725387e98f48f0eeed8d9b15f8d053b51af46d625"},{"fileReference":"bfdfe7dc352907fc980b868725387e98026ce6e1ab8f7f5be78b1ae72245ce78","guid":"bfdfe7dc352907fc980b868725387e98583be9475cc3bad1a47901192ca5b194"},{"fileReference":"bfdfe7dc352907fc980b868725387e989b54d1b4dd40fefacf6a8043c872d315","guid":"bfdfe7dc352907fc980b868725387e98403492df821a1f83a26c0aad9c01a142"},{"fileReference":"bfdfe7dc352907fc980b868725387e987ab21ba7dd3a95c78fc146ace78a924b","guid":"bfdfe7dc352907fc980b868725387e98978f49be1bd7226a375677a82ef7b4e5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9835ec7730ce228eb348215078fab9f806","guid":"bfdfe7dc352907fc980b868725387e9897c478a1a14526b27d8cc163301e831d"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b43e89e6f9fd1d987bcd45531f0f124","guid":"bfdfe7dc352907fc980b868725387e9830ad2fd4f2164cac2adaa46aef7f0383"},{"fileReference":"bfdfe7dc352907fc980b868725387e9859f21ee991279ce69afb528bad1d4996","guid":"bfdfe7dc352907fc980b868725387e98d1c2a87be039ab7f3437ea0139792cb8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98374925e40fa9eb0474a2a487329969eb","guid":"bfdfe7dc352907fc980b868725387e98146bc6a8f46107999ce7c24d68eec9ed"},{"fileReference":"bfdfe7dc352907fc980b868725387e982530a1f9fb4c262a48aa4efbc8b62529","guid":"bfdfe7dc352907fc980b868725387e98d0b970489bf7077cce722d8470ff8961"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895a1ef0b3d56bbb7da9c2995ff354971","guid":"bfdfe7dc352907fc980b868725387e9830feb419cfbb53a8a1c69a187df550be"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f123f92e7797f661cefb586aa08783de","guid":"bfdfe7dc352907fc980b868725387e987fa994bd9b36bf4f531da93363322a68"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819f742eaff16c8532a1466d2f0219ca7","guid":"bfdfe7dc352907fc980b868725387e981fb5ab3a1830b03021a93704a0c53f37"},{"fileReference":"bfdfe7dc352907fc980b868725387e988c790c36a5f3f0bd62010364476ea2f5","guid":"bfdfe7dc352907fc980b868725387e9849c5677590360b84bdabf566d0046b4e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98005f36ca4c67428d1b5195ee0a7462d7","guid":"bfdfe7dc352907fc980b868725387e98e8647aed9400357cdcf5d03c37d34bbe"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f4db9c7a4e5037f71037c60605d5fe0a","guid":"bfdfe7dc352907fc980b868725387e988dbde213759fd013d680c2561a25dd76"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f0d3f4b9bff4f1f8d0279917ea3acfec","guid":"bfdfe7dc352907fc980b868725387e985d8964b3fa09c4f33dd58232e2983310"},{"fileReference":"bfdfe7dc352907fc980b868725387e98973287d40403975b931dfea842a713b5","guid":"bfdfe7dc352907fc980b868725387e986fbca9b48be97b479b234ca5fedff744"},{"fileReference":"bfdfe7dc352907fc980b868725387e98daffc29c36cf6f7a2de6ad1dc5f55cd7","guid":"bfdfe7dc352907fc980b868725387e98e8f912c808bfb58da89915b6a382bcd8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e5fa12fb995ab9ea2395dd36894a8a92","guid":"bfdfe7dc352907fc980b868725387e989a83133d25044598ede034230bfe38b9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ecc355ffeab7adbb3ea2bdc6a5d0f707","guid":"bfdfe7dc352907fc980b868725387e9816a3cb97165948691145f3e8ca429318"},{"fileReference":"bfdfe7dc352907fc980b868725387e9868b5d1c7599f3a618d00e4117bb6b630","guid":"bfdfe7dc352907fc980b868725387e98fa4942fe63fba6614d5076fd3f96fdc5"},{"fileReference":"bfdfe7dc352907fc980b868725387e987015d1750fc19d37e044786a5c63b864","guid":"bfdfe7dc352907fc980b868725387e9856ddf367647841f43b8ce73f6793abfa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bee522752bc61e330ae23f512c3d5d43","guid":"bfdfe7dc352907fc980b868725387e986372e86416eeb0cf0c5fbbc02635b7f1"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e6ceb6e3b89e7a465c82b7bdb423776","guid":"bfdfe7dc352907fc980b868725387e9836767cdcf3f77225066102d7d9de3894"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a11fa332ef9cc3d74e39bb68fa081d58","guid":"bfdfe7dc352907fc980b868725387e984778efdf74cd57cf6fec242c85a9637b"},{"fileReference":"bfdfe7dc352907fc980b868725387e987bb009adcce5275812a95751485e86f5","guid":"bfdfe7dc352907fc980b868725387e98dc6f6f7ebf82e683e4c54a7268a03d2d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806dccab018cadfb2d3cf8c77668150d1","guid":"bfdfe7dc352907fc980b868725387e98d5887624f9407bd09d459ccc5e86ab78"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800b458e5facda8f351e4d12d539da332","guid":"bfdfe7dc352907fc980b868725387e98031ebbcfc28b0bd398ab50a205b56998"},{"fileReference":"bfdfe7dc352907fc980b868725387e98329bb402ab9675fb637dce8f5065586d","guid":"bfdfe7dc352907fc980b868725387e98507468f6e5f91fce5876426f46f43139"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3f8d340f68e14fb9fcf6ef41c8eb6c3","guid":"bfdfe7dc352907fc980b868725387e98cd4b59727aaa25ce7fdfacc8ccb9cf4c"},{"fileReference":"bfdfe7dc352907fc980b868725387e981644ca78278a5b49955b35f88b6dcfeb","guid":"bfdfe7dc352907fc980b868725387e9878e6ffe9abd971bfea0e5be1f299069e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98edc9f4072b8bbceaec4707dbac37a8ea","guid":"bfdfe7dc352907fc980b868725387e98e2a093a2789a822336e086e42a2b2e10"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b09d26ad82277558d063be540a3e5b60","guid":"bfdfe7dc352907fc980b868725387e989c39f44f9e220ed5db3fd94e2ce4c98d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8e540685264e057cb9d75e0c1c79163","guid":"bfdfe7dc352907fc980b868725387e9894c1c6d1aa2038e59dbbd8aa9cdca26c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c87eb9d077555670e40d3b5bcbe507e8","guid":"bfdfe7dc352907fc980b868725387e989f55d4bde620f2f1eebc38e8a94e9237"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a2601417b90a501590083916f46e0218","guid":"bfdfe7dc352907fc980b868725387e9816e29c0382e8d6a756e3add95cf6c439"},{"fileReference":"bfdfe7dc352907fc980b868725387e987bba462628800abb8615f37b29365390","guid":"bfdfe7dc352907fc980b868725387e989c961ed45805b0522625a8a16f615212"},{"fileReference":"bfdfe7dc352907fc980b868725387e98425d206dd8d41b22074784ac6e1250ac","guid":"bfdfe7dc352907fc980b868725387e985e126c0d426d75fbe1e7cd7f5eb203e2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9801f1cfb7d55f9c62028fc364b0736c6c","guid":"bfdfe7dc352907fc980b868725387e9843280d659fdef71c593b003e99e68850"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b33a5e74b73add041f41126808dc43b","guid":"bfdfe7dc352907fc980b868725387e9879641146140a072e0516d8a47a32c02a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98915889fc4d38e1ed9147a7c542be9567","guid":"bfdfe7dc352907fc980b868725387e9879bf34a0d54fb95b67898a00cf476b45"},{"fileReference":"bfdfe7dc352907fc980b868725387e98545a383e1b1274fedb4402c32bc163e3","guid":"bfdfe7dc352907fc980b868725387e98fb0761448e5cd69618d602db54b42da8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9831819901bf40fdfcd5bef8aa443f0c25","guid":"bfdfe7dc352907fc980b868725387e981d3e3fd27ad3a9224fdbbda96c25b579"},{"fileReference":"bfdfe7dc352907fc980b868725387e9870f9f1c1e019bf5665236b6456719bd5","guid":"bfdfe7dc352907fc980b868725387e9846f1219cb7de4c5c91d1169ed37b5b7f"},{"fileReference":"bfdfe7dc352907fc980b868725387e980134e7f9e756650dd166bbd602ceea2b","guid":"bfdfe7dc352907fc980b868725387e98c5de091d76f2cdd005cb08d02eada182","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca4469e11838c1bd5d6e60778f1f2174","guid":"bfdfe7dc352907fc980b868725387e98c707309b75911b98872c85814543f3af"},{"fileReference":"bfdfe7dc352907fc980b868725387e987f3f8af81ab747607c71a0d26b7ad448","guid":"bfdfe7dc352907fc980b868725387e9832cba3640bfae7353256d44a123d44dc","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989f38e75a79f8cb4e7afd867850bab854","guid":"bfdfe7dc352907fc980b868725387e98999f2c1f4cd1cc052173a606f5fa92fc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dfe670e19cebbb718ccd1ee5a8bef99b","guid":"bfdfe7dc352907fc980b868725387e98072a0134dd52c2279745925b565dbd83","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9873d23ff0a207bee60fd9380b76d31831","guid":"bfdfe7dc352907fc980b868725387e9820c3cb3e05edece1d1e534c7928c518f"},{"fileReference":"bfdfe7dc352907fc980b868725387e987a5e6f146ee22c70c36db18603d11bae","guid":"bfdfe7dc352907fc980b868725387e9849d68dea804cda7cd873b61d7f9142cc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9856462a5d6348225f533f5b1ada96d62f","guid":"bfdfe7dc352907fc980b868725387e9833ab8a092e71085279230740c59fc47e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af934f8619a5647feb2af9b1720035ce","guid":"bfdfe7dc352907fc980b868725387e982a11db4ffb8baa155ed49a34d0c9a02b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ebe2131a11528a959085ed75f70cf0aa","guid":"bfdfe7dc352907fc980b868725387e98a53a5604e7b9fe3aa328a72021d20d51"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f7cd78e8b36f8c3004bdfa687b288b09","guid":"bfdfe7dc352907fc980b868725387e988e70ed4c4117a89456e89a766044ee2d"},{"fileReference":"bfdfe7dc352907fc980b868725387e984cf6e77e3d639ae117e3267eb37c0691","guid":"bfdfe7dc352907fc980b868725387e98db2bc6c1e2807e2dd179852927b3c912"},{"fileReference":"bfdfe7dc352907fc980b868725387e984feeb14bb6d4d8139190344836a81a94","guid":"bfdfe7dc352907fc980b868725387e986bc83e96dbcd74b368d69d73b0bf612e"}],"guid":"bfdfe7dc352907fc980b868725387e98b93fb19c16e1689b89221f12bd35db86","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98156758269e84bda8ddbec9b85790052d","guid":"bfdfe7dc352907fc980b868725387e98b133ae9981807fb3dd0b5358c50ba56c"},{"fileReference":"bfdfe7dc352907fc980b868725387e985c36b44f069e0fa051f9114783e42d49","guid":"bfdfe7dc352907fc980b868725387e98e7db6591cc9e72d2c21fe09e09fd5bca"},{"fileReference":"bfdfe7dc352907fc980b868725387e98130056100a0e448e625e5dfc1950c6ae","guid":"bfdfe7dc352907fc980b868725387e98570757808b7c5c7da6beddcdca94ff13"},{"fileReference":"bfdfe7dc352907fc980b868725387e9826aae0a9d3332f0244bd7f4905f208f1","guid":"bfdfe7dc352907fc980b868725387e9865a47fe34f08fe72b7fe0ff77c21a3a2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f47d61e57bf37b0c028abdf94113103a","guid":"bfdfe7dc352907fc980b868725387e985d875af4af95fff66aad6063a572782f"},{"fileReference":"bfdfe7dc352907fc980b868725387e9848d3c6ef3d5d11fd21e2f5f2d5a1d611","guid":"bfdfe7dc352907fc980b868725387e9815ad9059b7be32fd418f8e58bd4d9017"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bde46307fe65c26621a60fbe0548796b","guid":"bfdfe7dc352907fc980b868725387e987bdfd8448ed7501b1a770526894636ec"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e10ef8e6e95bfe8be1600c323e708e3","guid":"bfdfe7dc352907fc980b868725387e986d5b0333b32bd1121eade88c347b5f94"},{"fileReference":"bfdfe7dc352907fc980b868725387e98579f035cc4c15db53298d21a36c5a219","guid":"bfdfe7dc352907fc980b868725387e9899b617361328bc84d824ce7e6ff3639b"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f0047e206f78e44da77401cf8c7ea0d","guid":"bfdfe7dc352907fc980b868725387e986003d07384196ab4597368e7c617f7f7"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d190a4ccf2bb250e57484670305fce6","guid":"bfdfe7dc352907fc980b868725387e98119f44f362c6a05fe1b61d7aa2be3e10"},{"fileReference":"bfdfe7dc352907fc980b868725387e9803ad575c123351fd875eacc38cf4307f","guid":"bfdfe7dc352907fc980b868725387e98f1e73b5009fdce2b37b61254ebb18292"},{"fileReference":"bfdfe7dc352907fc980b868725387e987277cb82f9b444aeeeb0158a6e794f76","guid":"bfdfe7dc352907fc980b868725387e9812c26366cbaaf10f37aec9e58bb9d52b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aaef023a88ecc0d4e38df6b064d61999","guid":"bfdfe7dc352907fc980b868725387e98bf7483f50df4a8ac8698eae477bb5548"},{"fileReference":"bfdfe7dc352907fc980b868725387e980a3bf703446e3e995015628ecef4be64","guid":"bfdfe7dc352907fc980b868725387e98b5926d5f3cc68db51944e84ae8186659"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cd726d3b0055706ada50cf37b7540b42","guid":"bfdfe7dc352907fc980b868725387e98280fced8caa33aa05705144a9b0d1ba9"},{"fileReference":"bfdfe7dc352907fc980b868725387e987f4e51f83c43da373be5ee263aed0f7f","guid":"bfdfe7dc352907fc980b868725387e98f4f37160ca196caaee405fd94552671c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e7e144b5e1b23dc4ae456fddd992da31","guid":"bfdfe7dc352907fc980b868725387e98d3b4905d7d2995bbef72dc3ba0afc862"},{"fileReference":"bfdfe7dc352907fc980b868725387e98366d482ad0574db6eb14c14b09e252d7","guid":"bfdfe7dc352907fc980b868725387e98ef8abe0398224bc5365b3a94118acc54"},{"fileReference":"bfdfe7dc352907fc980b868725387e987bd34e6bcede96cf729976aa631cf6bb","guid":"bfdfe7dc352907fc980b868725387e98fcbb24005aabd9c86b46af205820e4b0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d2d96ea91800a9ebf7677f7be394a813","guid":"bfdfe7dc352907fc980b868725387e98ba60f19db1a3bd5dd937e0a1065551de"},{"fileReference":"bfdfe7dc352907fc980b868725387e987c6dde8d8b91dc950dddfdf24a834b0e","guid":"bfdfe7dc352907fc980b868725387e9837b7542b647a4e1376645b627c7a316a"},{"fileReference":"bfdfe7dc352907fc980b868725387e981b9cf05597ca2e0a3b460121e11c9ba5","guid":"bfdfe7dc352907fc980b868725387e9806be052f30d838f4605b89d855476234"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e2a1c4afafbbc0b32c6114121398000a","guid":"bfdfe7dc352907fc980b868725387e98c4f8dc0ab349a45d560d8e64bd9adcda"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b2f63532d8808a14414468244121817b","guid":"bfdfe7dc352907fc980b868725387e980d05058dda9cb4d153cdd59f50583fa3"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d7418dafb854cee7758d23aa22ec400","guid":"bfdfe7dc352907fc980b868725387e980c84ac95062dda150f969c1cf47cd6d3"},{"fileReference":"bfdfe7dc352907fc980b868725387e985c14c31546d40b4850de012a54079b58","guid":"bfdfe7dc352907fc980b868725387e983fb6c27dc2cdff603b024eaa4f0e17b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5781f1c181097e3589bfef477bb86e9","guid":"bfdfe7dc352907fc980b868725387e986587e1d3cb9413a6b0d73abee317cd9d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98960d1a46de6807119b503f4399d35deb","guid":"bfdfe7dc352907fc980b868725387e988a989b34e520e9b09ef902a7b64c19d4"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a2c6c6ffa07ce0fffced4c4ea049bf6","guid":"bfdfe7dc352907fc980b868725387e984dabd66f652ba16c1ae79a656a943642"},{"fileReference":"bfdfe7dc352907fc980b868725387e983e2f4f5b46358ad0a03e25c8f03a1b8a","guid":"bfdfe7dc352907fc980b868725387e98106711be601469f6862a1e211e91c23b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819e3fe86377d88aaa4f1aac2f0fdd0b8","guid":"bfdfe7dc352907fc980b868725387e9806942cc926ef2592adc6cb1f30b941c2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e8f36a0953d5a82963e5f44d6ed2148a","guid":"bfdfe7dc352907fc980b868725387e98e3cd4c38258f2993283aad6e86a610d0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98980236523bbe1bdc446139b6daa87e22","guid":"bfdfe7dc352907fc980b868725387e98bd6b0c9c1deabaaef512291e01df9431"},{"fileReference":"bfdfe7dc352907fc980b868725387e980d3a063b3cf409d97c5fa6b783972587","guid":"bfdfe7dc352907fc980b868725387e988fa21fe41e56c9cf81e73ba0404fb856"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ab1adc0c351d4d3523fd9a819621395d","guid":"bfdfe7dc352907fc980b868725387e982bff64e185c61991017e0be2ac6d5052"},{"fileReference":"bfdfe7dc352907fc980b868725387e98898c38fbe29c393815ff46b88716b4ca","guid":"bfdfe7dc352907fc980b868725387e9825fdac1e9d62ade5b42699286da99b8e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e3c9253f644bafd504d123ac0bb40ac6","guid":"bfdfe7dc352907fc980b868725387e98770d23dcc18d34aa7107e278e15c856c"},{"fileReference":"bfdfe7dc352907fc980b868725387e982ccb747d2d5c984b2d4f05e87a5da591","guid":"bfdfe7dc352907fc980b868725387e9897b4b22a50420892ba8606bafb6e6878"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f20675fa28e80a751c9f7310b2823c1a","guid":"bfdfe7dc352907fc980b868725387e98df91711b56155a7f28c9032e0dbead00"},{"fileReference":"bfdfe7dc352907fc980b868725387e9869b24396aa321d689f742210c9fd042e","guid":"bfdfe7dc352907fc980b868725387e982a081eff2decbd3223c1f10b97291121"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d22743fb02d0285ce857b9a7e4ec53f6","guid":"bfdfe7dc352907fc980b868725387e985eb9d84b5883e994e831737cd740fdbc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d6db5e26a5adb4f79b7b80bb88e2224b","guid":"bfdfe7dc352907fc980b868725387e98f4160a5b2660f7d5d903461035d9cc3a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98de7c68f647737cf17e6cdeee07de1055","guid":"bfdfe7dc352907fc980b868725387e9830707ddaef73a2ff8ea9fd520437dde1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98508768f0a6703edd2a67d66333b9e287","guid":"bfdfe7dc352907fc980b868725387e98d3b960355dab66cd6d342bdf89c7c45f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98137a1ec23902b3774e7ac1cb597f80ec","guid":"bfdfe7dc352907fc980b868725387e986a7cdc7bfcee91b713b7498788022494"},{"fileReference":"bfdfe7dc352907fc980b868725387e98676b887eb000322556e8064934d72c16","guid":"bfdfe7dc352907fc980b868725387e984a3f98d3adfd8559c7eaa1d1c600c885"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f011a68ddf3834fca52e96bf0bb102f1","guid":"bfdfe7dc352907fc980b868725387e982eeda7a948294ff9c19667bc330ca85a"},{"fileReference":"bfdfe7dc352907fc980b868725387e988f91b9b4140f31d48fd0fb9ebdce9788","guid":"bfdfe7dc352907fc980b868725387e984bb83723b2e357f4cdb5e87b7adf6330"},{"fileReference":"bfdfe7dc352907fc980b868725387e9887ad48707335d8f99008d0c028240f45","guid":"bfdfe7dc352907fc980b868725387e9892bda6ab721e08b05f2fe535db8ad01d"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c83fc90682ce1d8915cc0be45b34bcf","guid":"bfdfe7dc352907fc980b868725387e982007f5db5e8d005623cb266963122025"}],"guid":"bfdfe7dc352907fc980b868725387e98866ba5e8990bd2c79525e44a0e3297fe","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98b4879932301283bc6f2bbf49630c0dbf"},{"fileReference":"bfdfe7dc352907fc980b868725387e9835ca341e0b23bb4a61c649cefb2052db","guid":"bfdfe7dc352907fc980b868725387e9864304831be858c958663cac0aeb1d7b9"}],"guid":"bfdfe7dc352907fc980b868725387e9861314ead88a1e6c56696fa723b2ae2fb","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98f5625a96ebf7374797766ebec0a9f3ed","targetReference":"bfdfe7dc352907fc980b868725387e98a41cd94e79391f4e82bc37c6a3c14041"}],"guid":"bfdfe7dc352907fc980b868725387e98c77eb6427f1731f5c2e57ae665def353","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e984d1b80eb520d7ec9828b3cb4e14dcb65","name":"FirebaseABTesting"},{"guid":"bfdfe7dc352907fc980b868725387e98a408a4c1f668e62161cdeba76f57d50c","name":"FirebaseCore"},{"guid":"bfdfe7dc352907fc980b868725387e98a41cd94e79391f4e82bc37c6a3c14041","name":"FirebaseInAppMessaging-InAppMessagingDisplayResources"},{"guid":"bfdfe7dc352907fc980b868725387e98566ec9a1d71c4629f4f85ecb735ce614","name":"FirebaseInstallations"},{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"},{"guid":"bfdfe7dc352907fc980b868725387e980062393f91a1d2d94e3e5ed3a5aa5da9","name":"nanopb"}],"guid":"bfdfe7dc352907fc980b868725387e98199a81f5741b3962673be6786c5317da","name":"FirebaseInAppMessaging","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9839b671e07811bd3fc4fa7a09a803b11e","name":"FirebaseInAppMessaging.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0cd4c06300c0839e9bd70aa2b2d14d1c-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0cd4c06300c0839e9bd70aa2b2d14d1c-json new file mode 100644 index 0000000..e94a5de --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=0cd4c06300c0839e9bd70aa2b2d14d1c-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98edf33bbee7e91972546501d8a5ea8819","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/geocoding_ios/geocoding_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/geocoding_ios/geocoding_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/geocoding_ios/geocoding_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"geocoding_ios","PRODUCT_NAME":"geocoding_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bc142f0a65fca39cc4b3e7d75e44b470","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980012aacba8110850068ae9e1d5ec2b1f","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/geocoding_ios/geocoding_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/geocoding_ios/geocoding_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/geocoding_ios/geocoding_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"geocoding_ios","PRODUCT_NAME":"geocoding_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9824634b8469700fc6f8070b6799b55c1f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980012aacba8110850068ae9e1d5ec2b1f","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/geocoding_ios/geocoding_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/geocoding_ios/geocoding_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/geocoding_ios/geocoding_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"geocoding_ios","PRODUCT_NAME":"geocoding_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98cf057f303c0be07c9360c1fae8d141d6","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e8dc899b44c618d7ee91c6138549d36d","guid":"bfdfe7dc352907fc980b868725387e98977e08269b14d98e8fa08ba18838049e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876436220574d6b28081bd02f14ad7db9","guid":"bfdfe7dc352907fc980b868725387e9811c420bc21e22fe708b02d073cf4fa71","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987dfb61622c6379e5e3414eec8ac940fd","guid":"bfdfe7dc352907fc980b868725387e9897c0b3218f4ace2c4e02a4a433fe2717","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983a3382442cdf5da545627149ee3cf300","guid":"bfdfe7dc352907fc980b868725387e98bd7f96e41ed43412d25cf64bb7367e04","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9881129e8481f96400210baffdd8d22a3a","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98250c62023b9a5bf4616fafde9dfa51fa","guid":"bfdfe7dc352907fc980b868725387e988d3aa336dd4749a9fb2d70cd4450d5d8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98db8bc0b08a220e285e9062da25145a94","guid":"bfdfe7dc352907fc980b868725387e9891283e5187d1f6d18557f0bbdc33c0c1"},{"fileReference":"bfdfe7dc352907fc980b868725387e986752d2fa73b1704aaa89a4ddef4502ec","guid":"bfdfe7dc352907fc980b868725387e989d8c20cda472e9062b1d9264292b75fa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf51765272905a51d9410030708075a7","guid":"bfdfe7dc352907fc980b868725387e98bd9b913af8e8596051d2747cbd347c37"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822353b269498ef546ebf9cc9ed2fb2b2","guid":"bfdfe7dc352907fc980b868725387e98759bb8e6bb5551b15fb689cc46f534ea"}],"guid":"bfdfe7dc352907fc980b868725387e981140908c90b65286e7764e07efbbe649","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e9847eccb38e5ed7fdc4d45a112fe45b942"}],"guid":"bfdfe7dc352907fc980b868725387e988319dbf151d1a533c1899f4ee6851121","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9840710e0982811985a5c9c81d3160fe56","targetReference":"bfdfe7dc352907fc980b868725387e98d5899e95a3b5ed550c0122700183cb38"}],"guid":"bfdfe7dc352907fc980b868725387e983fd01b5e2b4c6699d180286ca2073f37","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98d5899e95a3b5ed550c0122700183cb38","name":"geocoding_ios-geocoding_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98a9264f727d973888bb984bf45da252f2","name":"geocoding_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9810d6dfac611f45f1a759d63157f58714","name":"geocoding_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=121e2137e0bc5b16dd5b5a5f61286806-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=121e2137e0bc5b16dd5b5a5f61286806-json new file mode 100644 index 0000000..7a33cd2 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=121e2137e0bc5b16dd5b5a5f61286806-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9818551ce907735f179c36bd422f38ef80","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/webview_flutter_wkwebview","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"webview_flutter_wkwebview","INFOPLIST_FILE":"Target Support Files/webview_flutter_wkwebview/ResourceBundle-webview_flutter_wkwebview_privacy-webview_flutter_wkwebview-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"webview_flutter_wkwebview_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9805141ea9f2c75aed25af127da29f61e8","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982efcb7682d14757e01b7d401e62c76f2","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/webview_flutter_wkwebview","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"webview_flutter_wkwebview","INFOPLIST_FILE":"Target Support Files/webview_flutter_wkwebview/ResourceBundle-webview_flutter_wkwebview_privacy-webview_flutter_wkwebview-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"webview_flutter_wkwebview_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e989a545f4bef8257b3cc3443253be8eb15","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982efcb7682d14757e01b7d401e62c76f2","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/webview_flutter_wkwebview","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"webview_flutter_wkwebview","INFOPLIST_FILE":"Target Support Files/webview_flutter_wkwebview/ResourceBundle-webview_flutter_wkwebview_privacy-webview_flutter_wkwebview-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"webview_flutter_wkwebview_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98b9f27a9c04199e798c161dfd873a613c","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9889808648dbf2049ed6e2a85b281b3c02","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e988c4fc2c462a71db6272c820b2cd093a1","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e988a1c3224c5e4e4f308dacd99046199cf","guid":"bfdfe7dc352907fc980b868725387e9826d13a7a531ad06dab78bd94dab1fc16"}],"guid":"bfdfe7dc352907fc980b868725387e98de3f200edb398aca176dc75f67569736","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e987c93e943aa0a38b5f6684beaf6b4a3a1","name":"webview_flutter_wkwebview-webview_flutter_wkwebview_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98a0c2ea56ea4c64a4495566659e5fdb93","name":"webview_flutter_wkwebview_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=1b0f2be2e3d0cf6624ca6c750ccbfcdf-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=1b0f2be2e3d0cf6624ca6c750ccbfcdf-json new file mode 100644 index 0000000..61c09e5 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=1b0f2be2e3d0cf6624ca6c750ccbfcdf-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985909e69ab9e3a8c49b07a8c61497c403","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sms_autofill/sms_autofill-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sms_autofill/sms_autofill-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sms_autofill/sms_autofill.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sms_autofill","PRODUCT_NAME":"sms_autofill","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9822fcdab986e9a9eb694df462d14493ba","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981e1cbd314acbce117b8860ba0b470dd7","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sms_autofill/sms_autofill-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sms_autofill/sms_autofill-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sms_autofill/sms_autofill.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sms_autofill","PRODUCT_NAME":"sms_autofill","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984a9c073f1815883157c611344f559bea","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e981e1cbd314acbce117b8860ba0b470dd7","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sms_autofill/sms_autofill-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sms_autofill/sms_autofill-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sms_autofill/sms_autofill.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sms_autofill","PRODUCT_NAME":"sms_autofill","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9853fc032b4b8e6e52f67fc6dc61b0bf04","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98ae25f8a4db014545f1d678663a61c779","guid":"bfdfe7dc352907fc980b868725387e98d91bd09cf16f3ea655758abbaf684f61","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98720adfa9709a8da1cb901e7db147add6","guid":"bfdfe7dc352907fc980b868725387e9887abd26967219abd76eb00927c88d73d","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98274c815632ac2cfbf9f6a59d2c8291e2","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e981df73942939f9cbae3b1ebd371fb59f8","guid":"bfdfe7dc352907fc980b868725387e986b521e765777f4f2ae0e2ddb9b5956dd"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e516b0c0695efc9d52cbbca8410bb86","guid":"bfdfe7dc352907fc980b868725387e98f216411372ba143c70194c5c121f58de"}],"guid":"bfdfe7dc352907fc980b868725387e98412b66342ef133e364839b094ecefe63","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98f0c141d791f88520fddef2c9977e3d8f"}],"guid":"bfdfe7dc352907fc980b868725387e98b975bbf416266c1efd2f0b14ab5a3dee","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d7bd9db137e9e64a9b205a2d97963a5a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e98e12182d29f945a15cf9d2a115b919169","name":"sms_autofill","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98968d09631a3fa5c7638f7aab8037022c","name":"sms_autofill.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=251aa3a9f2177b4df9676e067ed399a2-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=251aa3a9f2177b4df9676e067ed399a2-json new file mode 100644 index 0000000..a5e995e --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=251aa3a9f2177b4df9676e067ed399a2-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985212b94297d3e57a502788a203806e5d","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseABTesting/FirebaseABTesting.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FirebaseABTesting","PRODUCT_NAME":"FirebaseABTesting","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984f1b76f29d7ec4d8040ca10a4763e420","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ad7b68664812150513910dbbf7fb5b1f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseABTesting/FirebaseABTesting.modulemap","PRODUCT_MODULE_NAME":"FirebaseABTesting","PRODUCT_NAME":"FirebaseABTesting","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e985debb13c76cd0bd9b491fe3d1e980d87","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ad7b68664812150513910dbbf7fb5b1f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseABTesting/FirebaseABTesting-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseABTesting/FirebaseABTesting.modulemap","PRODUCT_MODULE_NAME":"FirebaseABTesting","PRODUCT_NAME":"FirebaseABTesting","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9857278160ceed2e7deb47cbc3dbff6e79","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9881f9a9f8bd504f1919c17f68ee07db0d","guid":"bfdfe7dc352907fc980b868725387e983a247a014abb8c43c79c0316ccb8e591"},{"fileReference":"bfdfe7dc352907fc980b868725387e987b095b88c54cbc4ab107c08f5cf62bc2","guid":"bfdfe7dc352907fc980b868725387e989f8291b08515b6b226dd61394b138950"},{"fileReference":"bfdfe7dc352907fc980b868725387e98973fc030b8647cb75cb59b0263b65405","guid":"bfdfe7dc352907fc980b868725387e98b80715a460f08806164b96de6bec4a31"},{"fileReference":"bfdfe7dc352907fc980b868725387e9809286933e32609121f18dbe62fe0ce0c","guid":"bfdfe7dc352907fc980b868725387e98d8ac38829cc38365323dfffc7c118b64"},{"fileReference":"bfdfe7dc352907fc980b868725387e98df22db8306542f401c7f462244bb6132","guid":"bfdfe7dc352907fc980b868725387e985e047bdfbd784f717bbfac575f1b7b01"},{"fileReference":"bfdfe7dc352907fc980b868725387e9866101da7e1c4fe90f6575877ad5e61f6","guid":"bfdfe7dc352907fc980b868725387e9839d3382e656dfb0be2743e3081ffdf65"},{"fileReference":"bfdfe7dc352907fc980b868725387e9833e23b28b666458a06a8417b3e10d3cb","guid":"bfdfe7dc352907fc980b868725387e98ffcaa688516783691037e2fcc70070c2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9848c5bc121055a3fceeedfe1ea0c69db3","guid":"bfdfe7dc352907fc980b868725387e989cf576c340f99c28c50ff251c9392735"},{"fileReference":"bfdfe7dc352907fc980b868725387e982f2dc9b916895d992ea9f1271431dbfc","guid":"bfdfe7dc352907fc980b868725387e984931c9ea8ad28fea47046fe617a02036"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c5e966c2eb42cb5365379a7ef50b312","guid":"bfdfe7dc352907fc980b868725387e985ac4efb747d492cbb537427949f51623","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bbc6edb90570c5d91ca22be5d03cdc85","guid":"bfdfe7dc352907fc980b868725387e98969aeaf8b373c9a824e44d0df851ee42","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f3a7593e45c4796a015c0eeafac186b8","guid":"bfdfe7dc352907fc980b868725387e98ff7f0a87d5e81e4adc5185177ea1663a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dd26c655552d2c76961464bdc7ac23e7","guid":"bfdfe7dc352907fc980b868725387e989d678cf8f5ebb6253e0f6732547c3f33"},{"fileReference":"bfdfe7dc352907fc980b868725387e988dbe7cd57c2b6c796316eb4ba93f3a7b","guid":"bfdfe7dc352907fc980b868725387e980f39440e9e033d9843725729f76bdbe3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9f1a9f30f23ac0ae46fe7379549b976","guid":"bfdfe7dc352907fc980b868725387e981a41fe387c70d3f0a9f1fcdea9c9eb9a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9813fd0d3f98ed44cf164976df3a152700","guid":"bfdfe7dc352907fc980b868725387e98565536a9a7e7dfc717d9c0cfefa52194"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4e409e4eeaa3f894bed5c58dac40d85","guid":"bfdfe7dc352907fc980b868725387e982075b2e9f7a26ba83d53bf024efa7437"},{"fileReference":"bfdfe7dc352907fc980b868725387e9810bfe50890dfc60bffe427b4df9e9ad5","guid":"bfdfe7dc352907fc980b868725387e9849ed4009044c562f753dd05a69f7b112"},{"fileReference":"bfdfe7dc352907fc980b868725387e984e7cb2abba58415b080b37c871cdfe2b","guid":"bfdfe7dc352907fc980b868725387e98ee5074c8b7730db0cd4366bd0f65da34","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98084ec61021bef6a9a66619b9132eb9c5","guid":"bfdfe7dc352907fc980b868725387e9878b9bab23061c2c5da32c445f0f5a4f8"}],"guid":"bfdfe7dc352907fc980b868725387e985f78f21c6580d8327248665b1af777ab","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9849eb009a1b4b73e0c571faa48d43ea79","guid":"bfdfe7dc352907fc980b868725387e98c2a53a959da027de55f4877c89e7720b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98742172dc34c1ab8ebb877fed2ab698c0","guid":"bfdfe7dc352907fc980b868725387e988cc35e2af862828e8855bbe44192e86a"},{"fileReference":"bfdfe7dc352907fc980b868725387e980145e188526670249375f7cc18713f77","guid":"bfdfe7dc352907fc980b868725387e98636e174c03d829ed83beed4d20c8be87"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb00d9abca9c0d2f9442f34f4a72773e","guid":"bfdfe7dc352907fc980b868725387e98477e6ceea1012ed9d6f8301f056a6ee2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d446f9eb2ae6a6e892f95326b5d554b1","guid":"bfdfe7dc352907fc980b868725387e9884106cb81782a20b490b68ecf8805b13"}],"guid":"bfdfe7dc352907fc980b868725387e98af31586ef0eebc54444b7ef0e4a7c73c","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e9846211604cd1a4b97a4bf56befa517997"}],"guid":"bfdfe7dc352907fc980b868725387e9842ba38efc4aed9bb994480a944fd0cd5","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9800537e30a44ade782bfcd9cfd69c1e96","targetReference":"bfdfe7dc352907fc980b868725387e98b9cce05bc25808e2e3952904a4034443"}],"guid":"bfdfe7dc352907fc980b868725387e980992663eee0a5b0eb03b766d4558e18e","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98b9cce05bc25808e2e3952904a4034443","name":"FirebaseABTesting-FirebaseABTesting_Privacy"},{"guid":"bfdfe7dc352907fc980b868725387e98a408a4c1f668e62161cdeba76f57d50c","name":"FirebaseCore"}],"guid":"bfdfe7dc352907fc980b868725387e984d1b80eb520d7ec9828b3cb4e14dcb65","name":"FirebaseABTesting","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98388ecc0b6beee3823c42c78ba6025714","name":"FirebaseABTesting.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2c1bdf12b2725e2baade8a6703513dc0-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2c1bdf12b2725e2baade8a6703513dc0-json new file mode 100644 index 0000000..abe4864 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2c1bdf12b2725e2baade8a6703513dc0-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98b7c5e6270376617ea414cbd519967f5a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FirebaseCoreInternal","PRODUCT_NAME":"FirebaseCoreInternal","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9896d7896dfb101e157c2eb4d51aa1f505","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ccbb44338e340d03ced12fe388221f2f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal.modulemap","PRODUCT_MODULE_NAME":"FirebaseCoreInternal","PRODUCT_NAME":"FirebaseCoreInternal","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a1c133892919a16e03ee1726222d56c8","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ccbb44338e340d03ced12fe388221f2f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseCoreInternal/FirebaseCoreInternal.modulemap","PRODUCT_MODULE_NAME":"FirebaseCoreInternal","PRODUCT_NAME":"FirebaseCoreInternal","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a017044fd7f651d7ff49d914a531b3bc","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983f3ed8145b5899004381af2f1e6c8178","guid":"bfdfe7dc352907fc980b868725387e9879bec811d60ee2af249be29d2a31cbff","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98274670f23bce929e08eec6e452718f7a","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9816366655a13826a6ff3488f855e6b839","guid":"bfdfe7dc352907fc980b868725387e98a3333546b11b0826ddeea6dd8a47f58a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d7c28fa32240eb9e2ec46695a837222c","guid":"bfdfe7dc352907fc980b868725387e982fa25ddfa10ab1199b300b4c38c85381"},{"fileReference":"bfdfe7dc352907fc980b868725387e987024785baa93d123c1c2a23a1b2dd379","guid":"bfdfe7dc352907fc980b868725387e98becdb456651eba170b4e4d5eceac074c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806fe2914650e06e01e7ddd3e11dc8f0d","guid":"bfdfe7dc352907fc980b868725387e9806dd6dad5155d7ef692ad1f58623cd25"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ed94e328af74be91988a62702d04ed06","guid":"bfdfe7dc352907fc980b868725387e98cb05330b0b3848da5ba61237d19850c6"},{"fileReference":"bfdfe7dc352907fc980b868725387e989d7c5286bbee5121be97ddcf2d579ac5","guid":"bfdfe7dc352907fc980b868725387e98f10869d18841073a47d14d58332e8678"},{"fileReference":"bfdfe7dc352907fc980b868725387e9872b77bb417b11d55180f25a7189d6799","guid":"bfdfe7dc352907fc980b868725387e982b10454c5d4e94b66e5ca366a362fdea"},{"fileReference":"bfdfe7dc352907fc980b868725387e98be4af9e68843be2c2b03de379e990b9f","guid":"bfdfe7dc352907fc980b868725387e98cd89cc9a9a89d821fc100e8fb3f64a8a"},{"fileReference":"bfdfe7dc352907fc980b868725387e985bed9707abaeab26777579f8e6664dce","guid":"bfdfe7dc352907fc980b868725387e98eb434039add33bed4516b93cddeee32c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c17942208900c076f30adb0b8ba12324","guid":"bfdfe7dc352907fc980b868725387e981979904e5f2bdd5de65d7accd81dc9cd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a51bb84b63c93ae336147c78012b0b3b","guid":"bfdfe7dc352907fc980b868725387e988450d25c4208c9fec3d9fa6765f430ca"},{"fileReference":"bfdfe7dc352907fc980b868725387e98644b31474c22f0ff43ae47d757c4be1a","guid":"bfdfe7dc352907fc980b868725387e98199bd41711624e650f73967f162491ed"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c5fe993d95485c9f8f5fe7ef3f64ea9e","guid":"bfdfe7dc352907fc980b868725387e982814a586eb920866ac39c20945b470a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e987211ef79fb8b5331f8f422fc212de567","guid":"bfdfe7dc352907fc980b868725387e986a6d8b1ad970f38e36a6e47ae8cd9c01"},{"fileReference":"bfdfe7dc352907fc980b868725387e9864f79bc2314f1f587b1fd4db98c25870","guid":"bfdfe7dc352907fc980b868725387e98c7bd6474e9310c3c3c194124ad5b850d"}],"guid":"bfdfe7dc352907fc980b868725387e98fee62cd259ededf1b53d7b92ca995c8a","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e981d57564775a946ba5bfc373103018f46"}],"guid":"bfdfe7dc352907fc980b868725387e980624e029589665254eb967379253970c","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9830b16d394330e9a4cb255fbc4e4875cc","targetReference":"bfdfe7dc352907fc980b868725387e98e5b592b076e092ab7ac9d9b5c85edc6f"}],"guid":"bfdfe7dc352907fc980b868725387e984963362e98fe7c056cb93e0deeb92cee","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98e5b592b076e092ab7ac9d9b5c85edc6f","name":"FirebaseCoreInternal-FirebaseCoreInternal_Privacy"},{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"}],"guid":"bfdfe7dc352907fc980b868725387e98020791fd2e7b7ddc8fb2658339c42e16","name":"FirebaseCoreInternal","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e983d86e87924acfad2934921ce7ad9fbea","name":"FirebaseCoreInternal.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2db8d378a58119ee420cc366703d859e-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2db8d378a58119ee420cc366703d859e-json new file mode 100644 index 0000000..a566f6a --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2db8d378a58119ee420cc366703d859e-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98bdfa794a409e8575755a64d622769cd9","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/flutter_local_notifications","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"flutter_local_notifications","INFOPLIST_FILE":"Target Support Files/flutter_local_notifications/ResourceBundle-flutter_local_notifications_privacy-flutter_local_notifications-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"flutter_local_notifications_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98dea71ed022e993155cabb42e1d79d9bc","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9870bc7b08350d844146018ec7647687d6","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/flutter_local_notifications","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"flutter_local_notifications","INFOPLIST_FILE":"Target Support Files/flutter_local_notifications/ResourceBundle-flutter_local_notifications_privacy-flutter_local_notifications-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","PRODUCT_NAME":"flutter_local_notifications_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e983995eb42e93a96beba4550a77b803d3c","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9870bc7b08350d844146018ec7647687d6","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/flutter_local_notifications","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"flutter_local_notifications","INFOPLIST_FILE":"Target Support Files/flutter_local_notifications/ResourceBundle-flutter_local_notifications_privacy-flutter_local_notifications-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","PRODUCT_NAME":"flutter_local_notifications_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e982430da552602d488a855e8815acdf165","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98936ac56fa5043717d2c26dd628c86d1d","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989bcdcb537a86717aac6f9c7527b52035","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985631588caf089fb981872a139274889d","guid":"bfdfe7dc352907fc980b868725387e98c6d754bada7a297303107ed2bbcffa16"}],"guid":"bfdfe7dc352907fc980b868725387e98910096d1f1cc57a6d719e1defe9c5115","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e987434bc9491ab71790f372f1bf966d056","name":"flutter_local_notifications-flutter_local_notifications_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9850c87ce847b276bf243d2856d441d422","name":"flutter_local_notifications_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2ec7a085849d7c36d7460c5aec320cdb-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2ec7a085849d7c36d7460c5aec320cdb-json new file mode 100644 index 0000000..51637e7 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2ec7a085849d7c36d7460c5aec320cdb-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98de1eef506778ed27c180efd52d606d0a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/path_provider_foundation/path_provider_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"path_provider_foundation","PRODUCT_NAME":"path_provider_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ab88586633079f928287f370e8b6f07b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980033b112d6450edae8d624450ae13b80","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/path_provider_foundation/path_provider_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"path_provider_foundation","PRODUCT_NAME":"path_provider_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9880f884b2537bd891ed54ff6e3ab7d0ee","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980033b112d6450edae8d624450ae13b80","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/path_provider_foundation/path_provider_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/path_provider_foundation/path_provider_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"path_provider_foundation","PRODUCT_NAME":"path_provider_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9858b9d941e76db42d349048c14af0e16e","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983dea99fc86e43127912b1cf0adec3c85","guid":"bfdfe7dc352907fc980b868725387e98e40234757d04478dc54a213f59e845fa","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98450b40315711083d32b0ed949174ff28","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d2d5125c99243031f96f0e8449979597","guid":"bfdfe7dc352907fc980b868725387e98169e8c0def8fc9cbc5e9705d115443ce"},{"fileReference":"bfdfe7dc352907fc980b868725387e982123b786b944731f885089ffe53e4a94","guid":"bfdfe7dc352907fc980b868725387e986dfc1b5ca512f6383be32a7124385963"},{"fileReference":"bfdfe7dc352907fc980b868725387e988eeeaf10672fb26d1f661b9ddc857541","guid":"bfdfe7dc352907fc980b868725387e98852428f043c7d93455f8ba436e0dc25e"}],"guid":"bfdfe7dc352907fc980b868725387e98f5d455158bacea210fd45e1a8f3245fc","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e9829f34398048903731961241124ac546e"}],"guid":"bfdfe7dc352907fc980b868725387e987ebedde198dc993f3ca38aec4ed08768","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98234997a2811e55e2dfc23faf0b9d3093","targetReference":"bfdfe7dc352907fc980b868725387e987ea64ee8d53085bf9edd1a57aaf8cbb5"}],"guid":"bfdfe7dc352907fc980b868725387e98ac45f7d09c5ae0c1d8f7eb8e8ff004ab","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987ea64ee8d53085bf9edd1a57aaf8cbb5","name":"path_provider_foundation-path_provider_foundation_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e9830037b09fee48cfce1f8562d753688c8","name":"path_provider_foundation","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98177b75fe6f519d73b22b382cca137f1c","name":"path_provider_foundation.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2f73669acaa8eda4f6b48f7b55840369-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2f73669acaa8eda4f6b48f7b55840369-json new file mode 100644 index 0000000..4cafc35 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=2f73669acaa8eda4f6b48f7b55840369-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9892384722d5eeb82f5eee6a6d2a80e499","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"url_launcher_ios","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"url_launcher_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98b1dc75a0fd9e2ee5ff08671988057027","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9883551ceaa3441a893ddf0a29beb8cb2e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"url_launcher_ios","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"url_launcher_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98494df76467ae5ea2cbbfe78a778a82f2","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9883551ceaa3441a893ddf0a29beb8cb2e","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/url_launcher_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"url_launcher_ios","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/ResourceBundle-url_launcher_ios_privacy-url_launcher_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"url_launcher_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e989dfb3dd9b0515537f274f099c603dba8","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98622a78f0996218e77ac89cc53bf4c2df","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e982b1af8b5f08c2c43f9981bafddb0c0cd","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9849a55187f1cdb2859731df506ed5c8bd","guid":"bfdfe7dc352907fc980b868725387e980d1e8950dcc9b31de69cafe20daa3da6"}],"guid":"bfdfe7dc352907fc980b868725387e985df0394a70d82466a29c32dc794d6c89","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9891b3b8cc56823cdea4b418e009a423b2","name":"url_launcher_ios-url_launcher_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9827df8da513ac7d6928fc311b53a7155d","name":"url_launcher_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34270ceab2ee94742b43dfec0872c529-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34270ceab2ee94742b43dfec0872c529-json new file mode 100644 index 0000000..4e768d2 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=34270ceab2ee94742b43dfec0872c529-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eb9d725b7a2c82f64dfe553020ca8c12","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseInstallations","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseInstallations","INFOPLIST_FILE":"Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"FirebaseInstallations_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981fc24f144dde8bc7d8fe5c0214a1f1e3","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986216caa578cc31c3ef154bd2a922bf1d","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseInstallations","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseInstallations","INFOPLIST_FILE":"Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"FirebaseInstallations_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f68a3c374548639dbbfa708456724999","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986216caa578cc31c3ef154bd2a922bf1d","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseInstallations","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseInstallations","INFOPLIST_FILE":"Target Support Files/FirebaseInstallations/ResourceBundle-FirebaseInstallations_Privacy-FirebaseInstallations-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"FirebaseInstallations_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981e3954f8d334d067da28f9974814881e","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98b4a0e92ec6f15d284c3f8666e0685cd4","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98f4c2567e18b4f695b1d4eeb35e8e2661","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98331691f130c390965e72b63e3158e084","guid":"bfdfe7dc352907fc980b868725387e98e7da03d7fb96d14671e6c3b1a1e9b553"}],"guid":"bfdfe7dc352907fc980b868725387e9870a83613b88a9e42783b98bf0ab1527e","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e984535f130e81fa6507008242e4e8916fc","name":"FirebaseInstallations-FirebaseInstallations_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981703d6bed554c9878c28cb40b989a332","name":"FirebaseInstallations_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=3fdfa40b45cfa885ed5244c776550751-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=3fdfa40b45cfa885ed5244c776550751-json new file mode 100644 index 0000000..d85456b --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=3fdfa40b45cfa885ed5244c776550751-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9844a36a2e9274c91be13f1e320c8a8000","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","ONLY_ACTIVE_ARCH":"NO","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2"},"guid":"bfdfe7dc352907fc980b868725387e98f540c2d0f4b103dae7d33e50f1c69f35","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985f69c24ba0cc7615ef06fbd452cbd409","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e985bb9a0b607c1956e6cec2d55e32feb0b","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e985f69c24ba0cc7615ef06fbd452cbd409","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e98708ff1737e8f64763e886f9bf82504a5","name":"Release"}],"buildPhases":[],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98a408a4c1f668e62161cdeba76f57d50c","name":"FirebaseCore"},{"guid":"bfdfe7dc352907fc980b868725387e98199a81f5741b3962673be6786c5317da","name":"FirebaseInAppMessaging"}],"guid":"bfdfe7dc352907fc980b868725387e98d57b8bce60a0f11113f4cff532db68d3","name":"Firebase","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Release","provisioningStyle":0}],"type":"aggregate"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4244627913a8a943e8cfbeb1d18e3a57-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4244627913a8a943e8cfbeb1d18e3a57-json new file mode 100644 index 0000000..3621429 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4244627913a8a943e8cfbeb1d18e3a57-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9840183a5bb3a6b7e543d99018fa2efc59","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/package_info_plus/package_info_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/package_info_plus/package_info_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/package_info_plus/package_info_plus.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"package_info_plus","PRODUCT_NAME":"package_info_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9897051622773a9cd7d8fae6ba3be0988b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982d7f419eb3718b8b24c14079835fe5fa","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/package_info_plus/package_info_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/package_info_plus/package_info_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/package_info_plus/package_info_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"package_info_plus","PRODUCT_NAME":"package_info_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98937974f840ad34ce898c3a62a0a52a8d","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982d7f419eb3718b8b24c14079835fe5fa","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/package_info_plus/package_info_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/package_info_plus/package_info_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/package_info_plus/package_info_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"package_info_plus","PRODUCT_NAME":"package_info_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98f7c4cdd694f93dd8f9baf8a7be82dba5","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d75ccd733d3416d06e2f659b84a4d66a","guid":"bfdfe7dc352907fc980b868725387e987f4731fb83fa015966f7ba81907c9dbf","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98953eb2659a181e3bc1d6d697792159b6","guid":"bfdfe7dc352907fc980b868725387e984a3cde720e889627fced5106f157da46","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9882bf16bb6e470ae110c9ab32e9a6916b","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e986a52375664d64324da6ff4b081e5cea8","guid":"bfdfe7dc352907fc980b868725387e98d723e02e693621ee0fa0b2b55e92c6f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e982fffccd20b93243842d93eb6ad1b4be4","guid":"bfdfe7dc352907fc980b868725387e98807c0f13ab38bf78a255422ace44851d"}],"guid":"bfdfe7dc352907fc980b868725387e9802e6907f47df982f511318ee6421866b","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98f9972619f6373dcc7a588e3720ff6b1d"}],"guid":"bfdfe7dc352907fc980b868725387e9853f06540a2b47e2bce34c4f52b96b9b7","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98d3f2eef9a97764f5506e64926c3bef1a","targetReference":"bfdfe7dc352907fc980b868725387e987b6c2f882d164ef4f3c76673562685a1"}],"guid":"bfdfe7dc352907fc980b868725387e981ef7df0f5e6435e5f909151e5c6d893c","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987b6c2f882d164ef4f3c76673562685a1","name":"package_info_plus-package_info_plus_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98a5ae7244e41cc249cf7186dbb9962ecb","name":"package_info_plus","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98d9c4afca85b28d898f3002d0bb74c874","name":"package_info_plus.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=447826e89bbefc2ea81b8346d2f54fe9-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=447826e89bbefc2ea81b8346d2f54fe9-json new file mode 100644 index 0000000..922f521 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=447826e89bbefc2ea81b8346d2f54fe9-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98cf35ffb8bcc9bd9562b8ec9bc24330fa","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sqflite_darwin/sqflite_darwin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sqflite_darwin","PRODUCT_NAME":"sqflite_darwin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ee49f65d26d8a0c930cc03d16e0ffcc8","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98640957fca97173748eefcacc82c1afdf","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sqflite_darwin/sqflite_darwin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sqflite_darwin","PRODUCT_NAME":"sqflite_darwin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e987d3fcd01a34fff9e18dec0764bcc371e","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98640957fca97173748eefcacc82c1afdf","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/sqflite_darwin/sqflite_darwin-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/sqflite_darwin/sqflite_darwin.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"sqflite_darwin","PRODUCT_NAME":"sqflite_darwin","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984def481d54810d0de6d3335b228b2a5d","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e980c93e9cd40aae77f269cead731fce660","guid":"bfdfe7dc352907fc980b868725387e98f74bfe561cdc142d140be02f934f1dd5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cec603cf30adcf07efc2cc5f179d455b","guid":"bfdfe7dc352907fc980b868725387e9859ea82e057971f6585c23e0629da0838"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a4c03f4b4e244c38e29ad2a606a0de4f","guid":"bfdfe7dc352907fc980b868725387e982ed74ddcc2974a721c6052bc8574c94d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9cea943acc195f4da64609edaa9ab41","guid":"bfdfe7dc352907fc980b868725387e98c638ad6e49644c2dd9c7a0f69190ac5d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98131d08bc16603b1e847a8fe485583cf9","guid":"bfdfe7dc352907fc980b868725387e98d966ea1281f6a91a81f42d48d1872f50"},{"fileReference":"bfdfe7dc352907fc980b868725387e987da31d3d4d21a4ee35a7c15061e2504d","guid":"bfdfe7dc352907fc980b868725387e986e155438834541a7d76d246cd5abdb00"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fc7330e346846c624bff75a3c1da253e","guid":"bfdfe7dc352907fc980b868725387e9859c8275833f4ee49e4714bc41eb1e659"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f9a197e5098eda4a32b968654d7ec958","guid":"bfdfe7dc352907fc980b868725387e986b22609462b4233239cb7c9a221e9e63"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b232e6773f709b0bfbc499a96fccc29e","guid":"bfdfe7dc352907fc980b868725387e98c48ebc9a3cd1735759e6cca592d5450f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98801c658791c1234b2c1241fbcae02c0a","guid":"bfdfe7dc352907fc980b868725387e98a912ebdcf80fb2f93a853de17a1952b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d800b4a42a135cb9ac31446084e8dc7","guid":"bfdfe7dc352907fc980b868725387e988ec4eb1a4c541cfb9b0fcccf8237bb60","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a4cac941d1d74ef14aac446e833c29b","guid":"bfdfe7dc352907fc980b868725387e98791e86ec84756c86fb0d15b2a4261be4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4d0c73566e18d38593ca6d6d00aeb16","guid":"bfdfe7dc352907fc980b868725387e9825b761453dc0eac71f4c7fbe6ffcc40c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9817f7f0e30479586c0ba01a06976e318f","guid":"bfdfe7dc352907fc980b868725387e9861983e92c953cfba9b9330cdcf4afe8a","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98cc465b98567e5be1dff8b7284a07e4e3","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e989711cbfedea03dd36c7c939018f37c70","guid":"bfdfe7dc352907fc980b868725387e985adaa6c4e40f33315ac0cec984200988"},{"fileReference":"bfdfe7dc352907fc980b868725387e9892426ca978f6207363086df477afbbde","guid":"bfdfe7dc352907fc980b868725387e98bf1790982bc04eac3e06ab5e371d6c93"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ffbf35012a83fc2afb8ddad368158573","guid":"bfdfe7dc352907fc980b868725387e980f2403feed669c952284c16e88f58518"},{"fileReference":"bfdfe7dc352907fc980b868725387e9834d6696b98b6c00834ad9f36ab23c33d","guid":"bfdfe7dc352907fc980b868725387e989fc437bcb8a2d2a1cfdb869b4460a604"},{"fileReference":"bfdfe7dc352907fc980b868725387e980c0370b2f6d9767791c00adf4cd9da10","guid":"bfdfe7dc352907fc980b868725387e986ba7fe2f9be0bd4e78fcda7dc7b10343"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e0ac3a59c791ee8fcb514aff747b080c","guid":"bfdfe7dc352907fc980b868725387e987e844dde1a707645fa1443b4dc8f58b5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98590b2357ba5b8f29b72019b3e1505bd7","guid":"bfdfe7dc352907fc980b868725387e98676284d6c751f8e5e484c13d47108fe3"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a4128a7141238b90f2931c0299f6ecad","guid":"bfdfe7dc352907fc980b868725387e98d9f653069110e6ef3ecc4d8d36c0e68d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9850460bc0092527e91dd8bd8527d7a8fe","guid":"bfdfe7dc352907fc980b868725387e981d72a7e98d2a7d77e3c80c26f55e16de"}],"guid":"bfdfe7dc352907fc980b868725387e9837c2f0a37c50e959478519168227e455","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e982f461d51c284a55b8f869fc9092ae5dc"}],"guid":"bfdfe7dc352907fc980b868725387e98dd47f73652ff7b522b7942f6a87afd23","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98d17544c34b81de618417de5f9c91b4ec","targetReference":"bfdfe7dc352907fc980b868725387e9883134bb5f399cb37a1eb075d4fea30d8"}],"guid":"bfdfe7dc352907fc980b868725387e98e60a652c76bfee084293e97b00176921","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e9883134bb5f399cb37a1eb075d4fea30d8","name":"sqflite_darwin-sqflite_darwin_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e981304d3d2169071b3ca365b19f5340b7c","name":"sqflite_darwin","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98dbbec3eebed26c79cc653713be723aba","name":"sqflite_darwin.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=44d169aa2379312db2ff4b3c9faa2364-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=44d169aa2379312db2ff4b3c9faa2364-json new file mode 100644 index 0000000..ee313d7 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=44d169aa2379312db2ff4b3c9faa2364-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f8f026c85d3139a8d41de8937c69684d","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/location/location-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/location/location-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/location/location.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"location","PRODUCT_NAME":"location","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98b8917900762b374aad9fda9c651fd77b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eb3929f763f883db16dafed5b59b1955","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/location/location-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/location/location-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/location/location.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"location","PRODUCT_NAME":"location","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98db4241f7f680d5543dbcd722a2b3ebc5","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eb3929f763f883db16dafed5b59b1955","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/location/location-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/location/location-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/location/location.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"location","PRODUCT_NAME":"location","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9806a90a8b1c91eb5c14094fea2f17535c","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983b8c29a26df986e68f71012cec4f20fe","guid":"bfdfe7dc352907fc980b868725387e98095e869377268fce59d1ed10e5f314a1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819617d51f3fcb6d97489bed9e4d120d6","guid":"bfdfe7dc352907fc980b868725387e9894145d6a919ccfeef535d4faa9f0c40e","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e980e9595255b3385f46007db0b8b71a712","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98512badf6be63bbac4469b2b9109881b4","guid":"bfdfe7dc352907fc980b868725387e98112a16e0f20fc7e48946a202e7156ab9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98932a333c1e828e2adffb40da3a704879","guid":"bfdfe7dc352907fc980b868725387e98e89ed6e7b9d67d39a5f0e9f63d3a47ef"}],"guid":"bfdfe7dc352907fc980b868725387e9857d09d12497aa431203e7d2e1ce4763c","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98233f9f40fd100707bd3c58f1f0db6db1"}],"guid":"bfdfe7dc352907fc980b868725387e989d3c5f07aacb980be3ae367d51a76143","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9826d5064c260b8546241ac81d3a83de60","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e989152bf3b88a1e7242d5cb4c469a589c6","name":"location","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9867c1dcf38cd04bd75dfbc214dc556295","name":"location.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=49e544e05a091d10652d3c6b73c28708-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=49e544e05a091d10652d3c6b73c28708-json new file mode 100644 index 0000000..628c53c --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=49e544e05a091d10652d3c6b73c28708-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e2453c6b1c942f8b1248825b856a67df","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/image_picker_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"image_picker_ios","INFOPLIST_FILE":"Target Support Files/image_picker_ios/ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"image_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98e836ea3b75a6c12b8dee91af3c212390","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98832082a829299906f5bc876ee63fb3eb","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/image_picker_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"image_picker_ios","INFOPLIST_FILE":"Target Support Files/image_picker_ios/ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"image_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e984bae0b78a9ec17ce6ce8ee080d46daae","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98832082a829299906f5bc876ee63fb3eb","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/image_picker_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"image_picker_ios","INFOPLIST_FILE":"Target Support Files/image_picker_ios/ResourceBundle-image_picker_ios_privacy-image_picker_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"image_picker_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e989b5f36ee52785b46633fcb738bf9a455","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98f85f72a0947772d66a52e6674b48418a","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d5f1744e32b421a2973ab00ab01cd612","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9831c6eb038ecc641b5df96b1e375bccf4","guid":"bfdfe7dc352907fc980b868725387e98a39c79015978aab04ead7bf58e9a0199"}],"guid":"bfdfe7dc352907fc980b868725387e984a1e17323752f86e8043a6f0f3874bc9","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98082dc85da1fc941e5234c7cc1f11b27d","name":"image_picker_ios-image_picker_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98cba567c8a049008de84f093e54e3191c","name":"image_picker_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4b4c162da4c9cd039f5c0abeb394ca77-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4b4c162da4c9cd039f5c0abeb394ca77-json new file mode 100644 index 0000000..0ec3490 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4b4c162da4c9cd039f5c0abeb394ca77-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987564ada9b3c747132b7cc328c7354080","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/connectivity_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"connectivity_plus","INFOPLIST_FILE":"Target Support Files/connectivity_plus/ResourceBundle-connectivity_plus_privacy-connectivity_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"connectivity_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981393b2376526de4c38a2bfa9ab87b130","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c497507cd3183e768a71b5fcf97576db","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/connectivity_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"connectivity_plus","INFOPLIST_FILE":"Target Support Files/connectivity_plus/ResourceBundle-connectivity_plus_privacy-connectivity_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"connectivity_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e983c82e2b886f2775c91a5b80d4a2a4b74","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c497507cd3183e768a71b5fcf97576db","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/connectivity_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"connectivity_plus","INFOPLIST_FILE":"Target Support Files/connectivity_plus/ResourceBundle-connectivity_plus_privacy-connectivity_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"connectivity_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e980554e2f083fa08ed19c88130a19612c9","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9886055f26663781af2ba419b2969c6935","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9833dd89940c226b249fe54308ac525505","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98356935c986018bb3098689ec7a3a26ad","guid":"bfdfe7dc352907fc980b868725387e98e9fbc035d2076470fc3d9f15434d04d4"}],"guid":"bfdfe7dc352907fc980b868725387e98bc1b57450c3154246fcc0e56f15dfd7b","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9831ced05e49f553f4d1bb4a7cc8ab09f7","name":"connectivity_plus-connectivity_plus_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98883ac788d30417c21a28a2a7f2ab79e8","name":"connectivity_plus_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4eaee209067cc3e5f9b877bc619a0d04-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4eaee209067cc3e5f9b877bc619a0d04-json new file mode 100644 index 0000000..3d0371a --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=4eaee209067cc3e5f9b877bc619a0d04-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986f7700d8a4cbe4b8940d5ca6f0476aa3","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/rive_native/rive_native-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/rive_native/rive_native-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/rive_native/rive_native.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"rive_native","PRODUCT_NAME":"rive_native","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e987747a197ab883f6d4249fbfc4f102f0f","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dcb5c75ff82170465cc341071011a839","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/rive_native/rive_native-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/rive_native/rive_native-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/rive_native/rive_native.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"rive_native","PRODUCT_NAME":"rive_native","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ed9cc58572aa5871f19ba8bfb440fa59","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dcb5c75ff82170465cc341071011a839","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/rive_native/rive_native-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/rive_native/rive_native-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/rive_native/rive_native.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"rive_native","PRODUCT_NAME":"rive_native","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98567d86b5f759d6b807f2c69e6e4fe72b","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983bd0a8190203d1077a764884ae1ac030","guid":"bfdfe7dc352907fc980b868725387e9846c4afad281ba6be9c05e75e24b56e16","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9825da8a5241970eedd353a61b4b1f2694","guid":"bfdfe7dc352907fc980b868725387e980a329ef2020cbb3112400307628ef117","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e983cea891929a7ec249fd188225a451058","type":"com.apple.buildphase.headers"},{"alwaysOutOfDate":"false","alwaysRunForInstallHdrs":"false","buildFiles":[],"emitEnvironment":"true","guid":"bfdfe7dc352907fc980b868725387e9865f195049a337b4755f7ce9b8b5d9078","inputFileListPaths":[],"inputFilePaths":[],"name":"[CP-User] Rive Native Compile","originalObjectID":"70FCAEB13674C2E87BD8A13A837498C4","outputFileListPaths":[],"outputFilePaths":["${PODS_TARGET_SRCROOT}/rive_marker_ios_setup_complete"],"sandboxingOverride":"basedOnBuildSetting","scriptContents":" #!/bin/sh\n set -e\n \n MARKER=\"${PODS_TARGET_SRCROOT}/rive_marker_ios_setup_complete\"\n DEV_MARKER=\"${PODS_TARGET_SRCROOT}/rive_marker_ios_development\"\n\n if [ -f \"$MARKER\" ] || [ -f \"$DEV_MARKER\" ]; then\n echo \"[rive_native] Setup already complete. Skipping.\"\n else\n echo \"[rive_native] Setup marker not found. Running setup script...\"\n echo \"[rive_native] If this fails, make sure you have Dart installed and available in your PATH.\"\n echo \"[rive_native] You can run the setup manually with:\"\n echo \" dart run rive_native:setup --verbose --platform ios\"\n\n # Try to read FLUTTER_ROOT from Generated.xcconfig\n GENERATED_XCCONFIG=\"${SRCROOT}/../Flutter/Generated.xcconfig\"\n if [ -f \"$GENERATED_XCCONFIG\" ]; then\n FLUTTER_ROOT=$(grep FLUTTER_ROOT \"$GENERATED_XCCONFIG\" | cut -d '=' -f2 | tr -d '[:space:]')\n fi\n\n if [ -n \"$FLUTTER_ROOT\" ] && [ -x \"$FLUTTER_ROOT/bin/dart\" ]; then\n echo \"[rive_native] Using dart from FLUTTER_ROOT: $FLUTTER_ROOT\"\n \"$FLUTTER_ROOT/bin/dart\" run rive_native:setup --verbose --platform ios\n else\n echo \"[rive_native] FLUTTER_ROOT not set or dart not found in FLUTTER_ROOT. Using system dart...\"\n dart run rive_native:setup --verbose --platform ios\n fi\n fi\n","shellPath":"/bin/sh","type":"com.apple.buildphase.shell-script"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d6400716f2ebdd9b24e07c30a4808f9f","guid":"bfdfe7dc352907fc980b868725387e987dc774605119ed4bb49ef6b50e94fb93"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f936a0d29d85992b5e0ece32ef4c08ba","guid":"bfdfe7dc352907fc980b868725387e9816666e8e44168d4a22537f205cf8dfef"}],"guid":"bfdfe7dc352907fc980b868725387e983c0824d0396c06600f8f5ee1837e0d36","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e989e090a3d01310b6d84002cff2cccd6bf","guid":"bfdfe7dc352907fc980b868725387e98f404f7b7f5337cbf72101bbef89ebb5d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d1813f7e5de36e03286781275d7557ea","guid":"bfdfe7dc352907fc980b868725387e9869ef62a5fce83a2ac74a519997eb6808"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98c1515cf4ea43af5e429bbf6bee8ac9d0"}],"guid":"bfdfe7dc352907fc980b868725387e98ca43e1683b7cd192c396716301f95262","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98ec0b8bd69ae9450b6c115d0268a77edc","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e986f2ea8130593aae06b228898a6c3087d","name":"rive_native","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98cff16ed121119ab0ac23d566c93026e3","name":"rive_native.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5007876e86206d721739f4dd64c2bb53-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5007876e86206d721739f4dd64c2bb53-json new file mode 100644 index 0000000..f8c79d3 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5007876e86206d721739f4dd64c2bb53-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98384faf6833a8ff5c4a6994aec5d64a32","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PromisesObjC","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FBLPromises","INFOPLIST_FILE":"Target Support Files/PromisesObjC/ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"FBLPromises_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9886ce98639583653ecdc8aab78c61f575","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dd17c7a49baf3905e7f403f18531effa","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PromisesObjC","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FBLPromises","INFOPLIST_FILE":"Target Support Files/PromisesObjC/ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"FBLPromises_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e986bb03498ac17f23c9e6b934d02ad858f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dd17c7a49baf3905e7f403f18531effa","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/PromisesObjC","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FBLPromises","INFOPLIST_FILE":"Target Support Files/PromisesObjC/ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"FBLPromises_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9804c994ad93e3a0ae3e6907ac029945f1","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9838e7169c92b313921c3dafc2a6281da9","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9844701eaceee43f877406360747ab88ef","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98be7925d0b7c567d7b3b81e4f9b8f3dd4","guid":"bfdfe7dc352907fc980b868725387e98ea584cb00bfa24789d85d21b3650748a"}],"guid":"bfdfe7dc352907fc980b868725387e9806185b05e302fda0ea623bd89b05045f","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98ad53226b339581a6725de188f2c8f823","name":"PromisesObjC-FBLPromises_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9867729fb6a85d4c069a179d51db31501d","name":"FBLPromises_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=509ef2b5f0713db35338bdc2c28ba58b-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=509ef2b5f0713db35338bdc2c28ba58b-json new file mode 100644 index 0000000..cdc421b --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=509ef2b5f0713db35338bdc2c28ba58b-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98cf35ffb8bcc9bd9562b8ec9bc24330fa","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/sqflite_darwin","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"sqflite_darwin","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"sqflite_darwin_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e985de2a4035f66944b5d46f640055f71df","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98640957fca97173748eefcacc82c1afdf","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/sqflite_darwin","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"sqflite_darwin","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"sqflite_darwin_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f9c5e4bf909f450e21abf1bbbbaf8517","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98640957fca97173748eefcacc82c1afdf","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/sqflite_darwin","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"sqflite_darwin","INFOPLIST_FILE":"Target Support Files/sqflite_darwin/ResourceBundle-sqflite_darwin_privacy-sqflite_darwin-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"sqflite_darwin_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e982ee62eb39d062e317a11bb31a924b64d","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9821b4290a94be4c452342a0138310d320","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9847c188478f83b0e148732b3f7d6cb70e","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98854fbea71e4b04ac2471dfde2ef42c4e","guid":"bfdfe7dc352907fc980b868725387e98fe2825501fd5ba979cf77668f820689a"}],"guid":"bfdfe7dc352907fc980b868725387e98a7cd3ed208b3cf808293978c616bfe65","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9883134bb5f399cb37a1eb075d4fea30d8","name":"sqflite_darwin-sqflite_darwin_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9849c1d4b1200fcbf6f387f94121c7d0bf","name":"sqflite_darwin_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5114a9e5203f4eb04bd386aac0631c04-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5114a9e5203f4eb04bd386aac0631c04-json new file mode 100644 index 0000000..6372d08 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5114a9e5203f4eb04bd386aac0631c04-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9810636fd05cda4b4be2ac24c3541280a5","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GoogleUtilities","PRODUCT_NAME":"GoogleUtilities","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98377ff703098bd0b947e8470ca89eb339","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5a83b96886cb2edf9ceacb35cb7b59a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities.modulemap","PRODUCT_MODULE_NAME":"GoogleUtilities","PRODUCT_NAME":"GoogleUtilities","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98cf154506a8d69a730ffcc2772040ff4c","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5a83b96886cb2edf9ceacb35cb7b59a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/GoogleUtilities/GoogleUtilities.modulemap","PRODUCT_MODULE_NAME":"GoogleUtilities","PRODUCT_NAME":"GoogleUtilities","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e981afdea90d68678d2a9d9a49dcc67b0e2","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98024809acf933461028e2666bdfcf1862","guid":"bfdfe7dc352907fc980b868725387e98289beae358b4cda7d29df5cb30ddca27","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985835f96d89218a122e5ce3e141394305","guid":"bfdfe7dc352907fc980b868725387e98c7b4cfd354a383a3ecdbf7f58c94cb86","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bc69bb31fc25ac4268e383c844f7cd40","guid":"bfdfe7dc352907fc980b868725387e98faf4fd712611ed9fa9aa1b3261488f22","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9864b4ec5e8ab0c9d4afcf7597f90af5fc","guid":"bfdfe7dc352907fc980b868725387e98bf7810b78debd60604b0656176b72b62","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9828ef6f1816e9ed20e0e7065e4ccf6313","guid":"bfdfe7dc352907fc980b868725387e980351f2af802a074bfdac12f68a388c81","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9898b0e20abd0e6e1bc7f7b208d36bf587","guid":"bfdfe7dc352907fc980b868725387e98a049aca8e4722888d1bfe6efa5451233","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9840991bf29feb5074808284bcf578d090","guid":"bfdfe7dc352907fc980b868725387e98446281b7d51f47b8c69d3dc591e2bdc5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98513bac5cece328e8840e1bb830fedc9b","guid":"bfdfe7dc352907fc980b868725387e98b0948c88cfddb15ae66cc2975fb961ba","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb81ed6443859923df6ff2d9b8e9e551","guid":"bfdfe7dc352907fc980b868725387e989343f305a0c7984464cd4092e12ac22b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b128781c706c420f1f4054ece59d628b","guid":"bfdfe7dc352907fc980b868725387e983d3d00bef91dfbb076dc7478b623dee8"}],"guid":"bfdfe7dc352907fc980b868725387e984316abdbcba08037e5d88ccfc14391ce","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c920204df96fa29abb14a01a3bb7ef34","guid":"bfdfe7dc352907fc980b868725387e98792fe95a8576dbb6942e16914649b6f4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98265a7bc109c9a02c996a209f9cbe4d80","guid":"bfdfe7dc352907fc980b868725387e988a16216f4264c4f1b1167a9076c87a94"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b962fd69f59039840959ff95cba51a29","guid":"bfdfe7dc352907fc980b868725387e98da9ebe38b92f7512a022dae6a77d1da1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cb9827d4dd304a06dfdc8f6272256460","guid":"bfdfe7dc352907fc980b868725387e985f81f96c8f232994d067ebf638348a0d"},{"fileReference":"bfdfe7dc352907fc980b868725387e984f589020f00e73298747c0d3cc93b407","guid":"bfdfe7dc352907fc980b868725387e981e58059d6df1c3c592bf036bfa5d6b9b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d62ce38a345b93a443d396c58c047f07","guid":"bfdfe7dc352907fc980b868725387e9817a139fdd807586ca9b7b085f165469f"},{"fileReference":"bfdfe7dc352907fc980b868725387e985fc51065ad7468cef68ee5ee121a9145","guid":"bfdfe7dc352907fc980b868725387e98718fc4037f7565366f1b5bf8176ffa20"},{"fileReference":"bfdfe7dc352907fc980b868725387e981e1991d659076ff0ba434c74063974b7","guid":"bfdfe7dc352907fc980b868725387e98e6ce9323d60ac67e5a614f34282cb3fb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98711c55f1a635d927da4fa29d65a30984","guid":"bfdfe7dc352907fc980b868725387e98f51904e838880771863f9ceb5fce7d2a"}],"guid":"bfdfe7dc352907fc980b868725387e984d9e5be55e06bac4e2a22af383020764","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98da83f5450f7f57d188fa516982931deb"},{"fileReference":"bfdfe7dc352907fc980b868725387e980b3a3e4fe9e04a7b642b72fa79239746","guid":"bfdfe7dc352907fc980b868725387e98d7f817424d67f258bfe679e76a126a40"}],"guid":"bfdfe7dc352907fc980b868725387e98c42509186acd52fc99ec46e834dcc39c","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98e015a788b6ae6612e63934f526738b52","targetReference":"bfdfe7dc352907fc980b868725387e981a9fac6eb9c80f8eed49fda0531af6a4"}],"guid":"bfdfe7dc352907fc980b868725387e9868a1c83dc813b4a667af35a1de49c3ce","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e981a9fac6eb9c80f8eed49fda0531af6a4","name":"GoogleUtilities-GoogleUtilities_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ca49ca851f2777b997a3e74ccb860358","name":"GoogleUtilities.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5a99a43ca8a79ba648755142ef976d64-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5a99a43ca8a79ba648755142ef976d64-json new file mode 100644 index 0000000..331d4a5 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=5a99a43ca8a79ba648755142ef976d64-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98e2453c6b1c942f8b1248825b856a67df","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/image_picker_ios/image_picker_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/image_picker_ios/image_picker_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/image_picker_ios/image_picker_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"image_picker_ios","PRODUCT_NAME":"image_picker_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9864dece58fe8898e7f0b46391fe2d091f","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98832082a829299906f5bc876ee63fb3eb","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/image_picker_ios/image_picker_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/image_picker_ios/image_picker_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/image_picker_ios/image_picker_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"image_picker_ios","PRODUCT_NAME":"image_picker_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e981b08ec94c515cc2b895c3ae9b4c03834","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98832082a829299906f5bc876ee63fb3eb","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/image_picker_ios/image_picker_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/image_picker_ios/image_picker_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/image_picker_ios/image_picker_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"image_picker_ios","PRODUCT_NAME":"image_picker_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982b03ce4519745554a82e5cffe58f25e2","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e984b4b759359de6567f958e0099ac5f22d","guid":"bfdfe7dc352907fc980b868725387e98b3686dfffb806bdfcdd02fd333f5023e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea6084ae9701920e2a7ec3fd1768dabe","guid":"bfdfe7dc352907fc980b868725387e9814b25506c7ea8e66bd394d33d0fe4c95","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e1b2a1c49d2b52f6c94686ce236eb8cf","guid":"bfdfe7dc352907fc980b868725387e9837470e0331321989a3ff0baac05f1cb0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cc6a64c7830b0aa4c7552f9427104acf","guid":"bfdfe7dc352907fc980b868725387e9899bb6b7a55b6013c12f08d6f9144dcf0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ecb4349708caa90128e6920f09d605fa","guid":"bfdfe7dc352907fc980b868725387e98741fed1c3041cae916df76ffa09477bf","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b80d26c81532db8a3378019f5f787c40","guid":"bfdfe7dc352907fc980b868725387e98de3f5af21783f290c543b8454ba416db","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983d743bcd089218684ca9b3173789369a","guid":"bfdfe7dc352907fc980b868725387e98699d1afc9106475928b2e21902cf237a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f685603bc96a3a8c7d25a203789a68ae","guid":"bfdfe7dc352907fc980b868725387e98cce55d8a62baecc148bc2e6fbca103ac","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e987c543487347cac13b6462fae62598e7f","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985d0e21977fcd48e8bdc86be43d8b3dc0","guid":"bfdfe7dc352907fc980b868725387e988758bd00e0a16dc4ad922760798a1ad4"},{"fileReference":"bfdfe7dc352907fc980b868725387e982ce39739b5ae97d195a2e017d33e483e","guid":"bfdfe7dc352907fc980b868725387e98a927f7b2aa2f6064896a1e3dcdfdc788"},{"fileReference":"bfdfe7dc352907fc980b868725387e988d5ebe2daf571c9cfe2197d3b490b343","guid":"bfdfe7dc352907fc980b868725387e98a95335e2719a9f4c1dc4884a7184734f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f6cb9a70999bb0d38bf3a32aaa29faf9","guid":"bfdfe7dc352907fc980b868725387e9820a42e4b88e08892b9ccf3b2a91c4c04"},{"fileReference":"bfdfe7dc352907fc980b868725387e980c828eb40974f7d098e68d25ae9da8cc","guid":"bfdfe7dc352907fc980b868725387e98cdddaad2b4e12431e131535f7b16cd21"},{"fileReference":"bfdfe7dc352907fc980b868725387e9899cbf1509f49e1f0c66bfa1b4f511ee5","guid":"bfdfe7dc352907fc980b868725387e98e0ab939fbafbd88342244f2b4a6d7f2e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a45b6385912a859064a0d55301734a8a","guid":"bfdfe7dc352907fc980b868725387e981da217b9985bfd5651fce149217186dc"}],"guid":"bfdfe7dc352907fc980b868725387e98ce67561b68c83c2e24888c94da999914","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98cf1fddec899afc6c9825c5eb5ec44493"}],"guid":"bfdfe7dc352907fc980b868725387e98434353ef3b38c3699582ee30b73fe6a8","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9872ef11792920b3966776ea469c5092df","targetReference":"bfdfe7dc352907fc980b868725387e98082dc85da1fc941e5234c7cc1f11b27d"}],"guid":"bfdfe7dc352907fc980b868725387e9811e9e8a5f23273fd9234f4740a75ccb9","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98082dc85da1fc941e5234c7cc1f11b27d","name":"image_picker_ios-image_picker_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e981f000f066404b97b12e9c4ca84d38d0f","name":"image_picker_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e988e06e8c3685b7c12032d8059f412f4cb","name":"image_picker_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=60da4ace29c4b32265ba53d002c23a66-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=60da4ace29c4b32265ba53d002c23a66-json new file mode 100644 index 0000000..5960275 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=60da4ace29c4b32265ba53d002c23a66-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98b7c5e6270376617ea414cbd519967f5a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseCoreInternal","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseCoreInternal","INFOPLIST_FILE":"Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"FirebaseCoreInternal_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98dadaff27a4b648dbdf7c95995e93adff","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ccbb44338e340d03ced12fe388221f2f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseCoreInternal","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseCoreInternal","INFOPLIST_FILE":"Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"FirebaseCoreInternal_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fe5afd87cd7ced80872910a1348dc08f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98ccbb44338e340d03ced12fe388221f2f","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseCoreInternal","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseCoreInternal","INFOPLIST_FILE":"Target Support Files/FirebaseCoreInternal/ResourceBundle-FirebaseCoreInternal_Privacy-FirebaseCoreInternal-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"FirebaseCoreInternal_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9833645238663c2274507d828666ac4c6a","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98837f5937047902fb6d270b4de8c62f00","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98f612ff11e2a5bba46788884e08350c17","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983abc5eee6c6f88610609f66f413efb21","guid":"bfdfe7dc352907fc980b868725387e98163a6b186af90d8a3da3fcc4be10f7f7"}],"guid":"bfdfe7dc352907fc980b868725387e982250b05a8840673ed4145af478c64d49","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98e5b592b076e092ab7ac9d9b5c85edc6f","name":"FirebaseCoreInternal-FirebaseCoreInternal_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98c4db3ee10fd3aea38cd0fd6d5693c776","name":"FirebaseCoreInternal_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6241203fef033d193d2f0560f3cf0ea9-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6241203fef033d193d2f0560f3cf0ea9-json new file mode 100644 index 0000000..2a02ddf --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6241203fef033d193d2f0560f3cf0ea9-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f2726115c8992b10f4191472164b92db","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseCore","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseCore","INFOPLIST_FILE":"Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"FirebaseCore_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98266191f41f136d8bc31de6926c9560a5","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98468148e317fbbb770bfa9ed80334b989","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseCore","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseCore","INFOPLIST_FILE":"Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"FirebaseCore_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9848dfdfd51ad0f80aa58d20146fc1ddb2","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98468148e317fbbb770bfa9ed80334b989","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseCore","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseCore","INFOPLIST_FILE":"Target Support Files/FirebaseCore/ResourceBundle-FirebaseCore_Privacy-FirebaseCore-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"FirebaseCore_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98ae9e3e893400f0cb3cb619c1ed8cda6e","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9836d4d0ae82e7e1517ec24f7617717c0a","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e980a7c53e3fe372704601969bd04591245","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9883df20f4f6a557f500e50343c21f7581","guid":"bfdfe7dc352907fc980b868725387e985afebf42ce0090fa38f5e96c68525363"}],"guid":"bfdfe7dc352907fc980b868725387e986a9315a662f69d25c12734cbaa7507d0","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98678fb6500ea02c78520816441717cc14","name":"FirebaseCore-FirebaseCore_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981126092e527a43878ba047c0d6b5be37","name":"FirebaseCore_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6b9b37e0e11733425e61bcbba0aaa55c-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6b9b37e0e11733425e61bcbba0aaa55c-json new file mode 100644 index 0000000..c4ecf80 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6b9b37e0e11733425e61bcbba0aaa55c-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98de1eef506778ed27c180efd52d606d0a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/path_provider_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"path_provider_foundation","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"path_provider_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98cfaacca8e885f3951966eb627b409964","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980033b112d6450edae8d624450ae13b80","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/path_provider_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"path_provider_foundation","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"path_provider_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98474a9d7b86d21f524d5792e2b296d6ca","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980033b112d6450edae8d624450ae13b80","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/path_provider_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"path_provider_foundation","INFOPLIST_FILE":"Target Support Files/path_provider_foundation/ResourceBundle-path_provider_foundation_privacy-path_provider_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"path_provider_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e984caf069111f3ce9b882d0336f96c1fef","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98f3ca7c6b5304bede67c47ad79872e621","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d6dc852bb71c07cde706be8aee53a508","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e986e2ea521305edb284c9a134bbfbc76a7","guid":"bfdfe7dc352907fc980b868725387e984b033c28cbccb1c2a3ce4df7e01b80ea"}],"guid":"bfdfe7dc352907fc980b868725387e9856396465294f853021176c84528cc97b","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e987ea64ee8d53085bf9edd1a57aaf8cbb5","name":"path_provider_foundation-path_provider_foundation_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e986e649604f74c414a7c2dbe5ef4cc4e75","name":"path_provider_foundation_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6e54c97a63b8201c1bfa6286996e9fc0-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6e54c97a63b8201c1bfa6286996e9fc0-json new file mode 100644 index 0000000..67932b6 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6e54c97a63b8201c1bfa6286996e9fc0-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983c092bfa5de54a6d1ae8b69ba54a80d5","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/smart_auth/smart_auth-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/smart_auth/smart_auth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/smart_auth/smart_auth.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"smart_auth","PRODUCT_NAME":"smart_auth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98f5eec9f66ebb37220bf5ea0b16feb308","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98600796f864742f2aba23d7a7f57fe9ca","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/smart_auth/smart_auth-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/smart_auth/smart_auth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/smart_auth/smart_auth.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"smart_auth","PRODUCT_NAME":"smart_auth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984dde0feb469c2a4eb70bf97118b6c49b","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98600796f864742f2aba23d7a7f57fe9ca","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/smart_auth/smart_auth-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/smart_auth/smart_auth-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/smart_auth/smart_auth.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"smart_auth","PRODUCT_NAME":"smart_auth","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c1e282adf5cb516ed73b3c259be7d705","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985c255e949ef12b1cfa643388677a5414","guid":"bfdfe7dc352907fc980b868725387e9845863d4fb9d0e8275a1c2c8276a40bec","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98156e8f54359f3dd8eedd852746ff8a13","guid":"bfdfe7dc352907fc980b868725387e985a5faa3be264037e4500f428812b4581","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9805dd2d27ea5e916e323fd375fcd8a1bd","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fc7b5d9c059009f659868eba9b1a2527","guid":"bfdfe7dc352907fc980b868725387e98a2155a2b9900d093ec81c4e1afb3aaa5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b1d3c315dcb66660fdb81a961bee30b9","guid":"bfdfe7dc352907fc980b868725387e98ad9143b60bccb50f54f3d695d851b536"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bccaf913b0e7deb8a8d26ef8564d3f06","guid":"bfdfe7dc352907fc980b868725387e98f53d7ad178dad4d32325260b07021c20"}],"guid":"bfdfe7dc352907fc980b868725387e9853e64267be3b3fe657113e1f0a59a6c9","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e9871b1f8e0e07fa4e8437c630c9ec9de05"}],"guid":"bfdfe7dc352907fc980b868725387e98b20076d1da44af3860cfe985ee267f8b","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98772a32664d1694cd3cccef4f6ec348f2","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e9892091fbd13cae315d11679e8b8d08c5b","name":"smart_auth","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e989ad2eb66fa5021175f39fe89a10b5c02","name":"smart_auth.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6f8583089c6731cb96458df04f917e43-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6f8583089c6731cb96458df04f917e43-json new file mode 100644 index 0000000..82a1941 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=6f8583089c6731cb96458df04f917e43-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98180b674572cdb3e9695c259b09d2ce32","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"firebase_in_app_messaging","PRODUCT_NAME":"firebase_in_app_messaging","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a16c3585be4bc628cb384c7e05193ff9","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98831890504e8ae337c3b9356141d820c3","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"firebase_in_app_messaging","PRODUCT_NAME":"firebase_in_app_messaging","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982f4ec0d76b7eaa0363138f490ced8d08","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98831890504e8ae337c3b9356141d820c3","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/firebase_in_app_messaging/firebase_in_app_messaging.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"firebase_in_app_messaging","PRODUCT_NAME":"firebase_in_app_messaging","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e34f8815e69ff3eec4824c3662aec2c7","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98649b2538baf62e1c7bbb39811380b4cb","guid":"bfdfe7dc352907fc980b868725387e982987bfd03b82fbfe82641fb2714bec4c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879cbc2d3e996c8920cc9c0e1293d1999","guid":"bfdfe7dc352907fc980b868725387e988369bf160734442eb6ba8ef2724cdbcd","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98341f4c87e49d983785251ce5516e3c6e","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d114160599f6f4ccf5c85591669b0b03","guid":"bfdfe7dc352907fc980b868725387e985dbe7de15ee1c8ecc531e754dda21f43"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a6d095d1c7788cd9870ecd39443c2a98","guid":"bfdfe7dc352907fc980b868725387e98f7bdc110fdbbf34026588d3bd8045c9b"}],"guid":"bfdfe7dc352907fc980b868725387e980ca906c8626915e25ac592ef974813d3","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98f3938f1b096c3642164301efad9ff212"}],"guid":"bfdfe7dc352907fc980b868725387e9809f325c43c4bcf59acdc57fabe029d16","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989c2ee2821b6bb6fcbe5d74ca882e7fd8","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98d57b8bce60a0f11113f4cff532db68d3","name":"Firebase"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987f74324bfc5c78140e34d510e26e00c1","name":"firebase_core"}],"guid":"bfdfe7dc352907fc980b868725387e9885df5804930ddb974cecdbb23c87d40f","name":"firebase_in_app_messaging","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98525f492d111681984a8f4a1697938b13","name":"firebase_in_app_messaging.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=721ef4b08355be6994a510dbb50b0e46-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=721ef4b08355be6994a510dbb50b0e46-json new file mode 100644 index 0000000..e5dbe75 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=721ef4b08355be6994a510dbb50b0e46-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987564ada9b3c747132b7cc328c7354080","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/connectivity_plus/connectivity_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/connectivity_plus/connectivity_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/connectivity_plus/connectivity_plus.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"connectivity_plus","PRODUCT_NAME":"connectivity_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9839c57ad3072ec2046a63d02e2a05a44e","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c497507cd3183e768a71b5fcf97576db","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/connectivity_plus/connectivity_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/connectivity_plus/connectivity_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/connectivity_plus/connectivity_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"connectivity_plus","PRODUCT_NAME":"connectivity_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98804484cab12d6083558bb64845ddc72b","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c497507cd3183e768a71b5fcf97576db","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/connectivity_plus/connectivity_plus-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/connectivity_plus/connectivity_plus-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/connectivity_plus/connectivity_plus.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"connectivity_plus","PRODUCT_NAME":"connectivity_plus","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e983d16b0499d1dce6e16ad4ba8513de979","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e983cfcab79a54914cbd81d8b9377f5935e","guid":"bfdfe7dc352907fc980b868725387e9816d4c1d3ad947ea333e1ec7fd33121d1","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98aa262b1f6ff1ed116a0e12910e764073","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9843a96d5fd96805d46d0692d9325d980d","guid":"bfdfe7dc352907fc980b868725387e98ae4c0851b6bc181528d3473da9d38c9b"},{"fileReference":"bfdfe7dc352907fc980b868725387e9872eebb2da253991c84bbba8bb96b7dc2","guid":"bfdfe7dc352907fc980b868725387e9895d131410cd66425e62dd633a508b056"},{"fileReference":"bfdfe7dc352907fc980b868725387e986bfcd66e2b6cf7925cc55086297eb7f7","guid":"bfdfe7dc352907fc980b868725387e989943153364d0ca52986c4c08d47fb994"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d3e377babb11fdfae36e092f1ec8d8fa","guid":"bfdfe7dc352907fc980b868725387e98ce78f44f27de71f39af89afb94740c38"}],"guid":"bfdfe7dc352907fc980b868725387e9810350e0ce83f73e0a0c7a47831420b59","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98398b4cae2eb82d7eec282095ebbda0f9"}],"guid":"bfdfe7dc352907fc980b868725387e98c595fec10b4d135f7d0db0a2ac42e4a1","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e982eb19c089cfe30fe7415b79927ad87c0","targetReference":"bfdfe7dc352907fc980b868725387e9831ced05e49f553f4d1bb4a7cc8ab09f7"}],"guid":"bfdfe7dc352907fc980b868725387e98700ac966c7ace749f46dc53236f5994e","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e9831ced05e49f553f4d1bb4a7cc8ab09f7","name":"connectivity_plus-connectivity_plus_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98144902882b713248a71c322fd5b2f4ee","name":"connectivity_plus","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9849d71e523f9c532b7a090a4d5cf8d1e0","name":"connectivity_plus.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7d72c6d9139bbbc45845b1d55d27face-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7d72c6d9139bbbc45845b1d55d27face-json new file mode 100644 index 0000000..b3a37b9 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7d72c6d9139bbbc45845b1d55d27face-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f2726115c8992b10f4191472164b92db","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseCore/FirebaseCore-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseCore/FirebaseCore.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FirebaseCore","PRODUCT_NAME":"FirebaseCore","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98a92bcd6b08cfbdcb3617f4475a0a2ac1","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98468148e317fbbb770bfa9ed80334b989","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseCore/FirebaseCore-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseCore/FirebaseCore.modulemap","PRODUCT_MODULE_NAME":"FirebaseCore","PRODUCT_NAME":"FirebaseCore","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bdb5fd50d6906cfb076ea7fd5da1f0b7","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98468148e317fbbb770bfa9ed80334b989","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseCore/FirebaseCore-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseCore/FirebaseCore.modulemap","PRODUCT_MODULE_NAME":"FirebaseCore","PRODUCT_NAME":"FirebaseCore","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98dbfa34b625b3d1cbea865660982df367","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98750afed94ea747bf0d98e601ab0a46fe","guid":"bfdfe7dc352907fc980b868725387e981cc419b8c52e28de51153758ed864a28"},{"fileReference":"bfdfe7dc352907fc980b868725387e9855ae5c1d44bc9c39c9fd06ee5a09bb13","guid":"bfdfe7dc352907fc980b868725387e98a9c5e5ff6886f4a653a8d910d90f2c29","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9870d5c1b1fbe8335a0947bbe208286530","guid":"bfdfe7dc352907fc980b868725387e98bb4ebbfeb8776ed948b069831752e090"},{"fileReference":"bfdfe7dc352907fc980b868725387e984101e1abc22977e40aee98700ab534e9","guid":"bfdfe7dc352907fc980b868725387e9860c8a59d3d8880561f799279fb08ad98"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cbc34c362f1f8067bee1a8c3c116fcbc","guid":"bfdfe7dc352907fc980b868725387e98ae48bf23b0109ffa00ba508e886e1e23"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a31eb3fbbfb41264e692be5383dc3e2","guid":"bfdfe7dc352907fc980b868725387e9826af407959ee238938eb995a534762a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e989479000ecc7c98f0ca64fa042f94010e","guid":"bfdfe7dc352907fc980b868725387e98227659993905e2ad3d89231b3165ad62"},{"fileReference":"bfdfe7dc352907fc980b868725387e9824512ff987cbe51e4649cd52ec54eb2e","guid":"bfdfe7dc352907fc980b868725387e98393b474e289d79f7d77b74df38f194ef"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b52c36a6497832c2e160dd38d3a5d201","guid":"bfdfe7dc352907fc980b868725387e98653e9cfe4f4ce409e5ec63e5a8bb70e1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9859c33900ebbda6c56d85be05f3eda76a","guid":"bfdfe7dc352907fc980b868725387e98062c7fba901fabbaf387d37fdedb51b5"},{"fileReference":"bfdfe7dc352907fc980b868725387e984ceddf0919cf93bb13176271bdd3aa15","guid":"bfdfe7dc352907fc980b868725387e984d2774bcf9b63e5415ab9fd7c5f01cb7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c29b33925a578cfb33767c6c92dd4180","guid":"bfdfe7dc352907fc980b868725387e981fe72b666a88a0c2508b04d78be539c1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cbf768cd7c127c7bc72921d99e97804a","guid":"bfdfe7dc352907fc980b868725387e98d3f9db7e0dfeb3695abe6606288e8060"},{"fileReference":"bfdfe7dc352907fc980b868725387e982abc12e73cb87ab3f226e5d0edf6a591","guid":"bfdfe7dc352907fc980b868725387e98dee8f95334996b7a266dcaef69ab1edd"},{"fileReference":"bfdfe7dc352907fc980b868725387e9808f8c8ff7e5a2a63d9f8f8b5bffc24ca","guid":"bfdfe7dc352907fc980b868725387e98908c9201d81e47c79ac4c2131a0c5543"},{"fileReference":"bfdfe7dc352907fc980b868725387e983b0b6d23970e541e76d360de50b5a799","guid":"bfdfe7dc352907fc980b868725387e98f12183baac2ec0d2765dee229d81b7a7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98424ba3ce1a4fbc2d665cbf5c86580920","guid":"bfdfe7dc352907fc980b868725387e981cebcef58494bba2aa338386bbf0047f"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a4cb43a8cde797bc42619969480fa34","guid":"bfdfe7dc352907fc980b868725387e98d9d46faa08081e6b7d9e08b193cbb553","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a8b38cec21347aa07d7c3733a7aec5e9","guid":"bfdfe7dc352907fc980b868725387e983d0ea1629fa6d04498e60772b4399f26","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98beacf7a258da7ebfe1c44fc927f0307a","guid":"bfdfe7dc352907fc980b868725387e98ad65ba6de2a6997a6346ff22afd15921"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aafc2a0afdf021a9b8d29dfbfc87c042","guid":"bfdfe7dc352907fc980b868725387e98798432a42c46cae40e989ddd4c9c6bfb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9868343b7ba51246929873bc361739a51b","guid":"bfdfe7dc352907fc980b868725387e983f3a799670f242d443bb402db266bc73"},{"fileReference":"bfdfe7dc352907fc980b868725387e981633cbb8d2c444b057cacac65bcabdeb","guid":"bfdfe7dc352907fc980b868725387e98b7491167d1dbfbd073035079fe28a3ac","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e986b65533b6a6d64ced39773daab63faaa","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e8f5b0044320ced7c6383f7ad148dd3c","guid":"bfdfe7dc352907fc980b868725387e98f0fe089992cd45852ec558a6d8a1b2e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9887eeb365e6abf3f4bc66afbaffe608d4","guid":"bfdfe7dc352907fc980b868725387e98ddb25a3a899c5dceaea01b93170856a5"},{"fileReference":"bfdfe7dc352907fc980b868725387e980df4e320decc2147a03f9b1964e5cff0","guid":"bfdfe7dc352907fc980b868725387e987a77811f37af4ecf799fbb7b51080b37"},{"fileReference":"bfdfe7dc352907fc980b868725387e9808dacc85764b52eb46570279cd1bb855","guid":"bfdfe7dc352907fc980b868725387e9838c9b5b17f4a89a89e08dc1ec4cca374"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dc3572cfa7134bcf746b9253669ec4d7","guid":"bfdfe7dc352907fc980b868725387e98fd74a8822b3efac8ff3d74375fc6c5a1"},{"fileReference":"bfdfe7dc352907fc980b868725387e982c293883391a0d24bcdb43ce3d466d62","guid":"bfdfe7dc352907fc980b868725387e98fb0106f1b0be50e7f7e5bb5d7257f487"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d2b8cd824507c20d60aa06afabc27d5a","guid":"bfdfe7dc352907fc980b868725387e987a233663ecd25583dc564451cf42d36c"},{"fileReference":"bfdfe7dc352907fc980b868725387e9816c9b31597e1f98b8136dc4cf0a1a5b0","guid":"bfdfe7dc352907fc980b868725387e9897d93cc40312ae08e54bcf4926d99137"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cb488c9d89bedbb61a2de3a78177f417","guid":"bfdfe7dc352907fc980b868725387e9846e89da59bfe9f934a6003ad7ae2c272"},{"fileReference":"bfdfe7dc352907fc980b868725387e9896f7813e3ae5ab580d04b64d26b2ce5c","guid":"bfdfe7dc352907fc980b868725387e9898ac4b75d6f57db11e51a5202e887ec2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ae9e6d14b36b60d4c0c6298cf7b75522","guid":"bfdfe7dc352907fc980b868725387e989e87ac7d315c07de1f739785bd245403"},{"fileReference":"bfdfe7dc352907fc980b868725387e98815fbeb4a3c0d28daee068086169499c","guid":"bfdfe7dc352907fc980b868725387e985efb3a9e2e67ebab4f7b926f8f710d13"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e38a4d908331c27bad79e86f8d9c3a1d","guid":"bfdfe7dc352907fc980b868725387e98a5ee9e9ec362de65724f77503589ba56"},{"fileReference":"bfdfe7dc352907fc980b868725387e985b2a03f3720f92cf4646730487962317","guid":"bfdfe7dc352907fc980b868725387e98d8ec058a223248096a2c6aedded78d24"}],"guid":"bfdfe7dc352907fc980b868725387e98dac1912d5dd232ac6194b3a252a09017","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e9871ad96b7f3ad5cbefab43f38c58cfd82"},{"fileReference":"bfdfe7dc352907fc980b868725387e9835ca341e0b23bb4a61c649cefb2052db","guid":"bfdfe7dc352907fc980b868725387e98a8b60f747afdf110d86147956765f372"}],"guid":"bfdfe7dc352907fc980b868725387e9821c22abaa1b7e007f895fdf261105aa7","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98f24752bfdc5b9fca001f2ae7eab93c81","targetReference":"bfdfe7dc352907fc980b868725387e98678fb6500ea02c78520816441717cc14"}],"guid":"bfdfe7dc352907fc980b868725387e98cb41e00deba1efcbe434a3dc956e82ab","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98678fb6500ea02c78520816441717cc14","name":"FirebaseCore-FirebaseCore_Privacy"},{"guid":"bfdfe7dc352907fc980b868725387e98020791fd2e7b7ddc8fb2658339c42e16","name":"FirebaseCoreInternal"},{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"}],"guid":"bfdfe7dc352907fc980b868725387e98a408a4c1f668e62161cdeba76f57d50c","name":"FirebaseCore","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e988ae261e418baab0fdd0a48d117fe7fa2","name":"FirebaseCore.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7dd9c6124ead3357b80228871ef74d3d-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7dd9c6124ead3357b80228871ef74d3d-json new file mode 100644 index 0000000..dc0bf9d --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7dd9c6124ead3357b80228871ef74d3d-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9818551ce907735f179c36bd422f38ef80","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"webview_flutter_wkwebview","PRODUCT_NAME":"webview_flutter_wkwebview","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98d6da72224a0002e2c8d4ad6a4140a101","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982efcb7682d14757e01b7d401e62c76f2","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"webview_flutter_wkwebview","PRODUCT_NAME":"webview_flutter_wkwebview","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984cab3693a69eb1c553c791758183685f","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982efcb7682d14757e01b7d401e62c76f2","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/webview_flutter_wkwebview/webview_flutter_wkwebview.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"webview_flutter_wkwebview","PRODUCT_NAME":"webview_flutter_wkwebview","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98f480631d57f584ae82569893436b3d19","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e988281cf5a7efa7dac7963fa0b150738e3","guid":"bfdfe7dc352907fc980b868725387e98faa2d77c0ef7eb87f7f8421e51c1b40a","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98a1e3dac75ef5081293a3cce12f493338","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98f4fa6607ef78eaf25893c15119f8d23f","guid":"bfdfe7dc352907fc980b868725387e98309f57cdb1425c8303e165f789463da1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af0533ba4af0fd8829edb34d58eb8fe5","guid":"bfdfe7dc352907fc980b868725387e98cae5c1f62425f1fdd0e1c73d6c3b5724"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bc88804199115088a64354db4fe8c59f","guid":"bfdfe7dc352907fc980b868725387e98365a3719bc0ffefd83ce4a329503a1bf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98daf7fc771f14f246941cf835c82b2e76","guid":"bfdfe7dc352907fc980b868725387e986f4bb00d8644c8a9dff68616cf8316fa"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b3458f83f790cf0ce30292170056951b","guid":"bfdfe7dc352907fc980b868725387e98904599a6349bd9edfb72ab21bb270e82"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a679cb591714989df54a8d3d07c2fb3a","guid":"bfdfe7dc352907fc980b868725387e98195d1fabe96a4d301685ef03b2a04ad4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98716ea376ea11a9ee50b488ed95cdb6ae","guid":"bfdfe7dc352907fc980b868725387e98bb1fca5cac195659498b5c10e31673db"},{"fileReference":"bfdfe7dc352907fc980b868725387e988dba78f96e3444b23c0b1e21f2d1e63a","guid":"bfdfe7dc352907fc980b868725387e98d460f98709419fccfb5993c1795dfbf8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f182b17f0e75041adb39be4fbc916dd1","guid":"bfdfe7dc352907fc980b868725387e98b23f5475f8d5c7709d42d1901cec814c"},{"fileReference":"bfdfe7dc352907fc980b868725387e987e6c05b3c08a529e81f2955781bc3c78","guid":"bfdfe7dc352907fc980b868725387e98324e3d41716316926b74ca2d4dd9b1f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bf67fe3a60c1e994f02e17ef621f6b52","guid":"bfdfe7dc352907fc980b868725387e985d2a2ff2c23e445f65b16e3faf4e0ec2"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f7542dfc82121c0b8e491aa2463fdf10","guid":"bfdfe7dc352907fc980b868725387e981a8fbd0be6bf8103b439a193804b0dd3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9808dfa4987177d1d41dbb7c0ec8fb1809","guid":"bfdfe7dc352907fc980b868725387e98791571b754df472b0082cbb06a513e06"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b01a7f513cca5e487872ed27ff5e7a62","guid":"bfdfe7dc352907fc980b868725387e98256ec6a02d06adacabdaa394b6bb59f2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9845d30bfe5bfe72863d5ee999473f0989","guid":"bfdfe7dc352907fc980b868725387e9827d4621c97ecbe0412203e33909ec312"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cdcd569d745ca5ab0ba9ef2afaf30151","guid":"bfdfe7dc352907fc980b868725387e9860f5011d93a420144cd5285ed7270cbc"},{"fileReference":"bfdfe7dc352907fc980b868725387e9853fa2d43ace0ee47ac305220f15bd966","guid":"bfdfe7dc352907fc980b868725387e98d5002463700e6ab6426ca63f9ecc59ca"},{"fileReference":"bfdfe7dc352907fc980b868725387e985d6c619f76b73de880346140383a6e1b","guid":"bfdfe7dc352907fc980b868725387e98565e6b5d151c520db70455e76fc11f80"},{"fileReference":"bfdfe7dc352907fc980b868725387e9830ea343ae6627bdb292c9da3205fe574","guid":"bfdfe7dc352907fc980b868725387e9844231158346d1b04235cea3cbf3781ae"},{"fileReference":"bfdfe7dc352907fc980b868725387e9884aa3b936463081c428987d1bfdb8e49","guid":"bfdfe7dc352907fc980b868725387e98cb46389e5c2ed6b59890655baad30c2c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c2d4ae70ce4caa40d3301076b8138932","guid":"bfdfe7dc352907fc980b868725387e989f418b40c330cba3612f55c87155ed44"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dd7cdfee31faf4940ce2ea9c62490c3c","guid":"bfdfe7dc352907fc980b868725387e9899ad78dd3e507037c5e38d3ff877909d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d60c3309b86efcdbf6992828ff60b91a","guid":"bfdfe7dc352907fc980b868725387e987e61b20a05f094c18505fdd60f6b6a81"},{"fileReference":"bfdfe7dc352907fc980b868725387e9822dcffb4949771fdd6a83777b36e42c9","guid":"bfdfe7dc352907fc980b868725387e980285666cb9155f21b817a4733b971d07"},{"fileReference":"bfdfe7dc352907fc980b868725387e9851afea7725ce58205eea184a3040fb9e","guid":"bfdfe7dc352907fc980b868725387e98ae4529795976b81a9f4b6f60d4a3446c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b831ac70d57ccf07047662ae3ebf3f63","guid":"bfdfe7dc352907fc980b868725387e9859ab0320f69ce7f7dbef5c61e67243e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e95c1841d560f8efcf6447cd0b5bfbe7","guid":"bfdfe7dc352907fc980b868725387e98dcd4dab5a3af1fe722248ea0cb3c6a84"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b3ce70539619b31bd30fca59e297cf72","guid":"bfdfe7dc352907fc980b868725387e981c8d6331cb2881b9bc79ff17938ae4f7"},{"fileReference":"bfdfe7dc352907fc980b868725387e987c5356148e626358db77dd9d36272e9e","guid":"bfdfe7dc352907fc980b868725387e9871cf84f3877306a8daa5425d6e5d7dbf"},{"fileReference":"bfdfe7dc352907fc980b868725387e982260f6119a36c0a254ffc211a79ed219","guid":"bfdfe7dc352907fc980b868725387e98a6535dcf8cb4dc99966380efab3c861e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9881dd713080a76a8ed0234a92c549fcf1","guid":"bfdfe7dc352907fc980b868725387e98b79fc13543c4d50dfe109960014eadcf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cf9de9573aa846265ef3538b6fb875f6","guid":"bfdfe7dc352907fc980b868725387e9881b381fc4aa69f96a15494bba4e3b83c"},{"fileReference":"bfdfe7dc352907fc980b868725387e985c07bc5f01db3bb132324d672650d937","guid":"bfdfe7dc352907fc980b868725387e98c21e183f0808b3d338b28deccd1be83d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9887a9527c9d4d0b7505faf4118ccc68f8","guid":"bfdfe7dc352907fc980b868725387e9893f3c1e4eadbc2cfa19223f64649e620"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a00d85604512f8843f8675148932004","guid":"bfdfe7dc352907fc980b868725387e98b9ac56394d6670c7fcfed8da8d0705d6"},{"fileReference":"bfdfe7dc352907fc980b868725387e986a06778b43d37b0a549a1b3844161baf","guid":"bfdfe7dc352907fc980b868725387e987d6bf00b5d2982d7cc136fffba59ee2e"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e62d7a5ce1ee774e55f668b8ddce6c1","guid":"bfdfe7dc352907fc980b868725387e981291f9135675ea268e2f2f46a8bd9b91"},{"fileReference":"bfdfe7dc352907fc980b868725387e9850449ffaf2254f49147c609c1349f930","guid":"bfdfe7dc352907fc980b868725387e9868ed83e05e9383a92c5f6eaeb786b805"},{"fileReference":"bfdfe7dc352907fc980b868725387e989bb051dd32c3470539ab7ad8f1fdbf8e","guid":"bfdfe7dc352907fc980b868725387e98d259083229b4eed28de4a364a94222ca"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bcff4cb351f765f0a445c3eb109d3ada","guid":"bfdfe7dc352907fc980b868725387e98f41a2a96bda86b8de6e63f7bc72e1132"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e8fdbc282f3635244926ee11304a1adf","guid":"bfdfe7dc352907fc980b868725387e98b4b9622ea90d4c844dda009459a9c32a"},{"fileReference":"bfdfe7dc352907fc980b868725387e985408c81414ad52e0d6facc8c7a5775e9","guid":"bfdfe7dc352907fc980b868725387e98c846343b5c8fbf21c128b7d60d3813d0"},{"fileReference":"bfdfe7dc352907fc980b868725387e983ebd3cb9f4d7bfae0d366cc2fd5f0d98","guid":"bfdfe7dc352907fc980b868725387e98b6b019cf1c2615c1c0b979e5c9bf0dae"}],"guid":"bfdfe7dc352907fc980b868725387e980055fbf3a11bc15129d28ebbe5cc1480","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e987ead9e15fc09a570554fa963eed1137d"}],"guid":"bfdfe7dc352907fc980b868725387e98da9cd099e7190758cfc42156c0f4e548","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98b8defae1b39d33d1c1b6a7ec3e8cf51c","targetReference":"bfdfe7dc352907fc980b868725387e987c93e943aa0a38b5f6684beaf6b4a3a1"}],"guid":"bfdfe7dc352907fc980b868725387e987fd8694c1d36b88c99f78feb0d04dd25","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987c93e943aa0a38b5f6684beaf6b4a3a1","name":"webview_flutter_wkwebview-webview_flutter_wkwebview_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e988efdc4dd0ac29b43123295eca853f4ed","name":"webview_flutter_wkwebview","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e980823710353e0487822d6da09bf8d6254","name":"webview_flutter_wkwebview.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7f84e58ffd0f184005dd2244c1722731-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7f84e58ffd0f184005dd2244c1722731-json new file mode 100644 index 0000000..ebe2b77 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=7f84e58ffd0f184005dd2244c1722731-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9892384722d5eeb82f5eee6a6d2a80e499","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/url_launcher_ios/url_launcher_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"url_launcher_ios","PRODUCT_NAME":"url_launcher_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e983bf7c387e6b30e7532f6cb4e6e71951b","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9883551ceaa3441a893ddf0a29beb8cb2e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/url_launcher_ios/url_launcher_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"url_launcher_ios","PRODUCT_NAME":"url_launcher_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9852e5f92b339577bcf682a1eb4792c8f4","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9883551ceaa3441a893ddf0a29beb8cb2e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/url_launcher_ios/url_launcher_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/url_launcher_ios/url_launcher_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"url_launcher_ios","PRODUCT_NAME":"url_launcher_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98606903bd7be7dc87a070537db999d889","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9877b35a5f5871c6aa739200e8977da51a","guid":"bfdfe7dc352907fc980b868725387e98488b1aae650ee0880687b46866424107","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9803da34d77efef8ef3ce2c8ebbae5bdbc","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9864dff9d044a6d495c75e4c38266e2042","guid":"bfdfe7dc352907fc980b868725387e98d0ef175d05bc9a488725e09c1469aa26"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f0cc9e74bcb42148986a1c714e39c22e","guid":"bfdfe7dc352907fc980b868725387e9872c52bd126732f1d74f50d9b3a47e3dc"},{"fileReference":"bfdfe7dc352907fc980b868725387e98753c8448b648741b6a86d8f2c47a565c","guid":"bfdfe7dc352907fc980b868725387e9888b1e74e60918c1dda1636aa70ed211a"},{"fileReference":"bfdfe7dc352907fc980b868725387e984308309f400357da95c1b1f6608a2f08","guid":"bfdfe7dc352907fc980b868725387e980a0009a8884d5309acc488b3b2ea3c2a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a44d278e62555aa5ea8ca0dbc8af7e63","guid":"bfdfe7dc352907fc980b868725387e98124ab6fdc9668d97f3d4f831ea111aed"}],"guid":"bfdfe7dc352907fc980b868725387e98fa96dbb049cf26a8a5faf87ef8982665","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e982f8b7ae2e7caa8ede8091d9bb363b0d1"}],"guid":"bfdfe7dc352907fc980b868725387e988f4e5a15bd2f3cf26d08bb8eafccb083","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9829873fc0097fc1cd118d2ea1c7a9e44f","targetReference":"bfdfe7dc352907fc980b868725387e9891b3b8cc56823cdea4b418e009a423b2"}],"guid":"bfdfe7dc352907fc980b868725387e98e31bb378ac96256438f4a2e26e722c1b","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e9891b3b8cc56823cdea4b418e009a423b2","name":"url_launcher_ios-url_launcher_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98903e66fa03d6d27edaa18126a82c20fd","name":"url_launcher_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f7a21f0cd31eecef97e8eaf4a819dde1","name":"url_launcher_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=826a4ccff02639bdb45d63701c13e979-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=826a4ccff02639bdb45d63701c13e979-json new file mode 100644 index 0000000..a7546de --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=826a4ccff02639bdb45d63701c13e979-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98384faf6833a8ff5c4a6994aec5d64a32","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PromisesObjC/PromisesObjC-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PromisesObjC/PromisesObjC.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FBLPromises","PRODUCT_NAME":"FBLPromises","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9838ca8fae98184781732f559a38e86149","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dd17c7a49baf3905e7f403f18531effa","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PromisesObjC/PromisesObjC-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PromisesObjC/PromisesObjC.modulemap","PRODUCT_MODULE_NAME":"FBLPromises","PRODUCT_NAME":"FBLPromises","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9812ea4d6d4b21f0d748dd99d6a1639fe4","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dd17c7a49baf3905e7f403f18531effa","buildSettings":{"CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/PromisesObjC/PromisesObjC-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"9.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/PromisesObjC/PromisesObjC.modulemap","PRODUCT_MODULE_NAME":"FBLPromises","PRODUCT_NAME":"FBLPromises","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e6e4da9ad6d6d41e5733d4035ce0b6af","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9886948c13094c0a42ab0e3047f5aa258a","guid":"bfdfe7dc352907fc980b868725387e98c74d884573ddee2a9f35bcb7d5f5a835","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98115ce9fb60e7e4ceef4bc94c9bc94f0d","guid":"bfdfe7dc352907fc980b868725387e98f3a3fca39a57899ca3bb3b0190af7a6b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9897593c5a49ec08bb6c0fa1497f630feb","guid":"bfdfe7dc352907fc980b868725387e98bc992515916df896635f1d8384471d3b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c791b6628e76fe84b48d093171a813db","guid":"bfdfe7dc352907fc980b868725387e9862b99a2e93eb09520357b5b03c06dc4d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9846e73f8bbc2a37a554f087a1c783bcad","guid":"bfdfe7dc352907fc980b868725387e98b35b31b8e07696dc0150a336334c951e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986a597a1fa1fd32097026634c20232b56","guid":"bfdfe7dc352907fc980b868725387e985df85406fb3023ffd0dc75ed5b310f93","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fdb0642d26d06c78dea864ba3ff94fe2","guid":"bfdfe7dc352907fc980b868725387e984a3c9bab1e8883db8bcd2ecc3de8ea44","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982c6d60a984c4f9f41238b730ba006af7","guid":"bfdfe7dc352907fc980b868725387e98933a9e3dc6b5d1ef4f3a0faf7c9a0720","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e3c76a08fcb4a170a6f32f704bf4ae4c","guid":"bfdfe7dc352907fc980b868725387e98d16b4a39e9b0ffc933199eab7ee9333a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9834b83b523b54aa79e2e6622c58690ff8","guid":"bfdfe7dc352907fc980b868725387e98d633c876f39a9482fc683aed9790ba96","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980ca96948ac55f1cf470f0e38b75d865a","guid":"bfdfe7dc352907fc980b868725387e98b6152d101b1616b190b2aa802ba61714","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984c122272947d4acdd0b216dc666d25b6","guid":"bfdfe7dc352907fc980b868725387e98c16e8b8eadfc1369064eb7824d8d2e99","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98967949b1d28c020fb4a56c9ed278766e","guid":"bfdfe7dc352907fc980b868725387e98d30ece62c8744a9fe4bb25190ebad0b3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98254fba5dd6fda4b2d7df0b89835f8a26","guid":"bfdfe7dc352907fc980b868725387e9800e28b1aa8930960c6e05c21aba82702","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d20bd599d8a1fd7b09d6b3d605b16f35","guid":"bfdfe7dc352907fc980b868725387e98ba817d59b7010f9acfa45f637c0d2434","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e4838a5a95946722bf9676ab94a823f2","guid":"bfdfe7dc352907fc980b868725387e98ed4549e6bba401a0e1ec04b9a407c21d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dc1f368c3ef686f0bb67ed509341147d","guid":"bfdfe7dc352907fc980b868725387e98e5baa0f7fca4d1695ed16ed523dc8023","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a657b78be9a6141d34e9a2673a802c4e","guid":"bfdfe7dc352907fc980b868725387e984f288b4c58a243f5327fe6af0d4a8afc","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e24aecb46c96d4186c8778a9dc45f237","guid":"bfdfe7dc352907fc980b868725387e98db38aceed7f182e986a61e5225e64bf0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893729bf4c32017e79e6bb89eb569625f","guid":"bfdfe7dc352907fc980b868725387e98e5ee50b75e36e4c4d9ee1b6cb08ad761","headerVisibility":"private"},{"fileReference":"bfdfe7dc352907fc980b868725387e98621f635e9f291f8e20291cd47ee2c1e3","guid":"bfdfe7dc352907fc980b868725387e9813b797e5a7f2bfb5a603a4c5e1cf1fd6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989b3a6ba296c9716b3ebb4f08cbb12121","guid":"bfdfe7dc352907fc980b868725387e98afe9b0901bf596fdacf4924ae2c1312a","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98d07c6d860aa66a101ed64c7ac08d60d8","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9821fedb626a0bd363a80c081601d4062a","guid":"bfdfe7dc352907fc980b868725387e98e527d1817ced0faf37b230ea004e3b83"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e4be7260673dcd81411fb454cd20b009","guid":"bfdfe7dc352907fc980b868725387e982cad10d529a0b002b2f6fbc475c642d6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9839a151d76d99b53507807caaa55af049","guid":"bfdfe7dc352907fc980b868725387e98a60208514ca592258fa0c07be995eb05"},{"fileReference":"bfdfe7dc352907fc980b868725387e9833eeeadaf87f9293446c2e6503e6b018","guid":"bfdfe7dc352907fc980b868725387e9856a9e184a3369ddfdbd1cbfe125f1782"},{"fileReference":"bfdfe7dc352907fc980b868725387e982bbe6ed792ae052632795dcb434acbca","guid":"bfdfe7dc352907fc980b868725387e986eb3d895a9ec01aeb92b2200ac364546"},{"fileReference":"bfdfe7dc352907fc980b868725387e9857fcd3d833ecbb849a198b46d54cd396","guid":"bfdfe7dc352907fc980b868725387e98b8f747e629fbb855691f99c8704fd31f"},{"fileReference":"bfdfe7dc352907fc980b868725387e980168900600fc5664b84a6c44348c5095","guid":"bfdfe7dc352907fc980b868725387e98d7a17589df9e850b3f0cdc0c553e4be0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cc5334f309885fa7c0c2a8be66fa576f","guid":"bfdfe7dc352907fc980b868725387e98c384c9a48e4256f5de194b70b5e699e1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98868be4213b79be77199b38ba7023ec4a","guid":"bfdfe7dc352907fc980b868725387e98a1ebf3dc11a7c3ebe69b5cebcdef7b05"},{"fileReference":"bfdfe7dc352907fc980b868725387e9853bca0bb74815f791461574c31ab1ebf","guid":"bfdfe7dc352907fc980b868725387e984c1740a509e1f69accec026b26b293a9"},{"fileReference":"bfdfe7dc352907fc980b868725387e986bf55b00b9f96ce8ca77099fc7c04d14","guid":"bfdfe7dc352907fc980b868725387e98731c03e048adaf4d6827f0549b6f95e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e9826a39b43b43da508939f64dac43651b8","guid":"bfdfe7dc352907fc980b868725387e981cd39e56a5c5cbc981622d13b7a99d16"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d14403bf648844ebe28c72dac0d061e8","guid":"bfdfe7dc352907fc980b868725387e988ff4721f04ca914aa58576981bd2779b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98832813e5ac2d4e7d21f73f0011f9a03a","guid":"bfdfe7dc352907fc980b868725387e98a8a5e80878cb724ba74fd4b959e7e2e9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a177c5fa3388e1de07e7b02a4a2d7a57","guid":"bfdfe7dc352907fc980b868725387e9867a7d1cda8d02e044fb006774f1112b3"},{"fileReference":"bfdfe7dc352907fc980b868725387e9832ecb5ed6e6f6d8101156074ef07c06e","guid":"bfdfe7dc352907fc980b868725387e98d04461d4e3bac8e568b6df054b318c82"},{"fileReference":"bfdfe7dc352907fc980b868725387e984614ae2a28f5059ffbdf1fecb4c99956","guid":"bfdfe7dc352907fc980b868725387e9850a486ed31138b2178439f325da4fa37"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b4e05b765bd1cc8c2c14395ccfe99ae4","guid":"bfdfe7dc352907fc980b868725387e98d858070454dd5e107466c4c156fcf397"},{"fileReference":"bfdfe7dc352907fc980b868725387e98753c304fe1338c9560f344e4ee011d18","guid":"bfdfe7dc352907fc980b868725387e98f790ac30ad6ca2477a290949b727b7fe"},{"fileReference":"bfdfe7dc352907fc980b868725387e986df6e9ad692ed93bf8f685436cee9b18","guid":"bfdfe7dc352907fc980b868725387e98240365a5b77dd27e8d0903b4a0d8567b"}],"guid":"bfdfe7dc352907fc980b868725387e9854046febefa330e7c48df9bb5e891c2d","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e982848e9090021f02b8d1765993f587b33"}],"guid":"bfdfe7dc352907fc980b868725387e984a72a603825bf4d18b29c43d1144a50a","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98765cd8033485da263f426f62408d0507","targetReference":"bfdfe7dc352907fc980b868725387e98ad53226b339581a6725de188f2c8f823"}],"guid":"bfdfe7dc352907fc980b868725387e98e7924eda2010605f84788fe83b760444","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98ad53226b339581a6725de188f2c8f823","name":"PromisesObjC-FBLPromises_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98f10882e1684b8a3dfdec597bc0a47af3","name":"PromisesObjC","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981c795e45f8d875aac88217c6a2a95faa","name":"FBLPromises.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=861a73f16e0756409bcc2503ac740d6f-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=861a73f16e0756409bcc2503ac740d6f-json new file mode 100644 index 0000000..673fcba --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=861a73f16e0756409bcc2503ac740d6f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982889bbbdf685bde5893929a9769c028f","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleMaps","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleMaps","INFOPLIST_FILE":"Target Support Files/GoogleMaps/ResourceBundle-GoogleMapsResources-GoogleMaps-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"15.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GoogleMapsResources","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fa9131ff5816dffe07a652dccb007f27","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9814564448a44197e8075f3f5dd8318b45","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleMaps","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleMaps","INFOPLIST_FILE":"Target Support Files/GoogleMaps/ResourceBundle-GoogleMapsResources-GoogleMaps-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"15.0","PRODUCT_NAME":"GoogleMapsResources","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98b880767390658833ef04b3aeb8d1fd81","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9814564448a44197e8075f3f5dd8318b45","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleMaps","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleMaps","INFOPLIST_FILE":"Target Support Files/GoogleMaps/ResourceBundle-GoogleMapsResources-GoogleMaps-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"15.0","PRODUCT_NAME":"GoogleMapsResources","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9817b00d8ecd2b9fd55d16f66608f2769d","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989af6104d0b3b583b803c9a1a9aa974c2","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989ca7aecfe70a6239dc499c51022ca8b3","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98ef4af8760316bbbb2082eb8f1810633d","guid":"bfdfe7dc352907fc980b868725387e9815cd79bb6b3f3d9cbd3753cb97dcf620"}],"guid":"bfdfe7dc352907fc980b868725387e98c586544232b6bf017bce73602d944bcd","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9877354dc0c1379e634078de2da2deba6b","name":"GoogleMaps-GoogleMapsResources","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98e1226e3627f386c3cc556b927e8c995d","name":"GoogleMapsResources.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=876bcfe3bcd2a9f3368ac0b12c6afe5f-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=876bcfe3bcd2a9f3368ac0b12c6afe5f-json new file mode 100644 index 0000000..0034784 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=876bcfe3bcd2a9f3368ac0b12c6afe5f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987aa197d51bdafe96a679f336c5693be9","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"shared_preferences_foundation","PRODUCT_NAME":"shared_preferences_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e986f83bf1d86816a7afe713389f3b0794c","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98062ca8af23f11ed946f6757b30222f87","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"shared_preferences_foundation","PRODUCT_NAME":"shared_preferences_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98c6ce66678a98cae8c935e06602a448e0","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98062ca8af23f11ed946f6757b30222f87","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","MODULEMAP_FILE":"Target Support Files/shared_preferences_foundation/shared_preferences_foundation.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"shared_preferences_foundation","PRODUCT_NAME":"shared_preferences_foundation","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e980f59bc0c0df185b08d92e2afa6f35dda","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e984a5a28702fa2bc41035c7b4195b0b6a2","guid":"bfdfe7dc352907fc980b868725387e98e82259888cd400660e6ae15b115eb233","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9845bc282ec8aa7540f3a569c2631d21d5","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9898462086af654cafdf68086318c87cd6","guid":"bfdfe7dc352907fc980b868725387e98fd02d1eda3186e16170f4f73c3d283d7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dbacbee193cb4e61fe7329fff091ba3f","guid":"bfdfe7dc352907fc980b868725387e98489a95f2019f3ec6e0acd5ba6de8991a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fea17a22204334550968fdb7bd1efd3a","guid":"bfdfe7dc352907fc980b868725387e9826de4802583ffb6c21e545de2d561bd8"}],"guid":"bfdfe7dc352907fc980b868725387e98f14b5d6b6d6b0c465e2f1e0eaa6bc1cd","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98475ba5d87573359032e9b06fd466a003"}],"guid":"bfdfe7dc352907fc980b868725387e9859badffc37928e123e98be61f8d11d71","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e9872e4e537a8c9a8da179493daa4c54b77","targetReference":"bfdfe7dc352907fc980b868725387e98e0be3b0d5ad56f1985578b1f97431765"}],"guid":"bfdfe7dc352907fc980b868725387e9876fd72010a5b056ae41fa1936cd39334","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98e0be3b0d5ad56f1985578b1f97431765","name":"shared_preferences_foundation-shared_preferences_foundation_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e9828cab1f188854e0a973e6ff6905c5ffe","name":"shared_preferences_foundation","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Swift","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9815af7ba71ce93f789a463577fc360420","name":"shared_preferences_foundation.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9323cd7af10a20ac4bfe78efa11f2d1f-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9323cd7af10a20ac4bfe78efa11f2d1f-json new file mode 100644 index 0000000..af3e1cd --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9323cd7af10a20ac4bfe78efa11f2d1f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982889bbbdf685bde5893929a9769c028f","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","ONLY_ACTIVE_ARCH":"NO","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2"},"guid":"bfdfe7dc352907fc980b868725387e98722c9a36dbe6dd8aa2208482bf460718","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9814564448a44197e8075f3f5dd8318b45","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e9804e21590fac81033dad42a7fb74ac14b","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9814564448a44197e8075f3f5dd8318b45","buildSettings":{"ASSETCATALOG_COMPILER_APPICON_NAME":"AppIcon","ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME":"AccentColor","CLANG_ENABLE_OBJC_WEAK":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks","SDKROOT":"iphoneos","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES"},"guid":"bfdfe7dc352907fc980b868725387e986c5e346e2538c3c5c4dbbaaa230d3ddc","name":"Release"}],"buildPhases":[{"alwaysOutOfDate":"false","alwaysRunForInstallHdrs":"false","buildFiles":[],"emitEnvironment":"false","guid":"bfdfe7dc352907fc980b868725387e985b692f5a8f32bac17eba6746d45a6ff0","inputFileListPaths":["${PODS_ROOT}/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks-input-files.xcfilelist"],"inputFilePaths":[],"name":"[CP] Copy XCFrameworks","originalObjectID":"9BD17AA848382BB1C4585A335FCA082A","outputFileListPaths":["${PODS_ROOT}/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks-output-files.xcfilelist"],"outputFilePaths":[],"sandboxingOverride":"basedOnBuildSetting","scriptContents":"\"${PODS_ROOT}/Target Support Files/GoogleMaps/GoogleMaps-xcframeworks.sh\"\n","shellPath":"/bin/sh","type":"com.apple.buildphase.shell-script"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e9877354dc0c1379e634078de2da2deba6b","name":"GoogleMaps-GoogleMapsResources"}],"guid":"bfdfe7dc352907fc980b868725387e9818352c54edac2258b91768852065ce5e","name":"GoogleMaps","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"","configurationName":"Release","provisioningStyle":0}],"type":"aggregate"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9c1ff46a3badeab38089604ac4b957d0-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9c1ff46a3badeab38089604ac4b957d0-json new file mode 100644 index 0000000..6034141 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9c1ff46a3badeab38089604ac4b957d0-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98edf33bbee7e91972546501d8a5ea8819","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geocoding_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"geocoding_ios","INFOPLIST_FILE":"Target Support Files/geocoding_ios/ResourceBundle-geocoding_ios_privacy-geocoding_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"geocoding_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e987d453e44ab26d8c410d8e4edac059a95","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980012aacba8110850068ae9e1d5ec2b1f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geocoding_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"geocoding_ios","INFOPLIST_FILE":"Target Support Files/geocoding_ios/ResourceBundle-geocoding_ios_privacy-geocoding_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"geocoding_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9808278fd41a96ccfd52789092ffedeeb5","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e980012aacba8110850068ae9e1d5ec2b1f","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geocoding_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"geocoding_ios","INFOPLIST_FILE":"Target Support Files/geocoding_ios/ResourceBundle-geocoding_ios_privacy-geocoding_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"geocoding_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e987d7001806ad353489f41c09910b3851f","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e989321801e8d1766b7c86b009b25c5df8d","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e980c6814eda726055f6fe2d368007b1737","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98b6fe5b9b88f7164e4be5580d5a323711","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98d5899e95a3b5ed550c0122700183cb38","name":"geocoding_ios-geocoding_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9823bd84c8ed80b57e296686a0f243e846","name":"geocoding_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9c8823fb141898d2d3c282834a81310c-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9c8823fb141898d2d3c282834a81310c-json new file mode 100644 index 0000000..e7da431 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=9c8823fb141898d2d3c282834a81310c-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9810636fd05cda4b4be2ac24c3541280a5","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleUtilities","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleUtilities","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"GoogleUtilities_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98aee00a2c06cf131f5e45cb69d020fbeb","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5a83b96886cb2edf9ceacb35cb7b59a","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleUtilities","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleUtilities","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"GoogleUtilities_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98cbc41a4cbbc6ec18f5b13cd35d67eae1","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a5a83b96886cb2edf9ceacb35cb7b59a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/GoogleUtilities","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"GoogleUtilities","INFOPLIST_FILE":"Target Support Files/GoogleUtilities/ResourceBundle-GoogleUtilities_Privacy-GoogleUtilities-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"GoogleUtilities_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98fcfefee6a14d2012e35df4952d5cb3f6","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984f7cdb93e07e004eb64e2cb3d531288b","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9871782e6f5bd7b7ccd25870fa4d75eeb5","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9872243415f68e8c26f9c70d0f8beb42a0","guid":"bfdfe7dc352907fc980b868725387e9871ed7e78d1ab6a08deac0964a79687aa"}],"guid":"bfdfe7dc352907fc980b868725387e985d0fb550d2d58104319221f9a426a4e4","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e981a9fac6eb9c80f8eed49fda0531af6a4","name":"GoogleUtilities-GoogleUtilities_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e981f1852a7971aaa5e479d216071487d3a","name":"GoogleUtilities_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ad65974128f9d9fa582fd1f471fca0c6-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ad65974128f9d9fa582fd1f471fca0c6-json new file mode 100644 index 0000000..fbf0e82 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ad65974128f9d9fa582fd1f471fca0c6-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98bdfa794a409e8575755a64d622769cd9","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/flutter_local_notifications/flutter_local_notifications-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/flutter_local_notifications/flutter_local_notifications-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/flutter_local_notifications/flutter_local_notifications.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"flutter_local_notifications","PRODUCT_NAME":"flutter_local_notifications","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e982559a4635e93f9e3c515af2054845c11","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9870bc7b08350d844146018ec7647687d6","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/flutter_local_notifications/flutter_local_notifications-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/flutter_local_notifications/flutter_local_notifications-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/flutter_local_notifications/flutter_local_notifications.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"flutter_local_notifications","PRODUCT_NAME":"flutter_local_notifications","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e985ee8e6d9775c703536878daf3b91242b","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9870bc7b08350d844146018ec7647687d6","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/flutter_local_notifications/flutter_local_notifications-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/flutter_local_notifications/flutter_local_notifications-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/flutter_local_notifications/flutter_local_notifications.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"flutter_local_notifications","PRODUCT_NAME":"flutter_local_notifications","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ef4bb885d921bb20c7585bfbba132bf3","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98487d44a4141755502cb7483d5114400d","guid":"bfdfe7dc352907fc980b868725387e98e7452b13b31e0df6e7676dd20a19118f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987052c322d6b0d77ddfe96c4efd1420d2","guid":"bfdfe7dc352907fc980b868725387e9875dbd3fbb4f50c63722ac5e5659a8dea","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ccdadac3f09ac35d5dfa12238752b175","guid":"bfdfe7dc352907fc980b868725387e984fb68eb4d036a0cfa2d980100d1ff6b2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984b3739256d545e98a79ff6fc34a802ab","guid":"bfdfe7dc352907fc980b868725387e9853feb73934ba7b691f39b088a6fcc04d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f2755d3c4b8488258035cc54059f3204","guid":"bfdfe7dc352907fc980b868725387e98012b00323deb639bcca28185fe24e80f","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98516a2832c7a68db3ce4c3c7f4d03c536","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98a46926607c95bc947f6d4965ff95deb6","guid":"bfdfe7dc352907fc980b868725387e98fdd1e5afbeecf2e67d2379093a87aa0a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98026e739adf3b7d061385dacab545252e","guid":"bfdfe7dc352907fc980b868725387e98c18087cf352fe5cb9ee60c7844f19d5a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858854f76dcebec981a77fece01fdac21","guid":"bfdfe7dc352907fc980b868725387e98db0df4d21a9c894aed6da93e7dbf1e88"},{"fileReference":"bfdfe7dc352907fc980b868725387e98844e635e0437206d75e79821f4d32122","guid":"bfdfe7dc352907fc980b868725387e98dfbf3677cf06a00442f84c3a80208dce"},{"fileReference":"bfdfe7dc352907fc980b868725387e9864e07e9a0210c5af9437e10ddbe6dd17","guid":"bfdfe7dc352907fc980b868725387e98d8f4e9cf9bd0e88c0332a8b64f416c44"}],"guid":"bfdfe7dc352907fc980b868725387e98c57286e7416d9f02470e16db699d9275","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98703898652b284d337cf1c856d5dd6f1c"}],"guid":"bfdfe7dc352907fc980b868725387e98c41914ba1d115e85b27abf1471fc8835","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98de403c4cfd72600d2a6ba7de36b4bc49","targetReference":"bfdfe7dc352907fc980b868725387e987434bc9491ab71790f372f1bf966d056"}],"guid":"bfdfe7dc352907fc980b868725387e987be212e223fade6cb470ab9c47f81852","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e987434bc9491ab71790f372f1bf966d056","name":"flutter_local_notifications-flutter_local_notifications_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98f49b18868e69e442795477541dae1d9f","name":"flutter_local_notifications","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98b85276e53a4583cee7a183c9d2fc893d","name":"flutter_local_notifications.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=af0c014b6f2e262eb4dd2dff194b319f-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=af0c014b6f2e262eb4dd2dff194b319f-json new file mode 100644 index 0000000..ed00030 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=af0c014b6f2e262eb4dd2dff194b319f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982b1a2e6a05bf006e8da499a313201ffd","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/nanopb","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"nanopb","INFOPLIST_FILE":"Target Support Files/nanopb/ResourceBundle-nanopb_Privacy-nanopb-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"nanopb_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98d32a8cd06c3c3784a189b4dc091f48dc","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eec79f52c283202bb2af70351c694dc3","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/nanopb","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"nanopb","INFOPLIST_FILE":"Target Support Files/nanopb/ResourceBundle-nanopb_Privacy-nanopb-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"nanopb_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a7cf14266a2fa091507206cbcdc80d71","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eec79f52c283202bb2af70351c694dc3","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/nanopb","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"nanopb","INFOPLIST_FILE":"Target Support Files/nanopb/ResourceBundle-nanopb_Privacy-nanopb-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"nanopb_Privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98851409134df5b55fedaf03b21ce71b2c","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d9356824551266f09ffc403145d112ee","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e986f0239bb359454c4b8c3fd93e12738ef","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9827a6ba5b75b5406d9c84abd02d00019d","guid":"bfdfe7dc352907fc980b868725387e98d4bc125bfe2666844c822968cc3a8335"}],"guid":"bfdfe7dc352907fc980b868725387e98dbc239e52ba8aa81d14feb30be7d9a3e","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98c9e4d77647dbd2f60d4df5fb297112b6","name":"nanopb-nanopb_Privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98eef91895065d6940077eed40aa23053b","name":"nanopb_Privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=af39109b0974bab470d89741bc7ee4e8-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=af39109b0974bab470d89741bc7ee4e8-json new file mode 100644 index 0000000..d514fc8 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=af39109b0974bab470d89741bc7ee4e8-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9850cc7fc2d23136fb4fac488d6c47df20","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e988ae806990b5c4fafb569becee6db5f61","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98dc1a21852c7a085c7dd8f65cf0fa9907","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98bea4aa8c3710d128d210c07e23943c83","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f17abf55d75f35efcaf45a1185b085b6","buildSettings":{"ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES":"NO","CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","INFOPLIST_FILE":"Target Support Files/Pods-Runner/Pods-Runner-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Pods-Runner/Pods-Runner.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","OTHER_LIBTOOLFLAGS":"","PODS_ROOT":"$(SRCROOT)","PRODUCT_BUNDLE_IDENTIFIER":"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}","PRODUCT_NAME":"$(TARGET_NAME:c99extidentifier)","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98cdf59f1b96680a332e28ebeb1b1e799b","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e980ec6fbca7264a6936f2adfc48dd7f5bc","guid":"bfdfe7dc352907fc980b868725387e986b84878d014981ad15cb88f632824db5","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e984b7f80fdb3c7ba0447d08b8901a4e14c","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fed0970e703d355c9aff813f280aafdc","guid":"bfdfe7dc352907fc980b868725387e98e8207b96c5fc82047d21f37580d6ce09"}],"guid":"bfdfe7dc352907fc980b868725387e982938f41e2f7a03d2fe1ef3d4d615a526","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98eebf3a99c2036273cfe14b038bdb38dd"}],"guid":"bfdfe7dc352907fc980b868725387e987c0d6d5fadc853475137676853ef5df0","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9889a574da159404f30ec23617a078646d","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98d57b8bce60a0f11113f4cff532db68d3","name":"Firebase"},{"guid":"bfdfe7dc352907fc980b868725387e984d1b80eb520d7ec9828b3cb4e14dcb65","name":"FirebaseABTesting"},{"guid":"bfdfe7dc352907fc980b868725387e98a408a4c1f668e62161cdeba76f57d50c","name":"FirebaseCore"},{"guid":"bfdfe7dc352907fc980b868725387e98020791fd2e7b7ddc8fb2658339c42e16","name":"FirebaseCoreInternal"},{"guid":"bfdfe7dc352907fc980b868725387e98199a81f5741b3962673be6786c5317da","name":"FirebaseInAppMessaging"},{"guid":"bfdfe7dc352907fc980b868725387e98566ec9a1d71c4629f4f85ecb735ce614","name":"FirebaseInstallations"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98117b13c59de776c223f2f14af197afb1","name":"Google-Maps-iOS-Utils"},{"guid":"bfdfe7dc352907fc980b868725387e9818352c54edac2258b91768852065ce5e","name":"GoogleMaps"},{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"},{"guid":"bfdfe7dc352907fc980b868725387e98f10882e1684b8a3dfdec597bc0a47af3","name":"PromisesObjC"},{"guid":"bfdfe7dc352907fc980b868725387e98144902882b713248a71c322fd5b2f4ee","name":"connectivity_plus"},{"guid":"bfdfe7dc352907fc980b868725387e987f74324bfc5c78140e34d510e26e00c1","name":"firebase_core"},{"guid":"bfdfe7dc352907fc980b868725387e9885df5804930ddb974cecdbb23c87d40f","name":"firebase_in_app_messaging"},{"guid":"bfdfe7dc352907fc980b868725387e98397d1949c19933d656e15d632cccabfd","name":"flutter_keyboard_visibility"},{"guid":"bfdfe7dc352907fc980b868725387e98f49b18868e69e442795477541dae1d9f","name":"flutter_local_notifications"},{"guid":"bfdfe7dc352907fc980b868725387e98839a1650b1f10605b2db52456c9e6468","name":"fluttertoast"},{"guid":"bfdfe7dc352907fc980b868725387e98a9264f727d973888bb984bf45da252f2","name":"geocoding_ios"},{"guid":"bfdfe7dc352907fc980b868725387e9821d372cc1e7c7587a12aeda843619e39","name":"geolocator_apple"},{"guid":"bfdfe7dc352907fc980b868725387e98df83286ef0c813795b2a6e5600f49912","name":"google_maps_flutter_ios"},{"guid":"bfdfe7dc352907fc980b868725387e981f000f066404b97b12e9c4ca84d38d0f","name":"image_picker_ios"},{"guid":"bfdfe7dc352907fc980b868725387e989152bf3b88a1e7242d5cb4c469a589c6","name":"location"},{"guid":"bfdfe7dc352907fc980b868725387e980062393f91a1d2d94e3e5ed3a5aa5da9","name":"nanopb"},{"guid":"bfdfe7dc352907fc980b868725387e98a5ae7244e41cc249cf7186dbb9962ecb","name":"package_info_plus"},{"guid":"bfdfe7dc352907fc980b868725387e9830037b09fee48cfce1f8562d753688c8","name":"path_provider_foundation"},{"guid":"bfdfe7dc352907fc980b868725387e98ef10255b706f98e1e88fae00855b0968","name":"permission_handler_apple"},{"guid":"bfdfe7dc352907fc980b868725387e986f2ea8130593aae06b228898a6c3087d","name":"rive_native"},{"guid":"bfdfe7dc352907fc980b868725387e9828cab1f188854e0a973e6ff6905c5ffe","name":"shared_preferences_foundation"},{"guid":"bfdfe7dc352907fc980b868725387e9892091fbd13cae315d11679e8b8d08c5b","name":"smart_auth"},{"guid":"bfdfe7dc352907fc980b868725387e98e12182d29f945a15cf9d2a115b919169","name":"sms_autofill"},{"guid":"bfdfe7dc352907fc980b868725387e981304d3d2169071b3ca365b19f5340b7c","name":"sqflite_darwin"},{"guid":"bfdfe7dc352907fc980b868725387e98903e66fa03d6d27edaa18126a82c20fd","name":"url_launcher_ios"},{"guid":"bfdfe7dc352907fc980b868725387e988efdc4dd0ac29b43123295eca853f4ed","name":"webview_flutter_wkwebview"}],"guid":"bfdfe7dc352907fc980b868725387e98312b4bc59bbbe2c06c205bf4da6737f5","name":"Pods-Runner","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98699846e06e93b50cafdb00290784c775","name":"Pods_Runner.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b3979d748f74350c46e69d6ce018e6ff-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b3979d748f74350c46e69d6ce018e6ff-json new file mode 100644 index 0000000..94fcbf2 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b3979d748f74350c46e69d6ce018e6ff-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a263fd221541734798ccc759929cd54b","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/google_maps_flutter_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"google_maps_flutter_ios","INFOPLIST_FILE":"Target Support Files/google_maps_flutter_ios/ResourceBundle-google_maps_flutter_ios_privacy-google_maps_flutter_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"14.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"google_maps_flutter_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e988dffdcb136477f910c4a86a82687cdc0","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c7e8b3a905ece34a84a70af1409fbe9f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/google_maps_flutter_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"google_maps_flutter_ios","INFOPLIST_FILE":"Target Support Files/google_maps_flutter_ios/ResourceBundle-google_maps_flutter_ios_privacy-google_maps_flutter_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"14.0","PRODUCT_NAME":"google_maps_flutter_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9829eeba79e0f2425feb31de570f986511","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c7e8b3a905ece34a84a70af1409fbe9f","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/google_maps_flutter_ios","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"google_maps_flutter_ios","INFOPLIST_FILE":"Target Support Files/google_maps_flutter_ios/ResourceBundle-google_maps_flutter_ios_privacy-google_maps_flutter_ios-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"14.0","PRODUCT_NAME":"google_maps_flutter_ios_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98ac40098fb9ce0fe5317787794b4deb99","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e981d07a0e3cad4ddcabe6c704479db6140","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98d9eded32f3e0d354869c5b6c3b3dd832","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e982979a5625dda625dc1c5ceb83fc7bb69","guid":"bfdfe7dc352907fc980b868725387e98145142a50c70fddbe1f95325ea60ca6b"}],"guid":"bfdfe7dc352907fc980b868725387e98181e0ac4f010fc5fd42a232d70d70402","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9845fff747e8d3c707f1d7451d71a9982f","name":"google_maps_flutter_ios-google_maps_flutter_ios_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98cf9c4c549797cf8d51278c32a04fd48d","name":"google_maps_flutter_ios_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b7cfdb19eba991e47751deddb3237f55-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b7cfdb19eba991e47751deddb3237f55-json new file mode 100644 index 0000000..ac66bbb --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=b7cfdb19eba991e47751deddb3237f55-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eb9d725b7a2c82f64dfe553020ca8c12","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"FirebaseInstallations","PRODUCT_NAME":"FirebaseInstallations","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98d7489d3ea2264dd154566ae7678b982e","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986216caa578cc31c3ef154bd2a922bf1d","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap","PRODUCT_MODULE_NAME":"FirebaseInstallations","PRODUCT_NAME":"FirebaseInstallations","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9896dbddd31ab0f6e164a507aee6b63a26","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986216caa578cc31c3ef154bd2a922bf1d","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/FirebaseInstallations/FirebaseInstallations-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/FirebaseInstallations/FirebaseInstallations.modulemap","PRODUCT_MODULE_NAME":"FirebaseInstallations","PRODUCT_NAME":"FirebaseInstallations","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e983d9acef30c0c68fac5ae0f15e3fc740d","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9820c469dbcea71d5844db7e67e351fe84","guid":"bfdfe7dc352907fc980b868725387e98e53e402511de3f80b33eb548e1490091"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cddeb58a7c97bb3dab7d7642cd19ae2d","guid":"bfdfe7dc352907fc980b868725387e984135e420bc89236df15ea6830a158a77"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806d78a768ff8ab7a758cfb9603bf40ec","guid":"bfdfe7dc352907fc980b868725387e982713acc71677244c02c91b45c035e840"},{"fileReference":"bfdfe7dc352907fc980b868725387e985e47eacb98c853c03d1c461451fc4b9a","guid":"bfdfe7dc352907fc980b868725387e98da1aa17c45000418da0ab6e8df4e78d5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d7e39e1934f7ae5b1c9dd02e84fea0e3","guid":"bfdfe7dc352907fc980b868725387e98be118685da823ba8fd6eb303123ef469"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ba006882a99110cb5753cea2323b5b0e","guid":"bfdfe7dc352907fc980b868725387e98bff68fc986e529a9ecf8f339d6f118cf"},{"fileReference":"bfdfe7dc352907fc980b868725387e982196d4a5cef0c567b458f6c0f541ad62","guid":"bfdfe7dc352907fc980b868725387e985e4b573f2356096d8af607e9beeac256","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982d5adbecdeee8f6c3a53589fa3a535e6","guid":"bfdfe7dc352907fc980b868725387e98dfcacf8838144722b833fa44cea189ea","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e37c6f8f8344b2f3297534e9d00daceb","guid":"bfdfe7dc352907fc980b868725387e988deda5263c74125fbfccff24690d057d"},{"fileReference":"bfdfe7dc352907fc980b868725387e988065da28eaeed9ed7c40a9a709fd0030","guid":"bfdfe7dc352907fc980b868725387e983c7bda4983745d045ef6d2d7a37798ed"},{"fileReference":"bfdfe7dc352907fc980b868725387e9832a7ef721da7a2ea6fd5e12568d27cbe","guid":"bfdfe7dc352907fc980b868725387e98c65a2e4e06950089aa8480c6ff110953","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983df491bcc93a0a8284a0f6f09af6ee68","guid":"bfdfe7dc352907fc980b868725387e980bdb7180d387f36e1d84a297343b6c62"},{"fileReference":"bfdfe7dc352907fc980b868725387e984e7a243490266e4b960cd2da26a9e583","guid":"bfdfe7dc352907fc980b868725387e98e83cd1ff0c8fca1ca9be275e7956e396","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ce209b23ae1e621f49d48449559a5fb5","guid":"bfdfe7dc352907fc980b868725387e983d217b4f5770f31df39897e30135ee69"},{"fileReference":"bfdfe7dc352907fc980b868725387e98cfd4fb72b7e3e26e7987f26d76841f34","guid":"bfdfe7dc352907fc980b868725387e980e66e99728a224c8ff5c8e43d553e0d5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876809ee029e263e58124f75ececa0ccc","guid":"bfdfe7dc352907fc980b868725387e98937ec47b58617100dfa52067cd739f08","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98815902a0b8ff3ba9863db1b8dfce8f10","guid":"bfdfe7dc352907fc980b868725387e98856c3ccdddb709f9c499c7a443ba9ec7"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c520b0cc8554c94284f144b9388e8da4","guid":"bfdfe7dc352907fc980b868725387e986608e7112500a5d5c0b60dba2398b082"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca70bbdad1caf72287dae5c12035ed52","guid":"bfdfe7dc352907fc980b868725387e982b622fc19ff2831dc3db2bfed0683102"},{"fileReference":"bfdfe7dc352907fc980b868725387e9804e0416cbfaa63014674d63930914e61","guid":"bfdfe7dc352907fc980b868725387e983e2d94802cdbd0c8842dfc2c35e9d69e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98db5a5e84c0437759e4cd8d9eb1584455","guid":"bfdfe7dc352907fc980b868725387e986986f0f85c0864623e9e41a955084b4c"},{"fileReference":"bfdfe7dc352907fc980b868725387e985a8653e5eb0b04443ea30b1a758c09c3","guid":"bfdfe7dc352907fc980b868725387e98c89d7c779cd2ac14732ccb22ffb425a8"},{"fileReference":"bfdfe7dc352907fc980b868725387e9823934ba054b61b5c07a51f400e3a8a60","guid":"bfdfe7dc352907fc980b868725387e98df003fbf4ad39d39bc1b45644e50deda"},{"fileReference":"bfdfe7dc352907fc980b868725387e98280a4ce5a029aaf99226bb101ff336b8","guid":"bfdfe7dc352907fc980b868725387e98dd1b111b22419135dcce91e1af414d10"},{"fileReference":"bfdfe7dc352907fc980b868725387e985501e45a0d01a54458116f637f5a0cbf","guid":"bfdfe7dc352907fc980b868725387e984e6dec98f6c6fe3f511d84b5bd5dc049"},{"fileReference":"bfdfe7dc352907fc980b868725387e980dccd05639cce8e66421f92c13d7af65","guid":"bfdfe7dc352907fc980b868725387e984373aeb4a10afb450b83aaf1c2a52f14"},{"fileReference":"bfdfe7dc352907fc980b868725387e98700255ae1b3e8d373316e7f65525c5f1","guid":"bfdfe7dc352907fc980b868725387e98e53bfbf599e4a0e88458acdce8f2ec3a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98703cd2412a51d31bd99ed23881658e48","guid":"bfdfe7dc352907fc980b868725387e98955665f1061ce87d7038e3ee29447a19"},{"fileReference":"bfdfe7dc352907fc980b868725387e986f52bc3af5fc7923d3326581cb95c80f","guid":"bfdfe7dc352907fc980b868725387e98a5d2784cfb1b025a3987ef6261c2ee16"},{"fileReference":"bfdfe7dc352907fc980b868725387e9859890f280feb0e23c6db6efac1c6f775","guid":"bfdfe7dc352907fc980b868725387e988a11fbf8a7f706dadaaab25459d192a0"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e471aafa8b6ecce9e3a576df03e9b596","guid":"bfdfe7dc352907fc980b868725387e983a8fe183a52dadac696030ee461cb3bf"}],"guid":"bfdfe7dc352907fc980b868725387e98adead1c8a42c5a1c8fb4bcd3d528ff53","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98595b48a778d03287f4643c53dbd86ef8","guid":"bfdfe7dc352907fc980b868725387e98ac81676a48250f8be92be5da5e90f005"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eb6b72891d593610c1d209106bc5de6d","guid":"bfdfe7dc352907fc980b868725387e9880c0cf6d28f7a45af53a472f9c1f4e06"},{"fileReference":"bfdfe7dc352907fc980b868725387e9864e3d2778de8be17cf6aabfa269112c2","guid":"bfdfe7dc352907fc980b868725387e98b2f6caf6552498e22b30358d9912e493"},{"fileReference":"bfdfe7dc352907fc980b868725387e983eb4567a9312f88211cabde7cc0d5bb5","guid":"bfdfe7dc352907fc980b868725387e98acc40e100f2a4d86a7a154ccc46f6d71"},{"fileReference":"bfdfe7dc352907fc980b868725387e980964dd0d9a4700326a3827425fb64885","guid":"bfdfe7dc352907fc980b868725387e9839edd598656e5cead3c438991f01af10"},{"fileReference":"bfdfe7dc352907fc980b868725387e9864f6331c340d6b06883d2b3e2f962269","guid":"bfdfe7dc352907fc980b868725387e98c5f03f782bc870633c60c48caa1ee4c6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98675b5e89143ac3b156d205175bcae2db","guid":"bfdfe7dc352907fc980b868725387e98240c984edd5969acb0f8f40806543448"},{"fileReference":"bfdfe7dc352907fc980b868725387e9867261dc432fb73b240a154d72043f9b2","guid":"bfdfe7dc352907fc980b868725387e98a445e8d752e71444e64cc793d56876d5"},{"fileReference":"bfdfe7dc352907fc980b868725387e9871032e1165cc37bd3d04fd6589a46655","guid":"bfdfe7dc352907fc980b868725387e98677d5de2677494f8e3de3806bb13cb4b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f57a55c4af26ffae0d7931f12473cf2a","guid":"bfdfe7dc352907fc980b868725387e98bb8f6ff6ff32c48d275125cd28881302"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b380235b7d661eb3c463d45782e44cf8","guid":"bfdfe7dc352907fc980b868725387e98a61899b806b057dc904139e6bc387e95"},{"fileReference":"bfdfe7dc352907fc980b868725387e98175ad08e0dce3d06ee01913227a1504a","guid":"bfdfe7dc352907fc980b868725387e98ac225c081134665b621aac16b515f108"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b95b56e55359badfed2d7ff9e9e0ccfe","guid":"bfdfe7dc352907fc980b868725387e98bc83bdf8b8b20bf1f3efb69fec46cd68"},{"fileReference":"bfdfe7dc352907fc980b868725387e986395eea2472d1117d7539c0d9864061f","guid":"bfdfe7dc352907fc980b868725387e98476bc4ee968c540eb601baf9a61534ee"},{"fileReference":"bfdfe7dc352907fc980b868725387e9851797e33341a3bd1c1332b135f8c3fff","guid":"bfdfe7dc352907fc980b868725387e984c680800d2880e9ecc87129dd0f93321"},{"fileReference":"bfdfe7dc352907fc980b868725387e982b6f32fe2372aa125be7ed1fed1ee0f8","guid":"bfdfe7dc352907fc980b868725387e98100cf9ffebda9fbfc253c2e3d3b0c686"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895bf281ee6128ce8d8341f63e9f26092","guid":"bfdfe7dc352907fc980b868725387e98fdd9271943849177c9774a65db9b3dca"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f5a49f8f0ffcbd25af5eea40e60b0a0a","guid":"bfdfe7dc352907fc980b868725387e9891f095177dcb561a72f4204f2accb8a2"}],"guid":"bfdfe7dc352907fc980b868725387e987f44614606c663f03b08183dc1023d1e","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98af2edae32099b0f2503902990355bf81"},{"fileReference":"bfdfe7dc352907fc980b868725387e980b3a3e4fe9e04a7b642b72fa79239746","guid":"bfdfe7dc352907fc980b868725387e98274a9bb6ff57d1d1f4dc66a3a0722f2e"}],"guid":"bfdfe7dc352907fc980b868725387e986bef7f8489e5e5f58bd16411f8067f0b","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98467ce21df73caa64c3207d47a7be134f","targetReference":"bfdfe7dc352907fc980b868725387e984535f130e81fa6507008242e4e8916fc"}],"guid":"bfdfe7dc352907fc980b868725387e9827d8a2b26623f21777a7ddef236b8bff","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98a408a4c1f668e62161cdeba76f57d50c","name":"FirebaseCore"},{"guid":"bfdfe7dc352907fc980b868725387e984535f130e81fa6507008242e4e8916fc","name":"FirebaseInstallations-FirebaseInstallations_Privacy"},{"guid":"bfdfe7dc352907fc980b868725387e98718890dfdac589615663a02d43d9af3e","name":"GoogleUtilities"},{"guid":"bfdfe7dc352907fc980b868725387e98f10882e1684b8a3dfdec597bc0a47af3","name":"PromisesObjC"}],"guid":"bfdfe7dc352907fc980b868725387e98566ec9a1d71c4629f4f85ecb735ce614","name":"FirebaseInstallations","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e9860819b8e327bf41b291e92315614a812","name":"FirebaseInstallations.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=c0a1c1d8a4b3b0d4f7f24b05e0231096-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=c0a1c1d8a4b3b0d4f7f24b05e0231096-json new file mode 100644 index 0000000..466a95a --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=c0a1c1d8a4b3b0d4f7f24b05e0231096-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e987aa197d51bdafe96a679f336c5693be9","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/shared_preferences_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"shared_preferences_foundation","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"shared_preferences_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98d99b136781764787f3c5238389475365","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98062ca8af23f11ed946f6757b30222f87","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/shared_preferences_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"shared_preferences_foundation","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"shared_preferences_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98673ff900fc6f0d7a2e5d6a9de28fa0ae","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98062ca8af23f11ed946f6757b30222f87","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/shared_preferences_foundation","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"shared_preferences_foundation","INFOPLIST_FILE":"Target Support Files/shared_preferences_foundation/ResourceBundle-shared_preferences_foundation_privacy-shared_preferences_foundation-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"shared_preferences_foundation_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e988e761d634dc840d08deb2cbc2596c373","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e984bde5f7efd4f7d7d07b112abf388e8c0","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98bcb0040c5348a378795c8fdd6e869b84","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98cd5fadcc72bda6dd9da303d5f422b13e","guid":"bfdfe7dc352907fc980b868725387e989805d90cdd25469ed7cb565e485e4323"}],"guid":"bfdfe7dc352907fc980b868725387e98708610b732ff7e68065abff37e6b9e7f","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98e0be3b0d5ad56f1985578b1f97431765","name":"shared_preferences_foundation-shared_preferences_foundation_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ad625504a4c1e61077bbfd33bd1d1785","name":"shared_preferences_foundation_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=c49458fb5f351aeac72caf15704a0996-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=c49458fb5f351aeac72caf15704a0996-json new file mode 100644 index 0000000..d39c2c9 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=c49458fb5f351aeac72caf15704a0996-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e984e5ddf305b15e328b278f7ec613cd72f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"GoogleMapsUtils","PRODUCT_NAME":"GoogleMapsUtils","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98604d2e776adf866db3efae01c8ff4220","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982deaf7ef5abb8babe5030989e83fee12","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap","PRODUCT_MODULE_NAME":"GoogleMapsUtils","PRODUCT_NAME":"GoogleMapsUtils","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e983e7413ffba1efa280a640a18ef4094e7","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982deaf7ef5abb8babe5030989e83fee12","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"15.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/Google-Maps-iOS-Utils/Google-Maps-iOS-Utils.modulemap","PRODUCT_MODULE_NAME":"GoogleMapsUtils","PRODUCT_NAME":"GoogleMapsUtils","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e985d511d2a37011e446abc9db6276683e9","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98e96e6192f0a8fcfdfdd224f69fdcd788","guid":"bfdfe7dc352907fc980b868725387e980bc126af0d50c33b848e3d4df147eba8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ac934706ef8d7710d61b1e7ad7798691","guid":"bfdfe7dc352907fc980b868725387e981ca15603b15285cb017f21c30281bb92","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98297406ca1608ec542f34c4ae841d18f0","guid":"bfdfe7dc352907fc980b868725387e98fb6b7e37229435930de9154a3286013c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9835a82c427d24fa0d2cf25bb13a56b41c","guid":"bfdfe7dc352907fc980b868725387e98757b3bb2a60f425321166ba3d41dc529","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9875694458243355f1c4f44c040855a7c5","guid":"bfdfe7dc352907fc980b868725387e9857ff4c86f8be647184ef8a336bfb36aa","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fdcf9b2e39801846d82118309fa0b256","guid":"bfdfe7dc352907fc980b868725387e98a99d9f2e0e182d25b53e4c4d487dcf8f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98003cee3523479618d33d7cb551bdc05c","guid":"bfdfe7dc352907fc980b868725387e9854994ff5ca73efed5a8dccc130de0b3f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e4163f4d5120a483df7c711ffbd3193","guid":"bfdfe7dc352907fc980b868725387e984bb8c4b188e3c079e28b981018beb3d0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9816e7e836475268e2771ea998b5b72998","guid":"bfdfe7dc352907fc980b868725387e98864fa0da1684e4ae480cf9555fcac616","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a78c066a134c6872eabccd98df725c61","guid":"bfdfe7dc352907fc980b868725387e98c42ba9108b307fd0dc79a78cfdf30352","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981d73156654b952e73e7d69ccb483e6be","guid":"bfdfe7dc352907fc980b868725387e9800a4340d964387194f8caae468df01f2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d4829719c78e5a42631f086e64c14520","guid":"bfdfe7dc352907fc980b868725387e98a56c8961b713f77576696b87b5e385a1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9847435f83bc9fe0f2e7f14a4da2d0d417","guid":"bfdfe7dc352907fc980b868725387e9826190ea268930b892c5ea0ab976ef93f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dfeb246ee35d5adae71937d612b0572c","guid":"bfdfe7dc352907fc980b868725387e98f82280d55c8416b3b83ec7d4c804903e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980942a06393cc7e4d9da2ee4b6ea2c41a","guid":"bfdfe7dc352907fc980b868725387e98d6ee06b1efe28a4d9404588761999ed3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986036d1ed80b879c44cdd01792564138e","guid":"bfdfe7dc352907fc980b868725387e9878109cb5d165bdd12bd3d56c92d0a5f3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9802af5b3c8d369e5339cfd5e25a5b3cfe","guid":"bfdfe7dc352907fc980b868725387e985c40bc039fc56a1997df86b0e5388485","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ea450a1aab71ddd9a6d2d858ec9796a1","guid":"bfdfe7dc352907fc980b868725387e986e77d62d9c982dcfc2b06a66beee49e1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986fa8ae482b8bb2aafe5eb722c57819ab","guid":"bfdfe7dc352907fc980b868725387e9827bd198a2b0d74f76aa79029bfbdb9c2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988ae9164f315836dcf9f0e5f1e8688bde","guid":"bfdfe7dc352907fc980b868725387e98aed3413fb0764d3ea679da9ad0eb79fe","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985f2ea4e68272257a9db4e8f11e3593eb","guid":"bfdfe7dc352907fc980b868725387e98a589f08bc84633c06e38d4335493f190","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893a39e36c1e0494157a9891708917545","guid":"bfdfe7dc352907fc980b868725387e98cceb9b2b981481a423868c4c3978c6fd","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c483d93a51931e08b8b5fba53347a019","guid":"bfdfe7dc352907fc980b868725387e9832130177668ab910d027344f5f8f26a8","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f43a2156490649419a1a144f32315aea","guid":"bfdfe7dc352907fc980b868725387e9808b17a852eb76e71ace8b551f4b8da56","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858a47251f435d160d293efa459c82d06","guid":"bfdfe7dc352907fc980b868725387e98c5bf3360f3cf8db3366045eb6bb41585","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e987a025a1eaba06014e2bfcc38aef69b2a","guid":"bfdfe7dc352907fc980b868725387e98f07567e7a3e15cfbeddb3b1b61af43f0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98af36be62118ca01dfeda1ceec5ee8dff","guid":"bfdfe7dc352907fc980b868725387e98dacb542c669bb0bdc627ad2670436a9b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9874969872273fb9483a975ecef003f657","guid":"bfdfe7dc352907fc980b868725387e98f6d40f4660d3b9adfcbdcae7a34f5a07","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9803444454650be84f83765bc7b18673da","guid":"bfdfe7dc352907fc980b868725387e9877533e4ab9406d96a2586427bf12e534","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986ef6abcf57fdad0477202156df9ea31e","guid":"bfdfe7dc352907fc980b868725387e98a6122e76d9dbde6b41e7eb6580881314","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98979c6c0a11bea7f271819534e7f7dd88","guid":"bfdfe7dc352907fc980b868725387e98b11117b5c6d6b59b839b5ba3c9b5c07c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e3f019749535b07acc8145a992bd2625","guid":"bfdfe7dc352907fc980b868725387e98aad7a1aa688219c7eb5540dae7040fe2","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985753ef3fd6a1c3a63c3f0c60fce61862","guid":"bfdfe7dc352907fc980b868725387e98e2eba1fb0a80de1c41fe92f112e46a0a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981c95d1d62e0bae3ea2fc68b1a9a6789a","guid":"bfdfe7dc352907fc980b868725387e988908258bafaa5fa978fe4f612f3c936b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c6f0ee9f5a579a51aa5eabb92b1996ae","guid":"bfdfe7dc352907fc980b868725387e9866d13c12cdd1261ed652fc64e5b9a98d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fcfd986d77afcc6095214a15564f845b","guid":"bfdfe7dc352907fc980b868725387e985e1faa9bb06604de4c24ad2c65202583","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9841e0d9ead2e75f9c0547eadbaf603ebd","guid":"bfdfe7dc352907fc980b868725387e98eb487c20e34367d3865c5c8190669bec","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f7e48b78c10132ef1157c58fcb44a8c0","guid":"bfdfe7dc352907fc980b868725387e98159f17ec64730260abf74d3c8325430d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b7a8743f7a79cf2a707386ad015dc2cd","guid":"bfdfe7dc352907fc980b868725387e98c7f89498bacbc50d4ad578ba808bd591","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa46525b645af3b060ae70cb2a04d7b1","guid":"bfdfe7dc352907fc980b868725387e989078881955b210a7c2e0c00368fed91a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983c8fb430362bc6df2404bb19aed1e18a","guid":"bfdfe7dc352907fc980b868725387e98a1e0f65fe50d40deb6c04a606e08f942","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988124f4cca2b144d1b6d313671c790a95","guid":"bfdfe7dc352907fc980b868725387e986bff559e40fe5da84fce2ecc16bf2364","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982e36e3f0418abfbd1231d14afc3e431e","guid":"bfdfe7dc352907fc980b868725387e98d006be67e37ec81940472c03654bfd2f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9837a371f82480ad93e46e3390de6d3efa","guid":"bfdfe7dc352907fc980b868725387e986de07e074d8c3f5becb31e15cf4fafa3","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9868e3d3f5f49dd91556147e7cd4012045","guid":"bfdfe7dc352907fc980b868725387e983e3e7c27f2adf38629d5a4be2efb0064","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9846c6b2f7df326fb256cdde26a12e233f","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98c0d3f4b37037c3d39f79a0c62a98471d","guid":"bfdfe7dc352907fc980b868725387e98a5648b9081186db166e85cac17d23a6c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98caae3a3d507e5336371c300b77c58230","guid":"bfdfe7dc352907fc980b868725387e986a3528c9c3e28232f39ac86347327a86"},{"fileReference":"bfdfe7dc352907fc980b868725387e98133f968dd789799e2c1b85847cd31a6b","guid":"bfdfe7dc352907fc980b868725387e98bd963f9860264537e25b92949fd28b88"},{"fileReference":"bfdfe7dc352907fc980b868725387e9856464b8feb66ef58513ee6aa27cb2dc2","guid":"bfdfe7dc352907fc980b868725387e982ce5b64449a184a834f87567cc1a64f6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895314d005643d36685ba650438530b36","guid":"bfdfe7dc352907fc980b868725387e9818e0da3e9a9cd374dd9fac5b161a1ce6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a5c0e23f67fc0272b3fa48297e93642d","guid":"bfdfe7dc352907fc980b868725387e986c0c5d31a31deb997ac5ffd774c096c2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9859167a39d09ad33ef183ac0350c3100e","guid":"bfdfe7dc352907fc980b868725387e984b0d38cecc626956a13db411295e7f2e"},{"fileReference":"bfdfe7dc352907fc980b868725387e985aa669feff48625e3b54542ede3b4e3a","guid":"bfdfe7dc352907fc980b868725387e98cf1119d1216c5ae8957933ef41771e00"},{"fileReference":"bfdfe7dc352907fc980b868725387e989efb35952ff99864e6b34dcd9594e3cf","guid":"bfdfe7dc352907fc980b868725387e9897ba994fb7fd177e59b87839993d3a3e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9895c3c7f171400da55b1d36abfbec1ff1","guid":"bfdfe7dc352907fc980b868725387e98171b9fefae944ae31e11fdd309128dd6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c464415c95529785e2b6c3cc2a912b3d","guid":"bfdfe7dc352907fc980b868725387e98c68cb341553da18a9ad8bbe166319303"},{"fileReference":"bfdfe7dc352907fc980b868725387e981410398979eac49a4ed9b1afab247856","guid":"bfdfe7dc352907fc980b868725387e983ac583f1f547e3a7c184751c981a64f5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b690822b87fb6878925c4d1e8a61423f","guid":"bfdfe7dc352907fc980b868725387e985bca98380c04be8f540b8aa4730622d2"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a39a441a56ff7061d47c86c86eced79","guid":"bfdfe7dc352907fc980b868725387e9858f5469e53c6eb704ca502a275e6a6b1"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d9178511d3feba07fc7b605fbd80eaa8","guid":"bfdfe7dc352907fc980b868725387e9826a05f7301ee9e3061d4940fc87a34c1"},{"fileReference":"bfdfe7dc352907fc980b868725387e988e1b033ce1851897bcaf8238114490bd","guid":"bfdfe7dc352907fc980b868725387e98a2f196effe5382f24ec889260b442d3e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98254cb82bf7bb852a6a26e3dfaa5b1720","guid":"bfdfe7dc352907fc980b868725387e9814cb6f649022a81887e5544fba87bf35"},{"fileReference":"bfdfe7dc352907fc980b868725387e982dcfbf893a6c2340990a2fdb4328c19a","guid":"bfdfe7dc352907fc980b868725387e98c36afd8100388ee352795a5c47d248a9"},{"fileReference":"bfdfe7dc352907fc980b868725387e9886a2d8b9519c0ac3762873da3b0333bd","guid":"bfdfe7dc352907fc980b868725387e98fdf461cd989237ea6c04a23fdffb89f7"},{"fileReference":"bfdfe7dc352907fc980b868725387e9810b72fe8a74d85bf3af3feee77f40b89","guid":"bfdfe7dc352907fc980b868725387e98a24f1fc1a3933e455c4dcf199bfc1fdb"},{"fileReference":"bfdfe7dc352907fc980b868725387e984feeef293e533e4753e258263f510280","guid":"bfdfe7dc352907fc980b868725387e98500989c389ee0ad0d93bcb2b5ce48af4"},{"fileReference":"bfdfe7dc352907fc980b868725387e985f9e334bfd69353154a5ccf2fd19c7ff","guid":"bfdfe7dc352907fc980b868725387e98142ea60047f99126147226666c395e86"},{"fileReference":"bfdfe7dc352907fc980b868725387e9876c310a5cf1a0440d11aed0f9e2309c6","guid":"bfdfe7dc352907fc980b868725387e989ffbaa49f89e709fa1f9f5e1413e5dcf"},{"fileReference":"bfdfe7dc352907fc980b868725387e98861587e93463f0bdac57ee51ddbc4c2b","guid":"bfdfe7dc352907fc980b868725387e986efd791bee701e9f7f1a350aa84e8e57"},{"fileReference":"bfdfe7dc352907fc980b868725387e98046bccd735084ba5c68cfa9312ce65c1","guid":"bfdfe7dc352907fc980b868725387e9857b8053922b8ac7a29f179ac070c1298"},{"fileReference":"bfdfe7dc352907fc980b868725387e980f02bba660f404080a5597633a1cd957","guid":"bfdfe7dc352907fc980b868725387e98313edb0ca3ceb578e58610ce347dbf6e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b6a1fcb8de627e4a149dbeaa3fa5fca0","guid":"bfdfe7dc352907fc980b868725387e98f387132460848715f54a127a4070430d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98779ba55a043129b4cb2a8298f38b5a38","guid":"bfdfe7dc352907fc980b868725387e98436f37718c13e842b0021a4a09e0a6fc"},{"fileReference":"bfdfe7dc352907fc980b868725387e984fcb1353e10344e3b37b66ab105ff9df","guid":"bfdfe7dc352907fc980b868725387e981073f7da921d217f8e91a9f34e3af3e4"},{"fileReference":"bfdfe7dc352907fc980b868725387e985e0d27beb33afd8c2a21c99c2ccad8ff","guid":"bfdfe7dc352907fc980b868725387e98e3440c233bc1cce5c543073c1817adc6"},{"fileReference":"bfdfe7dc352907fc980b868725387e98343648552569b07a4e4f8b3ae6a1c541","guid":"bfdfe7dc352907fc980b868725387e98f82327c35e70a4c8f1fd3287cbb32697"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f660d0c0cd1da3a27899ec0022d8d1a5","guid":"bfdfe7dc352907fc980b868725387e987869b0dc1ea0115c3f32945fa2fee7aa"},{"fileReference":"bfdfe7dc352907fc980b868725387e9820ccee8407a76e52a65bbf322314ff24","guid":"bfdfe7dc352907fc980b868725387e9871ab7fd758afe96e07ce994494ff4a8d"},{"fileReference":"bfdfe7dc352907fc980b868725387e982a378c57812ca7d898234f3cc11ceb13","guid":"bfdfe7dc352907fc980b868725387e98374624320f563fa430ce45bc02cee4eb"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e99e177c966f2ff38aa05af9369e0d12","guid":"bfdfe7dc352907fc980b868725387e98527d91d607a1ac26c4ca6398535c2ee6"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806214aad2c526ded1138c62610f86b34","guid":"bfdfe7dc352907fc980b868725387e980eec9122b44891305168328f7a58d9ba"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d179aa16d343f78f75bdb1b308e19ab2","guid":"bfdfe7dc352907fc980b868725387e98d9ab5ed66bce2db3fee941bac5b2b989"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f29a0ba53be4a73034962f441758af1b","guid":"bfdfe7dc352907fc980b868725387e984e599cf6715af1d7fabb834b2ce20681"}],"guid":"bfdfe7dc352907fc980b868725387e9853492ae621ed1bde48851eb95822b09e","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98a2d747c9a6b606cf296f76ca22c5d28a"}],"guid":"bfdfe7dc352907fc980b868725387e98970b78dabbf8d927a006ff56bd237725","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e983343457f836ba04799ea32f41febf5e4","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e9818352c54edac2258b91768852065ce5e","name":"GoogleMaps"}],"guid":"bfdfe7dc352907fc980b868725387e98117b13c59de776c223f2f14af197afb1","name":"Google-Maps-iOS-Utils","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e988d4f056f23e4e16df108000d3c5e64e7","name":"GoogleMapsUtils.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cb79a6ae52f45af7f18cae4150e8f9dc-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cb79a6ae52f45af7f18cae4150e8f9dc-json new file mode 100644 index 0000000..928ee25 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cb79a6ae52f45af7f18cae4150e8f9dc-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9805e51dd871dd6fb79e02d1cb5ab54212","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geolocator_apple","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"geolocator_apple","INFOPLIST_FILE":"Target Support Files/geolocator_apple/ResourceBundle-geolocator_apple_privacy-geolocator_apple-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"geolocator_apple_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a98ced1ceb8f57f58350f477df29a02f","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98984ad40820dd938bfb9eba483d6ca621","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geolocator_apple","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"geolocator_apple","INFOPLIST_FILE":"Target Support Files/geolocator_apple/ResourceBundle-geolocator_apple_privacy-geolocator_apple-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","PRODUCT_NAME":"geolocator_apple_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e981fa46337f385b39c90da122818065a2a","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98984ad40820dd938bfb9eba483d6ca621","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/geolocator_apple","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"geolocator_apple","INFOPLIST_FILE":"Target Support Files/geolocator_apple/ResourceBundle-geolocator_apple_privacy-geolocator_apple-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"11.0","PRODUCT_NAME":"geolocator_apple_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98f7c92dd705e4d51417db69fa116d16e3","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98367ef7239f0185893eb614747e4b0e0e","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e980aaf85cba847fad602a1371e48d30514","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9860094f8e2106544e41bd607fdfb11e1d","guid":"bfdfe7dc352907fc980b868725387e983fbd06a86b16a6ef3632aeca8b4af7de"}],"guid":"bfdfe7dc352907fc980b868725387e987f3f934ff8a79545772265f66d1cd7aa","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98e1aba8ff8dc833f2269ce0a7182533b3","name":"geolocator_apple-geolocator_apple_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e980ae07e1806c3af2f5550d2e89780c766","name":"geolocator_apple_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cbd9e4ec57aa84e0e8c51be15acbe1d9-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cbd9e4ec57aa84e0e8c51be15acbe1d9-json new file mode 100644 index 0000000..de2866e --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=cbd9e4ec57aa84e0e8c51be15acbe1d9-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f9466b5323060d69426a9c88dccb7266","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/fluttertoast/fluttertoast-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/fluttertoast/fluttertoast-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/fluttertoast/fluttertoast.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"fluttertoast","PRODUCT_NAME":"fluttertoast","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e980d95e38372e14dc164189e9e39c87ca3","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f2be65e3ce7ab755bdc018c7db50740e","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/fluttertoast/fluttertoast-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/fluttertoast/fluttertoast-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/fluttertoast/fluttertoast.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"fluttertoast","PRODUCT_NAME":"fluttertoast","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e980c7da66ee29e77cf7e3c5ef7b6bf0505","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f2be65e3ce7ab755bdc018c7db50740e","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/fluttertoast/fluttertoast-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/fluttertoast/fluttertoast-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/fluttertoast/fluttertoast.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"fluttertoast","PRODUCT_NAME":"fluttertoast","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e985d57597ee80c97031b19d4dd216a0459","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e987e51463547b2bb3cd449e240301f162b","guid":"bfdfe7dc352907fc980b868725387e9898803a5367f403dbe7d7f50e52e158e4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98771fe79d0f1c89f044a66644403264d4","guid":"bfdfe7dc352907fc980b868725387e98ab82a86fdec24f85d7791cc8d78d004f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98476b9ad2385374422c80ba343be38ea4","guid":"bfdfe7dc352907fc980b868725387e98a3cc2daf195a3f7840fbb7dc491b5abe","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98f9f50c0f44c9e9758a8d2da9a3e9486d","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98ca76bf7f3a374247ac66b93a176a266e","guid":"bfdfe7dc352907fc980b868725387e98732bda2bf98a69eea7b638ba5caac9e6"},{"additionalCompilerOptions":"-DOS_OBJECT_USE_OBJC=0","fileReference":"bfdfe7dc352907fc980b868725387e98151d6e26c2ff59dc98c12f4eeb567331","guid":"bfdfe7dc352907fc980b868725387e9801b2f59cea681d05edfca9587f8a4058"},{"additionalCompilerOptions":"-DOS_OBJECT_USE_OBJC=0","fileReference":"bfdfe7dc352907fc980b868725387e98b2a800124419d4f0ce48e797138b1168","guid":"bfdfe7dc352907fc980b868725387e98b3fbbc32b77d63aff47c3003c0cbb5aa"}],"guid":"bfdfe7dc352907fc980b868725387e98ff7ff0914d28d25b338598e51f35a22a","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98fb70b41caaa71fca49a76d4a80225131"}],"guid":"bfdfe7dc352907fc980b868725387e9893a2f3917413e2f83f099b893b6202f2","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e982a8b2134dd93f2cb1d1331e935303944","targetReference":"bfdfe7dc352907fc980b868725387e985739272bce418ef50bd06c859612bad5"}],"guid":"bfdfe7dc352907fc980b868725387e98678ff57194ccd7dfda00aac2582b17b5","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e985739272bce418ef50bd06c859612bad5","name":"fluttertoast-fluttertoast_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98839a1650b1f10605b2db52456c9e6468","name":"fluttertoast","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f09a1b962c84d31b7bec2ec6176b5c98","name":"fluttertoast.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=d3119035b8d352c6c71fb6834f2c7eea-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=d3119035b8d352c6c71fb6834f2c7eea-json new file mode 100644 index 0000000..08aa261 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=d3119035b8d352c6c71fb6834f2c7eea-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98fe29903a20bcf6761c2ae17d2f17fe0b","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/firebase_core/firebase_core-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/firebase_core/firebase_core-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/firebase_core/firebase_core.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"firebase_core","PRODUCT_NAME":"firebase_core","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e985ca99e83e17963cf7b3d63ce86381eff","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986477926082e2bc18055c3350f95b5793","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/firebase_core/firebase_core-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/firebase_core/firebase_core-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/firebase_core/firebase_core.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"firebase_core","PRODUCT_NAME":"firebase_core","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98e1be7140c2d488ad9a708bd2f168f331","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e986477926082e2bc18055c3350f95b5793","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/firebase_core/firebase_core-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/firebase_core/firebase_core-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"13.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/firebase_core/firebase_core.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"firebase_core","PRODUCT_NAME":"firebase_core","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98b47b0e4cc91fb31e7e8bebebc7eb0124","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d1a0058ce404d361cea2717dcb3a2036","guid":"bfdfe7dc352907fc980b868725387e9807e1b4404d26e34b1e958f9f9d7b0166","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bd39bbc3a2215e0f7777c5fa7ff6f934","guid":"bfdfe7dc352907fc980b868725387e989bfe56691a752e6765912f0bec97603c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ac552192d9746ac7bba22225198f7e43","guid":"bfdfe7dc352907fc980b868725387e98b2cc7eff3b1759d882ae56387be141e0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989e601b519af9d3bd7518ae8d251348ff","guid":"bfdfe7dc352907fc980b868725387e987cc8076f25ca00209ea9970e30a8f99b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ccba96fd247c956e74b9830e04e2d006","guid":"bfdfe7dc352907fc980b868725387e985390111cd0304aa4241ec005de8f33e9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98993ffba6108659de3a4235da0b8468f9","guid":"bfdfe7dc352907fc980b868725387e98cddeadb21cdc8944f92c89c35c7ff3f7","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e98fbface7a90e673a55abfc584f9ce4ceb","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d110aa5dfaeaf8ea6250e3a6e42c9377","guid":"bfdfe7dc352907fc980b868725387e98ebeaf7f51ca147f8b98abc76004e146b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98effa16c5987aca27bdd9dccc14f1a6bc","guid":"bfdfe7dc352907fc980b868725387e98286352955757adcf028301f1f2119404"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b06d459d0049725472a04cf058e155fd","guid":"bfdfe7dc352907fc980b868725387e98a7fd2b824278cb06bc19b3887aff5450"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ab994b56d016e955434bb67352a80e60","guid":"bfdfe7dc352907fc980b868725387e981b65a5a11a94d8b4aa6548702e739428"},{"fileReference":"bfdfe7dc352907fc980b868725387e982afeebd074f91a717034051b3be1a18b","guid":"bfdfe7dc352907fc980b868725387e980e80edda0560adf644b0cd55d8625123"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bd2f07f57b1e47a2b408da49bd40c973","guid":"bfdfe7dc352907fc980b868725387e98961c1396ae300ef8bf8e63bd8955efaa"}],"guid":"bfdfe7dc352907fc980b868725387e981bfd33a0e0a9c65981ea832bcc30a485","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98cc307cbea5e26dc79ecf901142854c2d"}],"guid":"bfdfe7dc352907fc980b868725387e98dc5682ddb5b02535920fe574d3682b51","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98eeefc86ec9d980aa64835000e6b2137d","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98d57b8bce60a0f11113f4cff532db68d3","name":"Firebase"},{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"}],"guid":"bfdfe7dc352907fc980b868725387e987f74324bfc5c78140e34d510e26e00c1","name":"firebase_core","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98a32fdd082239c9fc7912ba5b473ab170","name":"firebase_core.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=dba0731e25b80e1d09e07b4491953e28-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=dba0731e25b80e1d09e07b4491953e28-json new file mode 100644 index 0000000..9b28dc2 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=dba0731e25b80e1d09e07b4491953e28-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9840183a5bb3a6b7e543d99018fa2efc59","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/package_info_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"package_info_plus","INFOPLIST_FILE":"Target Support Files/package_info_plus/ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"package_info_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98ba6ff0ae7f2136116e5e365e0eb64068","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982d7f419eb3718b8b24c14079835fe5fa","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/package_info_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"package_info_plus","INFOPLIST_FILE":"Target Support Files/package_info_plus/ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"package_info_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98da1e1603eb87bc95877d78da890509b0","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982d7f419eb3718b8b24c14079835fe5fa","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/package_info_plus","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"package_info_plus","INFOPLIST_FILE":"Target Support Files/package_info_plus/ResourceBundle-package_info_plus_privacy-package_info_plus-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"12.0","PRODUCT_NAME":"package_info_plus_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e983cd32799ed10e4b826b46123b73406ea","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9885465e56503e4243a6a76fee146e1fc6","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9824e2ba0e001a5b57020fc1075e467ba3","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9849d2956f07fa59be71d84df9ce50f618","guid":"bfdfe7dc352907fc980b868725387e98c882b5061eb5125762f2a28d019c6c8a"}],"guid":"bfdfe7dc352907fc980b868725387e98ac20dce5e7c83104ad4b0d96e56163d1","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e987b6c2f882d164ef4f3c76673562685a1","name":"package_info_plus-package_info_plus_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e982a9852aa81a16cf5578d0e8c78b5679a","name":"package_info_plus_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e262977a2568fa86238c80f671c03716-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e262977a2568fa86238c80f671c03716-json new file mode 100644 index 0000000..16498f7 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=e262977a2568fa86238c80f671c03716-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e982b1a2e6a05bf006e8da499a313201ffd","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/nanopb/nanopb-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/nanopb/nanopb-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/nanopb/nanopb.modulemap","ONLY_ACTIVE_ARCH":"NO","PRODUCT_MODULE_NAME":"nanopb","PRODUCT_NAME":"nanopb","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98d1b2d34bd5bf5ea4438652fd25e96c69","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eec79f52c283202bb2af70351c694dc3","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/nanopb/nanopb-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/nanopb/nanopb-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/nanopb/nanopb.modulemap","PRODUCT_MODULE_NAME":"nanopb","PRODUCT_NAME":"nanopb","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98cf8519e6fb362126085d1af2706d784a","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98eec79f52c283202bb2af70351c694dc3","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","GCC_PREFIX_HEADER":"Target Support Files/nanopb/nanopb-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/nanopb/nanopb-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"12.0","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/nanopb/nanopb.modulemap","PRODUCT_MODULE_NAME":"nanopb","PRODUCT_NAME":"nanopb","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9822b2cb001b34726a0f91a54a7de6d4e1","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98356f2881dddb32fd0cf71d7b256f3d56","guid":"bfdfe7dc352907fc980b868725387e987de6ee28e241d2fcbee4bbd70081c4a9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98da568d77aea5943c4262605db2a04d54","guid":"bfdfe7dc352907fc980b868725387e98a1269e9dbe7fe8d81e0cde04a3c31a77","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98833ec06991ec1e41f693acb6edaaca12","guid":"bfdfe7dc352907fc980b868725387e98cae9e1981a4b62c51c7e02aeb022d3e4","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98845fff2bd2f6de1bce1bc8448047f6cd","guid":"bfdfe7dc352907fc980b868725387e988bd567725221f4e12a61ca9e366274d1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98314e333a9698bf6afebad1d61771b5d2","guid":"bfdfe7dc352907fc980b868725387e986b1a7b22b74eb460f086f63ccd75c416","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9848d47696cdf99f4776ceae93672183cb","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98608d3baf93c9910ad82470ccbe9e8d1d","guid":"bfdfe7dc352907fc980b868725387e9811fbfe6e3fb55807cd3b60f3bcbdd898"},{"additionalCompilerOptions":"-fno-objc-arc -fno-objc-arc -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98086d496a513512fe0eb0c7649ad9b8ab","guid":"bfdfe7dc352907fc980b868725387e98ffd73f61746738d76bd2b75002e633c6"},{"additionalCompilerOptions":"-fno-objc-arc -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98e6ef1aa976d29227d5af03d77325d29d","guid":"bfdfe7dc352907fc980b868725387e98d13ea1019a7467d188222e71f38f4050"},{"additionalCompilerOptions":"-fno-objc-arc -fno-objc-arc","fileReference":"bfdfe7dc352907fc980b868725387e98cca7df0aa3b34edc888f8ab6f7d0b2a5","guid":"bfdfe7dc352907fc980b868725387e986c45a7e2f51ceaa44958b0213f8aeffa"}],"guid":"bfdfe7dc352907fc980b868725387e98421004b97d201fb20290bb977083f8bb","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98d8184a037417e0751a0c5d24f65fa95c"}],"guid":"bfdfe7dc352907fc980b868725387e9899c9f1e7025d1daf1a8a5cd1359cd8ca","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98a669416a3a54001b7d811e3ddd9b60ab","targetReference":"bfdfe7dc352907fc980b868725387e98c9e4d77647dbd2f60d4df5fb297112b6"}],"guid":"bfdfe7dc352907fc980b868725387e985b7b85c8b564e6f43f87e3a8ffe7c60e","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e98c9e4d77647dbd2f60d4df5fb297112b6","name":"nanopb-nanopb_Privacy"}],"guid":"bfdfe7dc352907fc980b868725387e980062393f91a1d2d94e3e5ed3a5aa5da9","name":"nanopb","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98edeb236a6bea2a184984d344e4936f7f","name":"nanopb.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ebbeae02a3029c9ed647ba83a0a15ab1-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ebbeae02a3029c9ed647ba83a0a15ab1-json new file mode 100644 index 0000000..054a261 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ebbeae02a3029c9ed647ba83a0a15ab1-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a64f3896535e2e8b8f2df82f6b10b110","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/permission_handler_apple/permission_handler_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/permission_handler_apple/permission_handler_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/permission_handler_apple/permission_handler_apple.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"permission_handler_apple","PRODUCT_NAME":"permission_handler_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98519c0f1aabf34eacbf6f755b813f1496","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983c223d510dcb0a44dc6710fddf454b91","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/permission_handler_apple/permission_handler_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/permission_handler_apple/permission_handler_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/permission_handler_apple/permission_handler_apple.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"permission_handler_apple","PRODUCT_NAME":"permission_handler_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98ec62137b0ee28ca4265944856877be27","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983c223d510dcb0a44dc6710fddf454b91","buildSettings":{"CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/permission_handler_apple/permission_handler_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/permission_handler_apple/permission_handler_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/permission_handler_apple/permission_handler_apple.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"permission_handler_apple","PRODUCT_NAME":"permission_handler_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9832ebf16d88dad2729e444c32094aa46a","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98dbfd295f12c007800c932f4f24967307","guid":"bfdfe7dc352907fc980b868725387e98fe92b5afa8fe58bae3c9229d058e616a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98398d0e8d74d0f892526cf537e312cd85","guid":"bfdfe7dc352907fc980b868725387e985965519b3ec2b9053365fa530bf643bc","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b83cdbcee318ad5facf9556c270d2062","guid":"bfdfe7dc352907fc980b868725387e98fa9d97f54a76579d59e404ebe634bcdc","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980f1411614cb82ecf69119acf9c4ea1d2","guid":"bfdfe7dc352907fc980b868725387e9850bdaa7011aa3c91740c213b1a7fa2cf","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98182a4d1d22e00f884eb9ee789d25e7ff","guid":"bfdfe7dc352907fc980b868725387e98b69297aee86961e47e29414c45e849ac","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980558be4c1a27f554c34378b2a25518e1","guid":"bfdfe7dc352907fc980b868725387e985ca3c30a7f4851eb9b4ef33952a3f482","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fd6901d4770fc52c15998221fb95f9ed","guid":"bfdfe7dc352907fc980b868725387e9812df9d9973c9f97679f7de972b48f817","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98224d92080f0985ad3e356763a11d6a38","guid":"bfdfe7dc352907fc980b868725387e98abf8d1a3dd0a4ead2fb6398cea2425ad","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d63d89cd1fbc9c89aa470b7877a866ff","guid":"bfdfe7dc352907fc980b868725387e986340d5835ff3d4930a87aff596993c8b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988b642fb257e048086d2dffa0876d68a5","guid":"bfdfe7dc352907fc980b868725387e98282e717420c34bd36656734c015ab0db","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b51896c86f014ed7fe39e15b54ab3e88","guid":"bfdfe7dc352907fc980b868725387e98f79617ce3eea92130c3e8deb24ac6052","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fb26cbb5831549b1e76d745a4bf3bd87","guid":"bfdfe7dc352907fc980b868725387e989a9c98af54d171ffc5dcfcd328a9f656","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981e2483bf11763f9da6df73fadd398487","guid":"bfdfe7dc352907fc980b868725387e98dc02dbc796bf1a1c79ffc8c7bf3cea72","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9879cdc34c196e0551668fce836a413d2f","guid":"bfdfe7dc352907fc980b868725387e98892ab7216e572450585dbb7fe836780a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988acf330788bc80d0e9a0a002669d36b2","guid":"bfdfe7dc352907fc980b868725387e983d12f44f6ad546c0e51ad40a38a62758","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f276a626ed9286a505cf3d31bd777f35","guid":"bfdfe7dc352907fc980b868725387e98a42139f6edf79b3b7cbcf3d1471e4431","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98781ef2b66c0ad0b9839eab14c4b5cf2c","guid":"bfdfe7dc352907fc980b868725387e98d954eaec4de1c4988534c19c3b497a42","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e984a87d244924fcb786bc6aa8b7b656c2f","guid":"bfdfe7dc352907fc980b868725387e98a1ebbf17f73356fde3a4c9c9ccaaf541","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98098a2d967439d77ba188df85e8ff70be","guid":"bfdfe7dc352907fc980b868725387e9821e54dc62d1296156df602834f20fcc9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98128323170ba40290740c2fce45e161f6","guid":"bfdfe7dc352907fc980b868725387e986061ae92e4bce152885cc5c3a1c0e4d1","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9811a4f96d976df6a29a489c3a95ff819b","guid":"bfdfe7dc352907fc980b868725387e98e7e268d654b1604ef998bf4cc75336d0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985601e76ffd75c287e24f8d6fa672c75c","guid":"bfdfe7dc352907fc980b868725387e9854f174ef0b05263e6dcd47023ed0496c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c748f1649e70414c63b738961ec6eac8","guid":"bfdfe7dc352907fc980b868725387e98a3f25623979afa23466422cd7a073ec5","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e986a03fa67e33d48dce94be2b8eb2259ec","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9882f8befb398bd4fae5d79ff4e9f5587b","guid":"bfdfe7dc352907fc980b868725387e98ffd488b77237b8fc440d41413454bb07"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b735813da91e2e5f2fe6add3b134c107","guid":"bfdfe7dc352907fc980b868725387e98867e367d9e5822a1ed3da2e5d879f4ea"},{"fileReference":"bfdfe7dc352907fc980b868725387e9861c82b9db8a47473e424530597e2e24b","guid":"bfdfe7dc352907fc980b868725387e98f4e8406eff8c37b5cf57678723c2865d"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f2b28f6a02ff8fd474eb5c78630913cb","guid":"bfdfe7dc352907fc980b868725387e986a9a5442fb214160e10f186b31f4351e"},{"fileReference":"bfdfe7dc352907fc980b868725387e9873cfb9a4bbf5ed16d35652a00591ec7b","guid":"bfdfe7dc352907fc980b868725387e9856735a0df7a10f65de67a62396d1be8d"},{"fileReference":"bfdfe7dc352907fc980b868725387e9806be094affbbbf0870bbb05a17e5bbeb","guid":"bfdfe7dc352907fc980b868725387e98d490619ce99b46bd5cde304795058c5a"},{"fileReference":"bfdfe7dc352907fc980b868725387e9812612720bf2420c01d7202567821b6f0","guid":"bfdfe7dc352907fc980b868725387e985b6b972d31abdb37d83e0217390f1111"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e10d210d2d54fca69d2b768fbbd13a0c","guid":"bfdfe7dc352907fc980b868725387e9826e5537c184a98a817fabddd8b1af46b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ca7c9f8da59363c34156fa297813276e","guid":"bfdfe7dc352907fc980b868725387e98a6f139e04c42be401173e09b8eb64304"},{"fileReference":"bfdfe7dc352907fc980b868725387e982e7e6141bf9a51fbac9be2cd2b27ac91","guid":"bfdfe7dc352907fc980b868725387e98bba9b3f581dbe27be7f77e7dba39135c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a25ba82d4871040bfec800f4218ec076","guid":"bfdfe7dc352907fc980b868725387e98f5a18a02b63f8074b1935286ce097e7a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a5c2440b2cea8fc8462f3e155d4fc1d1","guid":"bfdfe7dc352907fc980b868725387e982a4d902c47d2e168ad1b9faadb826b40"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a245186f766ee9e2a660cf650967cba0","guid":"bfdfe7dc352907fc980b868725387e981850b344567e5543096f0a83d9eac0b2"},{"fileReference":"bfdfe7dc352907fc980b868725387e9838d9b449e1df99bb3e4f95b7ad9969f9","guid":"bfdfe7dc352907fc980b868725387e98c7209acb4bbc11473400b95ba264e570"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f7e3ed70acddffb12c30d4a6771460f6","guid":"bfdfe7dc352907fc980b868725387e98b9ad21760386409e6a8418d260c875a5"},{"fileReference":"bfdfe7dc352907fc980b868725387e98239109c8a88f596c2252d970b70ab85e","guid":"bfdfe7dc352907fc980b868725387e9869daee10844bdc1377101bb06b07af6f"},{"fileReference":"bfdfe7dc352907fc980b868725387e98439f42ae6513e0b48e0b3eedec4b5ee7","guid":"bfdfe7dc352907fc980b868725387e9880b83d2e94cb821fc34990ec5eb08f30"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e85400f8b7b9cb48e430df24e15a3654","guid":"bfdfe7dc352907fc980b868725387e983fc554d229dec51832d227dc3c6cd4f9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8ccd5d26ac2ae6ee7f4d0a301d2a7de","guid":"bfdfe7dc352907fc980b868725387e984d92ce2a6a775539ad9cd12b7b3c8702"},{"fileReference":"bfdfe7dc352907fc980b868725387e98adf2f1c4e04b2b79776302c164bb38b6","guid":"bfdfe7dc352907fc980b868725387e98b55b1eb31da0207c73caefaa35380afd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98969b3617878b4c6af0dd1ebfd3d2775e","guid":"bfdfe7dc352907fc980b868725387e982a5ad3c71031968c83cf1f0dd2275285"}],"guid":"bfdfe7dc352907fc980b868725387e98be6229230a4715433df2f8e74fbafc5b","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e980797c2152e50219ee4196549bb34f857"}],"guid":"bfdfe7dc352907fc980b868725387e984d290968aff9eafa4ed5b85c80a8c610","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98fa0d11ed0b4e1a85c13d68e37d1547e0","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e9802f35ab680609a626ebd2ddd692a3822","name":"permission_handler_apple-permission_handler_apple_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98ef10255b706f98e1e88fae00855b0968","name":"permission_handler_apple","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98f8f53f8ba4165e76c7481b24262177ed","name":"permission_handler_apple.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ec8f51018cc9417b9667cad266e51f6f-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ec8f51018cc9417b9667cad266e51f6f-json new file mode 100644 index 0000000..06e8110 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ec8f51018cc9417b9667cad266e51f6f-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9805e51dd871dd6fb79e02d1cb5ab54212","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/geolocator_apple/geolocator_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/geolocator_apple/geolocator_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/geolocator_apple/geolocator_apple.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"geolocator_apple","PRODUCT_NAME":"geolocator_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e984936d7cb8feef48513f6131e211caece","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98984ad40820dd938bfb9eba483d6ca621","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/geolocator_apple/geolocator_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/geolocator_apple/geolocator_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/geolocator_apple/geolocator_apple.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"geolocator_apple","PRODUCT_NAME":"geolocator_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e98beaaf634ac9c45a28ea8b53ae8cea921","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98984ad40820dd938bfb9eba483d6ca621","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/geolocator_apple/geolocator_apple-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/geolocator_apple/geolocator_apple-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","LD_RUNPATH_SEARCH_PATHS":"$(inherited) @executable_path/Frameworks @loader_path/Frameworks","MODULEMAP_FILE":"Target Support Files/geolocator_apple/geolocator_apple.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"geolocator_apple","PRODUCT_NAME":"geolocator_apple","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.0","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9879f34f1e012c285b844492b857411475","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e985e2396e1bb185393739b2ba649e21d94","guid":"bfdfe7dc352907fc980b868725387e985176eb7aa89517dd79b622378e05c296","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985acf905fa3d0d81b7064be4e655d8297","guid":"bfdfe7dc352907fc980b868725387e98af69fb08e313617716d0d228cf215245","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985361a5d58dc547bcf7d64bd7c0034f97","guid":"bfdfe7dc352907fc980b868725387e985e2e93614b4b998292a11ff2a2c13b6d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986d39ef017f9fdc4c658d18d3accd8359","guid":"bfdfe7dc352907fc980b868725387e98f39594556e495895558fa1a08b655ba5","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8f59378873268962f79f27fe1704b04","guid":"bfdfe7dc352907fc980b868725387e9892d2936f43a59179d3e2fc2a4021e53e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e982ad300fddd5eb7317568438aaf1dd688","guid":"bfdfe7dc352907fc980b868725387e98de9bba16cdb7cae0aadac8b6746bb22f","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bdac6fc933c7467c798f38adcae91a5a","guid":"bfdfe7dc352907fc980b868725387e986f2fd5217ee9ef9b9f743d7150a25c60","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f93d2ee9d2eccf1be6e8d02a6a44f87","guid":"bfdfe7dc352907fc980b868725387e9838280bfcd8b736867eaa4077fbc0d61c","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98909823f343e416cc4f36d3c05eea548c","guid":"bfdfe7dc352907fc980b868725387e985212bf823b2dbcc093385db1f1b30dec","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e981be47100951535e1a34cc15e2a585567","guid":"bfdfe7dc352907fc980b868725387e983b3e9d753ef701196ebaaa81a1e77d66","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b9c1e9c8de949d3626824d529fc62834","guid":"bfdfe7dc352907fc980b868725387e985cf8cb83875e6694983c229dac8bc9fb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d7b72feb113d2e1407d589ad40f7f08e","guid":"bfdfe7dc352907fc980b868725387e988145d23612ab237ea91016460d73945a","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9893efb63726e9eccae55394c6a7d4f812","guid":"bfdfe7dc352907fc980b868725387e982690b7c043bffc9f7499a3599fc5db55","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98859e4823d29d35f1e93f69a7831a68c6","guid":"bfdfe7dc352907fc980b868725387e984bcf2821c445a13f1ca5ddd1387c63d6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9858a37b50b36e6b7e2ca27cc437411854","guid":"bfdfe7dc352907fc980b868725387e9814e771116f0efcc61da8fc335aa4ca3b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98351efa4f1d0fed3ca28603be2784f731","guid":"bfdfe7dc352907fc980b868725387e9896786428e6a8d6c7862d939cae65f773","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980a0bce55d257765176e562e953a12a2d","guid":"bfdfe7dc352907fc980b868725387e98790199ae3165d72360ab21230766b727","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e9859ab3ec029f964cc4041f98492a33760","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98510b3cd61f7993d657d8fb4073e91dbc","guid":"bfdfe7dc352907fc980b868725387e98ac5c52be3190abee156605bfd48912ef"},{"fileReference":"bfdfe7dc352907fc980b868725387e9821479bdb8b95e80a9c837c2f46e4bed0","guid":"bfdfe7dc352907fc980b868725387e98e1de61ab1ff97cc94cd06a5371923da8"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ece2eef75e1814398df82666e5bd595d","guid":"bfdfe7dc352907fc980b868725387e98d0242bdacab0261eec7e248947d90b7c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c8dd239195f6f218f85e9645dd4fcf5a","guid":"bfdfe7dc352907fc980b868725387e982d942064c23276142327490fa33537b7"},{"fileReference":"bfdfe7dc352907fc980b868725387e983f24e869c0eb01ae7c777cb18f512929","guid":"bfdfe7dc352907fc980b868725387e98d9f834483786fc0c92f7593bcd6dd83c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b845c16a350965527b54da4d1c643a43","guid":"bfdfe7dc352907fc980b868725387e987f77bace7e1c1bfd0b3f575d26dfb06f"},{"fileReference":"bfdfe7dc352907fc980b868725387e989544664f5b0d31832a153c1eede2b2cc","guid":"bfdfe7dc352907fc980b868725387e9815ed68575bdb30e9bf33141f83bd83b9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98996f791dc67fb1b8ec3b1dbda0f0846c","guid":"bfdfe7dc352907fc980b868725387e98590b8f41b31928b0a4926ce46a04415a"},{"fileReference":"bfdfe7dc352907fc980b868725387e980a7b00bf5d9c10ffd07035729aeeb0b0","guid":"bfdfe7dc352907fc980b868725387e98f6d629ffc18995e49d3d77a3aef0dcb0"},{"fileReference":"bfdfe7dc352907fc980b868725387e981e107c09be2611dd97f32b49f1d95fe8","guid":"bfdfe7dc352907fc980b868725387e98af9f015ea26609a22120bcae2d16071a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98206df9a8e0975193ae2bf6b8c0ecc32a","guid":"bfdfe7dc352907fc980b868725387e989c0bfab68da1fedec51cf36689157069"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c910f5565721a3811f9f067c798a59e5","guid":"bfdfe7dc352907fc980b868725387e98c5820ac9b4d0a4a76d9404b84c0ec2b9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d8f3237e6262447f2bde62daa6428e7c","guid":"bfdfe7dc352907fc980b868725387e98df9697c7b74a7cf4593f9d66eda4c228"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800714bc229d78f328390537f15034d75","guid":"bfdfe7dc352907fc980b868725387e98df10a50fc47d08262ba22e5741f99c0e"}],"guid":"bfdfe7dc352907fc980b868725387e989d91e5abbad637a65716b7fef9466ccd","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e9847d3b3fdbf8c6c03a84819a79f7ae5aa"}],"guid":"bfdfe7dc352907fc980b868725387e988ec00323e57392a3c283b014e048e33b","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"guid":"bfdfe7dc352907fc980b868725387e98c4b351c20ac090098b0dcaf5fd3c18e2","targetReference":"bfdfe7dc352907fc980b868725387e98e1aba8ff8dc833f2269ce0a7182533b3"}],"guid":"bfdfe7dc352907fc980b868725387e98053f546dc39b1661db608be4eb007f0a","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98e1aba8ff8dc833f2269ce0a7182533b3","name":"geolocator_apple-geolocator_apple_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e9821d372cc1e7c7587a12aeda843619e39","name":"geolocator_apple","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e986ff8f87e011522b1b6328c84d9533927","name":"geolocator_apple.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ee764aff52559a26f05e14beda9cd104-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ee764aff52559a26f05e14beda9cd104-json new file mode 100644 index 0000000..de797bb --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=ee764aff52559a26f05e14beda9cd104-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f9466b5323060d69426a9c88dccb7266","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/fluttertoast","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"fluttertoast","INFOPLIST_FILE":"Target Support Files/fluttertoast/ResourceBundle-fluttertoast_privacy-fluttertoast-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"fluttertoast_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98c0ebb4c0e917133590b9bae3bd5a51a0","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f2be65e3ce7ab755bdc018c7db50740e","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/fluttertoast","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"fluttertoast","INFOPLIST_FILE":"Target Support Files/fluttertoast/ResourceBundle-fluttertoast_privacy-fluttertoast-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"fluttertoast_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9862d5dab2d09f241973088a4ee28dd787","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98f2be65e3ce7ab755bdc018c7db50740e","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/fluttertoast","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"fluttertoast","INFOPLIST_FILE":"Target Support Files/fluttertoast/ResourceBundle-fluttertoast_privacy-fluttertoast-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"fluttertoast_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e986f90bb73860782858ed811c25a630a87","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98e63ebea75744e68b6a3f487397dd54c6","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9861d55b65b00df86c6a7ea2ae86badc6b","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98a5726ed02f44eee070b219d5a64d122e","guid":"bfdfe7dc352907fc980b868725387e9832e4a1e84a2ddf888e48b6a083944d40"}],"guid":"bfdfe7dc352907fc980b868725387e98d0ef9190db5ad6f7b1ef6c5722f26670","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e985739272bce418ef50bd06c859612bad5","name":"fluttertoast-fluttertoast_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e989d4bb598ca0a92e1d0f3a4ef0157bf7e","name":"fluttertoast_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f017be357f5f94239118f2ad470ba3af-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f017be357f5f94239118f2ad470ba3af-json new file mode 100644 index 0000000..c02f220 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f017be357f5f94239118f2ad470ba3af-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a64f3896535e2e8b8f2df82f6b10b110","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/permission_handler_apple","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"permission_handler_apple","INFOPLIST_FILE":"Target Support Files/permission_handler_apple/ResourceBundle-permission_handler_apple_privacy-permission_handler_apple-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"permission_handler_apple_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e984407c15804f8993fb0bfc01de5075789","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983c223d510dcb0a44dc6710fddf454b91","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/permission_handler_apple","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"permission_handler_apple","INFOPLIST_FILE":"Target Support Files/permission_handler_apple/ResourceBundle-permission_handler_apple_privacy-permission_handler_apple-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"permission_handler_apple_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98da9cba8bef7a1009d2d72eaebdf1a5b4","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983c223d510dcb0a44dc6710fddf454b91","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/permission_handler_apple","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"permission_handler_apple","INFOPLIST_FILE":"Target Support Files/permission_handler_apple/ResourceBundle-permission_handler_apple_privacy-permission_handler_apple-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"9.0","PRODUCT_NAME":"permission_handler_apple_privacy","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e98a048ab718c3ff74a98562e3fb678734a","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9890f3c655aa8a35ed8d1a3ae4c34b6955","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98e5d6eacf7f52193d44184ef2e5a7f18a","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9867508e15cd39d5decf24d09ac0db0299","guid":"bfdfe7dc352907fc980b868725387e98dafa78d4c101422f1607ab6fcc82168b"}],"guid":"bfdfe7dc352907fc980b868725387e987c74821cb6a7138742676818ad3fd012","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e9802f35ab680609a626ebd2ddd692a3822","name":"permission_handler_apple-permission_handler_apple_privacy","productReference":{"guid":"bfdfe7dc352907fc980b868725387e983e9a904e8a35cb34b69458780be142b3","name":"permission_handler_apple_privacy.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f459a979308737aab1153061734a67a9-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f459a979308737aab1153061734a67a9-json new file mode 100644 index 0000000..fb87b20 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f459a979308737aab1153061734a67a9-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98a263fd221541734798ccc759929cd54b","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"14.0","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios.modulemap","ONLY_ACTIVE_ARCH":"NO","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"google_maps_flutter_ios","PRODUCT_NAME":"google_maps_flutter_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9885cabbb6e788a762841591deaf1fcb57","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c7e8b3a905ece34a84a70af1409fbe9f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"14.0","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"google_maps_flutter_ios","PRODUCT_NAME":"google_maps_flutter_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9849e98d1373ca5cb1dcdb26755e061e36","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e98c7e8b3a905ece34a84a70af1409fbe9f","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER":"NO","CODE_SIGN_IDENTITY[sdk=appletvos*]":"","CODE_SIGN_IDENTITY[sdk=iphoneos*]":"","CODE_SIGN_IDENTITY[sdk=watchos*]":"","CURRENT_PROJECT_VERSION":"1","DEFINES_MODULE":"YES","DYLIB_COMPATIBILITY_VERSION":"1","DYLIB_CURRENT_VERSION":"1","DYLIB_INSTALL_NAME_BASE":"@rpath","ENABLE_BITCODE":"NO","ENABLE_MODULE_VERIFIER":"NO","ENABLE_USER_SCRIPT_SANDBOXING":"NO","EXCLUDED_ARCHS[sdk=iphoneos*]":"$(inherited) armv7","EXCLUDED_ARCHS[sdk=iphonesimulator*]":"$(inherited) i386","FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64\" $(inherited)","FRAMEWORK_SEARCH_PATHS[sdk=iphonesimulator*]":"\"/Users/anbarasu/flutter/bin/cache/artifacts/engine/ios-release/Flutter.xcframework/ios-arm64_x86_64-simulator\" $(inherited)","GCC_PREFIX_HEADER":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios-prefix.pch","GENERATE_INFOPLIST_FILE":"NO","INFOPLIST_FILE":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios-Info.plist","INSTALL_PATH":"$(LOCAL_LIBRARY_DIR)/Frameworks","IPHONEOS_DEPLOYMENT_TARGET":"14.0","MACH_O_TYPE":"staticlib","MODULEMAP_FILE":"Target Support Files/google_maps_flutter_ios/google_maps_flutter_ios.modulemap","OTHER_LDFLAGS":"$(inherited) -framework Flutter","PRODUCT_MODULE_NAME":"google_maps_flutter_ios","PRODUCT_NAME":"google_maps_flutter_ios","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","SWIFT_ACTIVE_COMPILATION_CONDITIONS":"$(inherited) ","SWIFT_INSTALL_OBJC_HEADER":"YES","SWIFT_VERSION":"5.9","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","VALID_ARCHS[sdk=iphonesimulator*]":"$(ARCHS_STANDARD)","VERSIONING_SYSTEM":"apple-generic","VERSION_INFO_PREFIX":""},"guid":"bfdfe7dc352907fc980b868725387e9827c7327ae6e108884301c07e4e124ab3","name":"Release"}],"buildPhases":[{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98fcfb35c2b3e5b1e01ee91b37d05e8f26","guid":"bfdfe7dc352907fc980b868725387e98a2d5afc4cdfff61f287fc3c8953e1e13","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d19b9c82b7077190eacc0c467101f141","guid":"bfdfe7dc352907fc980b868725387e98108b0fcf573fb15a2c8c8e84ca1075c6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98a29996b847f1d957cce8dfeeee33d28d","guid":"bfdfe7dc352907fc980b868725387e98ef3a20d451c2bc1bff4b8aeef315a844","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e980ded4190af776e2c49928e6a6b414f74","guid":"bfdfe7dc352907fc980b868725387e98bafc351054732e26599d663c1abea7df","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e985cc0bfd4172648018f3ce99db95c74a4","guid":"bfdfe7dc352907fc980b868725387e984f6380feb9255e5a5c666686fceb5483","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98054053b837e53259a3294183e77e840f","guid":"bfdfe7dc352907fc980b868725387e9843474ede7de3eba87e29d7e04b2087d7","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9819421c6f291ec18235ab558d190b622a","guid":"bfdfe7dc352907fc980b868725387e98e91741497285aca8c7bbc5c7e1345ae6","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9800a2080b00ca7af1db67e74ef6c90cab","guid":"bfdfe7dc352907fc980b868725387e98fe62014cb955c6312d13626b2e0089ee","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e986cf26768efb170a2bf4822aa80b723de","guid":"bfdfe7dc352907fc980b868725387e985a0b7e025780a7e8e7dab3fd5de00024","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98671ee5ca94b402b86b5cc4a552a85807","guid":"bfdfe7dc352907fc980b868725387e980edf26bf2b73862cb0dbe6c0cccc7e3d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e446a33c1142279efd907f3e26f07fa8","guid":"bfdfe7dc352907fc980b868725387e98877c68ffb5764b1ef9f3cdf42e833bfb","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98f5dba5a25fc0b70432707f6602250239","guid":"bfdfe7dc352907fc980b868725387e98972aa33a058034cdc94821b4f28e1b1d","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c869bacec39fff2a592c3a03a6c59d04","guid":"bfdfe7dc352907fc980b868725387e98cc45e13a13aaa69138b1eefcc59699f9","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e988de33f140ebd10baddad3db40d1d1991","guid":"bfdfe7dc352907fc980b868725387e98d0fb491c7d3bf8e80eaa70b0365aeaa0","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98994fad65d58036e76a7b6d381c9ff841","guid":"bfdfe7dc352907fc980b868725387e98a3736dff13f11f6cf0a133388a928e3e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e989fae1e76817a901579673303cbb831e9","guid":"bfdfe7dc352907fc980b868725387e9854aa057ec11bee4180340b16c7a4107e","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ddc3e3af7228cbb74a095d04bd158f9d","guid":"bfdfe7dc352907fc980b868725387e98205aea343e5611b8353bd11a05c21e27","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e9883982b5ff29bc2e61024da8a7d909365","guid":"bfdfe7dc352907fc980b868725387e98b0c955b9fb1046af64f954feb417113b","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fa64621b8c03a903b346f2dba4543c5e","guid":"bfdfe7dc352907fc980b868725387e9845b75203bc002de6a3b7438ec3e90851","headerVisibility":"public"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d498d534c36d6542fdf40be4be07efa9","guid":"bfdfe7dc352907fc980b868725387e9884e889b76333d5aec24e25185dd38f51","headerVisibility":"public"}],"guid":"bfdfe7dc352907fc980b868725387e989a9f642c04145579f4c63780b0d3cd6d","type":"com.apple.buildphase.headers"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e987f7263dfe94caa3826ff6f62aedc4e34","guid":"bfdfe7dc352907fc980b868725387e984e71176e5ffd2bead670009713e31385"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b46b076742a0f1077af4c7961b7c41f3","guid":"bfdfe7dc352907fc980b868725387e98d58fc89276bf76f0f4c7a04929202475"},{"fileReference":"bfdfe7dc352907fc980b868725387e9811023691eee52d7fc1496a29682cba32","guid":"bfdfe7dc352907fc980b868725387e98339a3b6fa5448cc1c59cc7a40d34778d"},{"fileReference":"bfdfe7dc352907fc980b868725387e980d142ba4a0a9d61b20da85342ad4d2a5","guid":"bfdfe7dc352907fc980b868725387e98342bd023ec9ea7c582e8bbf40e3d4c9c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98d0226effdc87c44fa72f0b59e84a8d60","guid":"bfdfe7dc352907fc980b868725387e985e58e1c0c813896c210dfb9e32b740b4"},{"fileReference":"bfdfe7dc352907fc980b868725387e985242ca9dbdfb6a68e4002c5963ef40d1","guid":"bfdfe7dc352907fc980b868725387e985cb1b66e90fbdece73950dc04601c7fd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e8cfbdfbcd15df9f8be9e6f1e773e2c3","guid":"bfdfe7dc352907fc980b868725387e98e9dd4b210d0057715092895a854eb1ec"},{"fileReference":"bfdfe7dc352907fc980b868725387e98b8c9ba70d726acf8e51ac1e721ef0ab1","guid":"bfdfe7dc352907fc980b868725387e988ff642f70ff537fce49bd29a0c431272"},{"fileReference":"bfdfe7dc352907fc980b868725387e985dc973f06b3630551e9c1bf898006643","guid":"bfdfe7dc352907fc980b868725387e989123eaae274c07667d11b48243dd507c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98aa3513025db45bd7ffe5ee391f9768e7","guid":"bfdfe7dc352907fc980b868725387e984947256e39494dd81f138f72a81b6dd9"},{"fileReference":"bfdfe7dc352907fc980b868725387e98fc6175e2764632da677d52a39e42bb16","guid":"bfdfe7dc352907fc980b868725387e98ea0dbd546f1c1b63713e045e5e571653"},{"fileReference":"bfdfe7dc352907fc980b868725387e98dae0a8c3c1b21b81135dbd60e418d8db","guid":"bfdfe7dc352907fc980b868725387e980d5c3d6b2a0d0a5719d1274e877a361b"},{"fileReference":"bfdfe7dc352907fc980b868725387e98bd62a04e5c91bc2974e629d48b54d184","guid":"bfdfe7dc352907fc980b868725387e9856866163aad5b97f725333dca919348a"},{"fileReference":"bfdfe7dc352907fc980b868725387e98ef70dd8afacddb2d1008f9e7f129694e","guid":"bfdfe7dc352907fc980b868725387e98f0ac09cfeee712cc9820ca62f57da84c"},{"fileReference":"bfdfe7dc352907fc980b868725387e98e337abba84be7b94c2888e415ed66dfc","guid":"bfdfe7dc352907fc980b868725387e984af39d3649529146536bd8044e5e9afd"},{"fileReference":"bfdfe7dc352907fc980b868725387e98eca6f0884f2f4050a9fc56a4dfa66216","guid":"bfdfe7dc352907fc980b868725387e989d141ba48866ba700d09705a2779f071"}],"guid":"bfdfe7dc352907fc980b868725387e9840c2019223a31a24c9d5d772d5b682ef","type":"com.apple.buildphase.sources"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e98d890c897b081023af2bf90d014d93890","guid":"bfdfe7dc352907fc980b868725387e98f54b4a8670a17084faf9564d25bf3022"}],"guid":"bfdfe7dc352907fc980b868725387e98bbcbde54eadddc7dbda1d45d8331ae37","type":"com.apple.buildphase.frameworks"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e9819d35fd5b4999f95b3d97e78794bae17","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[{"guid":"bfdfe7dc352907fc980b868725387e989da425bb6d6d5d8dbb95e4afffb82217","name":"Flutter"},{"guid":"bfdfe7dc352907fc980b868725387e98117b13c59de776c223f2f14af197afb1","name":"Google-Maps-iOS-Utils"},{"guid":"bfdfe7dc352907fc980b868725387e9818352c54edac2258b91768852065ce5e","name":"GoogleMaps"},{"guid":"bfdfe7dc352907fc980b868725387e9845fff747e8d3c707f1d7451d71a9982f","name":"google_maps_flutter_ios-google_maps_flutter_ios_privacy"}],"guid":"bfdfe7dc352907fc980b868725387e98df83286ef0c813795b2a6e5600f49912","name":"google_maps_flutter_ios","predominantSourceCodeLanguage":"Xcode.SourceCodeLanguage.Objective-C-Plus-Plus","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98e749aca54f09b9c5c4f2ba052cee0d36","name":"google_maps_flutter_ios.framework","type":"product"},"productTypeIdentifier":"com.apple.product-type.framework","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":1},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":1}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f7bd16dc3e27da9f416bedcd6d25c81e-json b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f7bd16dc3e27da9f416bedcd6d25c81e-json new file mode 100644 index 0000000..710f7b6 --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/target/TARGET@v11_hash=f7bd16dc3e27da9f416bedcd6d25c81e-json @@ -0,0 +1 @@ +{"buildConfigurations":[{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e983106f635c27eb9ff750b37aef1c2122a","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseInAppMessaging","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseInAppMessaging","INFOPLIST_FILE":"Target Support Files/FirebaseInAppMessaging/ResourceBundle-InAppMessagingDisplayResources-FirebaseInAppMessaging-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"13.0","ONLY_ACTIVE_ARCH":"NO","PRODUCT_NAME":"InAppMessagingDisplayResources","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e9817ccc82b7d75852dd0cb13129e28e065","name":"Debug"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9873c1e50ab2e948a439504af0c877b222","buildSettings":{"CLANG_ENABLE_OBJC_WEAK":"NO","CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseInAppMessaging","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseInAppMessaging","INFOPLIST_FILE":"Target Support Files/FirebaseInAppMessaging/ResourceBundle-InAppMessagingDisplayResources-FirebaseInAppMessaging-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"13.0","PRODUCT_NAME":"InAppMessagingDisplayResources","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","VALIDATE_PRODUCT":"YES","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e988f2fee54d0f6a5098d5a645fa2a05adb","name":"Profile"},{"baseConfigurationFileReference":"bfdfe7dc352907fc980b868725387e9873c1e50ab2e948a439504af0c877b222","buildSettings":{"CODE_SIGNING_ALLOWED":"NO","CODE_SIGNING_IDENTITY":"-","CODE_SIGNING_REQUIRED":"NO","CONFIGURATION_BUILD_DIR":"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/FirebaseInAppMessaging","EXPANDED_CODE_SIGN_IDENTITY":"-","IBSC_MODULE":"FirebaseInAppMessaging","INFOPLIST_FILE":"Target Support Files/FirebaseInAppMessaging/ResourceBundle-InAppMessagingDisplayResources-FirebaseInAppMessaging-Info.plist","IPHONEOS_DEPLOYMENT_TARGET":"13.0","PRODUCT_NAME":"InAppMessagingDisplayResources","SDKROOT":"iphoneos","SKIP_INSTALL":"YES","TARGETED_DEVICE_FAMILY":"1,2","WRAPPER_EXTENSION":"bundle"},"guid":"bfdfe7dc352907fc980b868725387e983d2f317c5b3d7dee6ee71e289835ef49","name":"Release"}],"buildPhases":[{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e98a61f6e3e0f8ea0d2ed9ecee1d3a63fda","type":"com.apple.buildphase.sources"},{"buildFiles":[],"guid":"bfdfe7dc352907fc980b868725387e980902563f15fad15913d6c8cee06feb30","type":"com.apple.buildphase.frameworks"},{"buildFiles":[{"fileReference":"bfdfe7dc352907fc980b868725387e9823bade057a6925e2ffc64411ea091b18","guid":"bfdfe7dc352907fc980b868725387e98c1344f1c5f1a87db6c14099d8236569e"},{"fileReference":"bfdfe7dc352907fc980b868725387e98c9af6da466ebf375b5991aae863086f7","guid":"bfdfe7dc352907fc980b868725387e983d3cad4bc520569a52943e5a0675718a"},{"fileReference":"bfdfe7dc352907fc980b868725387e986ef36210b84044f558afeaa66abb8a4a","guid":"bfdfe7dc352907fc980b868725387e9825ac28d2e02d39f4a78eb1ea8ac07477"}],"guid":"bfdfe7dc352907fc980b868725387e98218cd7c1b1fe798820393238037ef498","type":"com.apple.buildphase.resources"}],"buildRules":[],"dependencies":[],"guid":"bfdfe7dc352907fc980b868725387e98a41cd94e79391f4e82bc37c6a3c14041","name":"FirebaseInAppMessaging-InAppMessagingDisplayResources","productReference":{"guid":"bfdfe7dc352907fc980b868725387e98ff09409acd2a538714d8cfb60dd7f138","name":"InAppMessagingDisplayResources.bundle","type":"product"},"productTypeIdentifier":"com.apple.product-type.bundle","provisioningSourceData":[{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Debug","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Profile","provisioningStyle":0},{"bundleIdentifierFromInfoPlist":"${PRODUCT_BUNDLE_IDENTIFIER}","configurationName":"Release","provisioningStyle":0}],"type":"standard"} \ No newline at end of file diff --git a/android_backup/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=5515e7bee5ced8ac4a31db6018109655-json b/android_backup/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=5515e7bee5ced8ac4a31db6018109655-json new file mode 100644 index 0000000..8d73b2c --- /dev/null +++ b/android_backup/build/ios/XCBuildData/PIFCache/workspace/WORKSPACE@v11_hash=(null)_subobjects=5515e7bee5ced8ac4a31db6018109655-json @@ -0,0 +1 @@ +{"guid":"dc4b70c03e8043e50e38f2068887b1d4","name":"Pods","path":"/Users/anbarasu/StudioProjects/businessv1/ios/Pods/Pods.xcodeproj/project.xcworkspace","projects":["PROJECT@v11_mod=4bd6caac346ef9536ea7e6c41cb7f954_hash=bfdfe7dc352907fc980b868725387e98plugins=1OJSG6M1FOV3XYQCBH7Z29RZ0FPR9XDE1"]} \ No newline at end of file diff --git a/android_backup/gradle.properties b/android_backup/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/android_backup/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/android_backup/gradle/wrapper/gradle-wrapper.properties b/android_backup/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..7666e22 --- /dev/null +++ b/android_backup/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip diff --git a/android_backup/settings.gradle b/android_backup/settings.gradle new file mode 100644 index 0000000..945376f --- /dev/null +++ b/android_backup/settings.gradle @@ -0,0 +1,21 @@ +pluginManagement { + def flutterSdkPath + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null : "flutter.sdk not set in local.properties" + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-gradle-plugin" +} + +include ":app" diff --git a/assets/Update.json b/assets/Update.json new file mode 100644 index 0000000..76b7941 --- /dev/null +++ b/assets/Update.json @@ -0,0 +1 @@ +{"nm":"3708457","ddd":0,"h":500,"w":500,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"Shape Layer 2","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-44.375,-37.875,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[205.375,216.375,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-38.25,-14.75],[-20.75,-41]]}],"t":11},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-53.25,-10.5],[-24,-28.75]]}],"t":31},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-42.75,-30.25],[8.75,-44.25]]}],"t":55},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-25.074,-32.162],[12.632,-55.485]]}],"t":65},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-23.75,-37.75],[10.25,-62.5]]}],"t":72},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-25.25,-15.25],[-5.25,-61.5]]}],"t":86},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-47.25,-5.25],[-19.25,-40.5]]}],"t":100},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-57.25,0.75],[-24.75,-28.5]]}],"t":118},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-42.75,-30.25],[8.75,-44.25]]}],"t":142},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-19.806,-29.583],[13.917,-53.361]]}],"t":150},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-23.75,-37.75],[10.25,-62.5]]}],"t":160},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-25.25,-15.25],[-5.25,-61.5]]}],"t":173},{"s":[{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-68,-61],[-38.25,-14.75],[-20.75,-41]]}],"t":187}],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"rd","bm":0,"hd":false,"mn":"ADBE Vector Filter - RC","nm":"Round Corners 1","ix":2,"r":{"a":0,"k":10,"ix":1}}],"ind":1},{"ty":4,"nm":"hand 2","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[19.856,724.529,0],"ix":1},"s":{"a":0,"k":[3,3,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[224.25,211,0],"t":11,"ti":[-0.375,0.458,0],"to":[-0.458,1.875,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[221.5,222.25,0],"t":31,"ti":[-5.583,5.5,0],"to":[0.352,-0.43,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[256,206,0],"t":55,"ti":[3,2.375,0],"to":[5.583,-5.5,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[255,189.25,0],"t":73,"ti":[5.125,-3.625,0],"to":[-3,-2.375,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[238,191.75,0],"t":86,"ti":[2.75,-5.083,0],"to":[-5.125,3.625,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[224.25,211,0],"t":100,"ti":[-0.375,0.458,0],"to":[-2.75,5.083,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[221.5,222.25,0],"t":118,"ti":[-5.583,5.5,0],"to":[0.352,-0.43,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[256,206,0],"t":142,"ti":[3,2.375,0],"to":[5.583,-5.5,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[255,189.25,0],"t":160,"ti":[5.125,-3.625,0],"to":[-3,-2.375,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[238,191.75,0],"t":173,"ti":[2.292,-3.208,0],"to":[-5.125,3.625,0]},{"s":[224.25,211,0],"t":187}],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[54],"t":11},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[72],"t":31},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[79],"t":55},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[56],"t":73},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[32],"t":86},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[54],"t":100},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[72],"t":118},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[79],"t":142},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[56],"t":160},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[32],"t":173},{"s":[54],"t":187}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 67","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[27.21,32.24],[0,0],[-3.15,-37.77]],"o":[[0,0],[0,0],[3.15,37.75]],"v":[[-23.73,70.515],[-23.73,-102.755],[20.58,3.865]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9373,0.6353,0.4353],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-56.35,265.615],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 68","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-14.43,-3.98],[0.12,0.11],[25.35,10.71],[6.55,5.26],[-20.45,-4.5]],"o":[[-0.12,-0.11],[0,0],[-32.54,-18.04],[7.55,8.64],[17.95,3.96]],"v":[[77.135,46.175],[76.775,45.855],[3.275,-2.815],[-77.135,-46.175],[3.985,27.085]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9373,0.6353,0.4353],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[259.195,59.725],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 69","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-9.44,-5.24],[-4.2,12.59]],"o":[[0,0],[9.45,5.25],[4.19,-12.59]],"v":[[-67.66,-67.135],[13.11,54.545],[63.47,54.545]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9373,0.6353,0.4353],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[45.44,-26.415],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 70","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.35,-2.57],[0,0],[47.41,58.26],[28.24,86.39],[2.42,10.59],[0.34,9.9],[0,0],[-1.69,54.12],[0,0],[0,0],[-0.08,2.32],[0,0],[-0.01,0.23],[-0.28,8.06],[-0.25,5.93],[0,0],[-0.01,0.01],[-29.58,-21.31],[-6.02,-16.23],[-3.36,-12.54],[-4.95,-15.44],[-5.88,-6.82],[-0.09,-0.11],[0,0],[0,0],[0,0],[0,0],[18.85,44.38],[4.68,19.82],[0.76,4.57],[0,0.01],[-3.85,12.65],[-11.89,-0.46],[-1.15,-0.13],[-1.11,-0.3],[-1.84,-1.07],[-0.01,-0.01],[-2.04,-2.99],[-13.47,-17.62],[-9.94,-13.06],[-4.52,-6.36],[0,0],[0,0],[-8.92,-8.33],[-7.24,-8.23],[-35.44,-19.64],[0,0],[-3.85,-8.38],[-21.41,-154.48]],"o":[[0,0],[-22.06,-14.79],[-10.04,-12.35],[-17.63,-53.96],[-0.84,-3.69],[0,0],[-1.2,-35.33],[0,0],[0,0],[0.08,-2.38],[0,0],[0.01,-0.23],[0.31,-9.4],[0.71,-20.14],[0,0],[0,0],[0.73,-0.41],[7.14,5.15],[3.85,10.36],[12.92,48.23],[7.98,24.95],[0.09,0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[-8.25,-19.42],[-1.12,-4.72],[0,-0.01],[-2.77,-16.75],[6.87,-22.53],[1.23,0.04],[1.16,0.14],[2.09,0.55],[0.02,0],[3.05,1.78],[0,0],[8.86,11.6],[17.7,23.27],[24.43,34.39],[0,0],[12.2,0.51],[27.38,25.57],[0,2.7],[25.35,10.71],[9.98,8.81],[16.51,35.93],[6.89,49.66]],"v":[[378.22,545.695],[-81.84,545.695],[-265.88,394.495],[-340.91,189.355],[-375.28,78.625],[-377.02,57.725],[-377.02,57.625],[-374.89,-99.955],[-374.88,-100.205],[-374.85,-100.915],[-374.62,-107.955],[-374.62,-108.035],[-374.6,-108.735],[-373.71,-135.055],[-372.15,-176.275],[-372.05,-179.035],[-372.03,-179.045],[-319.59,-169.955],[-299.83,-136.135],[-289.01,-101.335],[-261.87,19.995],[-153.95,161.485],[-153.67,161.825],[-153.67,-11.445],[-224.68,-201.445],[-253.83,-279.445],[-268.48,-318.645],[-309.8,-399.915],[-330.29,-460.005],[-333.12,-473.965],[-333.12,-473.985],[-332.23,-518.925],[-297.99,-545.235],[-294.42,-544.955],[-291,-544.295],[-285.09,-541.835],[-285.06,-541.815],[-277.34,-534.595],[-253.83,-503.865],[-224.68,-465.655],[-186.02,-414.315],[-95.81,-267.855],[-18.81,-264.625],[13.92,-250.925],[107.57,-161.795],[188.88,-117.395],[262.38,-68.725],[283.81,-42.765],[366.51,460.135]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.698,0.4902],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[73.59,174.305],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":2,"nm":"Floor","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[211.481,0.51,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[250,482.382,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"refId":"image_0","ind":3},{"ty":4,"nm":"leave 5","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[67,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[402.75,328.25,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[10],"t":69},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-11],"t":116},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[10],"t":155},{"s":[0],"t":181}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 28","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.021,0.068],[-1.884,0.582],[-2.925,0.706],[-1.941,0.341],[-0.011,-0.065],[1.921,-0.429],[2.919,-0.702],[1.907,-0.494]],"o":[[-0.019,-0.063],[1.884,-0.58],[2.927,-0.704],[1.943,-0.341],[0.013,0.071],[-1.921,0.428],[-2.917,0.703],[-1.905,0.493]],"v":[[-10.572,2.546],[-7.56,1.486],[-0.126,-0.535],[7.414,-2.122],[10.578,-2.549],[7.484,-1.777],[-0.009,-0.053],[-7.465,1.825]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[36.228,9.216],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 29","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.14,0.012],[-0.063,-2.57],[0.135,0.006],[0.067,2.553]],"o":[[0.134,-0.012],[0.067,2.571],[-0.139,-0.004],[-0.062,-2.554]],"v":[[-0.209,-4.633],[0.282,-0.006],[0.025,4.639],[-0.215,0.007]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[55.556,6.898],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 30","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.024,-0.066],[1.322,-0.52],[2.065,-0.656],[1.379,-0.337],[0.017,0.065],[-1.352,0.424],[-1.971,0.616],[-1.524,0.492]],"o":[[0.023,0.062],[-1.321,0.521],[-2.066,0.655],[-1.38,0.336],[-0.017,-0.068],[1.529,-0.478],[1.963,-0.635],[1.349,-0.435]],"v":[[7.463,-2.371],[5.366,-1.418],[0.133,0.426],[-5.206,1.941],[-7.468,2.372],[-5.3,1.602],[-0.017,-0.049],[5.247,-1.749]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.416,22.179],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 31","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.002,0.045],[-0.357,0.028],[-0.681,-0.006],[-2.41,-0.401],[-2.958,-1.319],[-2.785,-2.496],[-1.6,-2.809],[-0.634,-2.358],[-0.102,-1.359],[-0.017,-0.358],[0.016,0],[0.165,1.344],[0.676,2.321],[5.493,4.974],[4.726,0.845],[1.355,0.026]],"o":[[-0.001,-0.017],[0.358,-0.018],[1.364,-0.033],[2.409,0.396],[2.954,1.312],[2.762,2.523],[1.607,2.811],[0.64,2.359],[0.075,0.677],[0.009,0.358],[-0.044,0.003],[-0.16,-1.346],[-1.31,-4.619],[-5.495,-4.967],[-2.378,-0.44],[-1.354,-0.03]],"v":[[-17.913,-16.113],[-17.37,-16.18],[-15.803,-16.256],[-10.048,-15.799],[-1.852,-13.309],[6.944,-7.601],[13.503,0.585],[16.797,8.492],[17.824,14.173],[17.906,15.74],[17.893,16.286],[17.633,14.194],[16.458,8.589],[6.611,-7.232],[-10.109,-15.453],[-15.805,-16.062]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[49.908,20.527],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 32","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.591,-6.789],[13.826,8.159],[0.128,0.473],[-0.442,0.457],[-8.174,-0.588],[-4.002,-7.153]],"o":[[-13.824,-8.157],[-0.422,-0.25],[-0.166,-0.613],[5.704,-5.885],[8.175,0.589],[4.003,7.152]],"v":[[19.03,18.225],[-22.445,-6.249],[-23.454,-7.267],[-22.716,-8.929],[-0.552,-17.637],[19.486,-5.174]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[48.462,18.475],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 33","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.534,-2.776],[0.221,-0.019],[0.132,0.203],[4.053,6.22],[0,0]],"o":[[-1.533,2.776],[-0.107,0.193],[-0.242,0.019],[-4.054,-6.221],[0,0],[0,0]],"v":[[8.891,1.57],[4.292,9.899],[3.822,10.329],[3.268,9.918],[-8.891,-8.743],[-6.089,-10.33]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[33.939,20.122],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 34","ix":7,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.534,-2.776],[0.221,-0.019],[0.132,0.203],[4.053,6.22],[0,0]],"o":[[-1.533,2.776],[-0.107,0.193],[-0.242,0.019],[-4.054,-6.221],[0,0],[0,0]],"v":[[8.891,1.561],[4.292,9.89],[3.822,10.32],[3.268,9.909],[-8.891,-8.752],[-6.089,-10.339]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[33.939,20.131],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"leave 4","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[46,40,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[386,336,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[19],"t":58},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-3],"t":106},{"s":[0],"t":178}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 22","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.004,0.069],[-1.715,-0.011],[-2.614,-0.086],[-1.713,-0.101],[0.002,-0.069],[1.715,0.012],[2.616,0.086],[1.712,0.101]],"o":[[0.003,-0.068],[1.715,0.013],[2.614,0.086],[1.712,0.102],[0,0.068],[-1.715,-0.012],[-2.615,-0.086],[-1.712,-0.102]],"v":[[-9.467,-0.314],[-6.687,-0.398],[0.01,-0.249],[6.701,0.045],[9.469,0.313],[6.693,0.397],[-0.007,0.248],[-6.701,-0.046]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.667,43.932],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 23","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.137,-0.01],[0.401,5.799],[-0.137,0.01],[-0.401,-5.801]],"o":[[-0.137,0.01],[-0.401,-5.802],[0.137,-0.01],[0.402,5.8]],"v":[[0.726,10.503],[-0.248,0.018],[-0.726,-10.503],[0.247,-0.017]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[35.891,54.577],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 24","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.07,-0.001],[0.044,1.672],[-0.071,2.55],[-0.139,1.667],[-0.068,-0.004],[0.049,-1.669],[0.075,-2.461],[0.046,-1.831]],"o":[[-0.067,0.001],[-0.046,-1.671],[0.071,-2.551],[0.139,-1.666],[0.07,0.005],[-0.056,1.831],[-0.061,2.461],[-0.044,1.67]],"v":[[-0.171,9.226],[-0.361,6.522],[-0.344,-0.01],[0.003,-6.535],[0.345,-9.223],[0.354,-6.514],[0.153,0.003],[-0.011,6.522]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[20.386,64.21],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 25","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.038,-0.131],[4.83,-1.412],[0.038,0.132],[-4.832,1.412]],"o":[[0.039,0.132],[-4.831,1.413],[-0.039,-0.132],[4.83,-1.412]],"v":[[8.747,-2.558],[0.07,0.238],[-8.746,2.557],[-0.068,-0.239]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[11.825,56.846],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 26","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.005,-0.017],[0.38,-0.136],[0.683,-0.236],[0.436,-0.146],[0.506,-0.196],[1.231,-0.597],[0.677,-0.309],[0.714,-0.364],[1.553,-0.917],[3.14,-2.736],[2.3,-2.779],[0.886,-1.34],[0.397,-0.631],[0.361,-0.581],[0.531,-0.945],[0.212,-0.414],[0.169,-0.35],[0.202,-0.408],[0.016,0.007],[-0.154,0.372],[-0.286,0.665],[-0.187,0.423],[-0.247,0.486],[-0.733,1.161],[-0.385,0.641],[-0.449,0.672],[-1.105,1.441],[-3.136,2.788],[-3.084,1.919],[-1.459,0.697],[-0.685,0.306],[-0.63,0.275],[-1.021,0.384],[-0.444,0.145],[-0.373,0.11],[-0.438,0.125]],"o":[[0.005,0.017],[-0.431,0.149],[-0.368,0.123],[-0.438,0.157],[-1.006,0.407],[-0.623,0.284],[-0.677,0.312],[-1.443,0.708],[-3.05,1.928],[-3.116,2.768],[-1.108,1.425],[-0.453,0.662],[-0.391,0.633],[-0.749,1.145],[-0.259,0.478],[-0.201,0.414],[-0.32,0.648],[-0.184,0.359],[-0.017,-0.007],[0.18,-0.419],[0.157,-0.357],[0.199,-0.421],[0.512,-0.962],[0.354,-0.59],[0.39,-0.641],[0.877,-1.358],[2.296,-2.815],[3.165,-2.756],[1.571,-0.913],[0.723,-0.358],[0.686,-0.3],[1.246,-0.58],[0.513,-0.185],[0.443,-0.13],[0.697,-0.199],[0.39,-0.106]],"v":[[22.004,-19.349],[21.432,-19.117],[19.765,-18.542],[18.558,-18.141],[17.148,-17.59],[13.743,-16.18],[11.792,-15.292],[9.727,-14.232],[5.273,-11.702],[-4.145,-4.717],[-12.275,3.737],[-15.352,7.834],[-16.669,9.748],[-17.798,11.569],[-19.63,14.766],[-20.354,16.095],[-20.907,17.241],[-21.688,18.821],[-21.992,19.359],[-21.781,18.781],[-21.082,17.159],[-20.566,15.99],[-19.877,14.637],[-18.1,11.389],[-16.99,9.541],[-15.691,7.599],[-12.631,3.45],[-4.475,-5.09],[5.032,-12.09],[9.537,-14.598],[11.628,-15.639],[13.603,-16.502],[17.051,-17.852],[18.481,-18.365],[19.705,-18.727],[21.403,-19.212]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[26.436,58.548],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 27","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.425,1.414],[4.473,-0.176],[4.1,-1.796],[4.178,-6.39],[-3.129,-6.965],[-0.699,-0.298],[-0.762,0.249],[-7.314,4.064],[-3.924,7.389],[-0.154,2.002]],"o":[[-3.567,-2.705],[-4.472,0.178],[-6.993,3.064],[-4.179,6.39],[0.311,0.694],[0.736,0.316],[7.954,-2.595],[7.313,-4.063],[0.942,-1.773],[0.155,-2.002]],"v":[[23.07,-17.428],[11.257,-20.488],[-1.67,-17.152],[-19.416,-3.184],[-21.92,18.63],[-20.504,20.348],[-18.163,20.169],[5.115,10.891],[23.01,-6.21],[24.894,-11.884]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.299,57.465],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":4,"nm":"leave 3","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[67.02,46.534,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[401.25,353,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":3},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-6],"t":55},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[15],"t":109},{"s":[0],"t":185}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 17","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.096,-0.099],[3.547,3.465],[-0.095,0.099],[-3.548,-3.465]],"o":[[-0.096,0.098],[-3.548,-3.465],[0.096,-0.098],[3.546,3.465]],"v":[[6.422,6.273],[-0.174,0.178],[-6.423,-6.274],[0.174,-0.178]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[71.513,58.549],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 18","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.074,-0.115],[5.452,-3.505],[0.074,0.116],[-5.454,3.507]],"o":[[0.074,0.116],[-5.454,3.506],[-0.074,-0.116],[5.452,-3.505]],"v":[[9.874,-6.349],[0.135,0.208],[-9.874,6.348],[-0.134,-0.21]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[55.765,57.898],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 19","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.057,-0.035],[1.045,1.535],[1.556,2.273],[1.157,1.639],[-0.055,0.043],[-1.149,-1.462],[-1.622,-2.33],[-0.971,-1.587]],"o":[[-0.06,0.038],[-1.133,-1.655],[-1.59,-2.25],[-1.076,-1.512],[0.053,-0.041],[1.151,1.461],[1.62,2.329],[0.971,1.586]],"v":[[5.86,8.424],[4.097,5.984],[-0.001,0.002],[-4.186,-5.921],[-5.861,-8.421],[-3.904,-6.131],[0.407,-0.281],[4.393,5.793]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[66.657,76.384],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 20","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.049,-0.05],[1.073,-1.07],[1.738,-1.525],[1.201,-0.923],[0.042,0.051],[-1.142,0.992],[-1.672,1.452],[-1.263,1.119]],"o":[[0.046,0.049],[-1.074,1.07],[-1.74,1.524],[-1.201,0.925],[-0.044,-0.056],[1.274,-1.107],[1.658,-1.468],[1.133,-1.002]],"v":[[6.284,-5.511],[4.63,-3.695],[0.295,0.336],[-4.27,4.106],[-6.286,5.51],[-4.492,3.835],[-0.033,-0.037],[4.388,-3.951]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[53.104,79.743],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 21","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.017,-0.001],[0.023,0.373],[0.029,0.663],[-0.054,2.533],[-0.297,3.338],[-0.669,3.81],[-0.849,3.242],[-0.832,2.394],[-0.547,1.307],[-0.165,0.394],[-0.015,-0.006],[0.119,-0.353],[0.221,-0.626],[0.779,-2.403],[0.845,-3.232],[0.684,-3.794],[0.346,-3.321],[0.09,-2.525],[-0.003,-1.414],[0.006,-0.427]],"o":[[-0.018,0],[-0.019,-0.426],[-0.062,-1.415],[0.045,-2.534],[0.324,-3.335],[0.688,-3.808],[0.873,-3.236],[0.825,-2.394],[0.257,-0.612],[0.15,-0.342],[0.017,0.007],[-0.142,0.403],[-0.491,1.326],[-0.788,2.402],[-0.822,3.237],[-0.667,3.796],[-0.323,3.324],[-0.098,2.526],[-0.008,0.664],[-0.01,0.373]],"v":[[-4.773,27.344],[-4.833,26.777],[-4.906,25.148],[-4.929,19.149],[-4.418,10.263],[-2.958,-0.539],[-0.597,-11.184],[1.991,-19.701],[4.084,-25.322],[4.715,-26.826],[4.966,-27.338],[4.808,-26.789],[4.265,-25.253],[2.325,-19.59],[-0.154,-11.068],[-2.468,-0.452],[-3.961,10.307],[-4.578,19.159],[-4.712,25.145],[-4.733,26.775]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[61.974,75.187],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 35","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[2.837,-1.007],[3.265,0.034],[1.997,-2.583],[0.9,-3.138],[-0.941,-7.914],[-5.679,-5.591],[-1.268,0.271],[-0.526,0.475],[0.441,15.026],[1.666,2.508]],"o":[[-0.303,-3.252],[-3.265,-0.033],[-1.997,2.584],[-2.199,7.66],[0.939,7.913],[0.923,0.909],[0.692,-0.147],[11.155,-10.077],[-0.088,-3.009],[-1.667,-2.507]],"v":[[5.791,-24.305],[-1.063,-30.043],[-9.368,-25.535],[-13.367,-16.659],[-15.828,6.963],[-5.999,28.258],[-2.612,29.805],[-0.826,28.702],[16.329,-11.494],[14.18,-20.143]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[61.421,72.039],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":6},{"ty":4,"nm":"leave 2","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[80,65,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[414,366.5,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":3},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[15],"t":26},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-7],"t":44},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[15],"t":68},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-7],"t":91},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[15],"t":123},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-7],"t":152},{"s":[0],"t":184}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.037,-0.062],[1.415,0.858],[2.042,1.482],[1.294,1.026],[-0.042,0.055],[-1.348,-0.956],[-1.968,-1.431],[-1.361,-0.932]],"o":[[-0.034,0.056],[-1.415,-0.858],[-2.042,-1.483],[-1.293,-1.028],[0.041,-0.055],[1.468,1.067],[2.036,1.477],[1.361,0.93]],"v":[[7.45,5.265],[5.094,3.987],[-0.275,0.388],[-5.411,-3.523],[-7.445,-5.267],[-5.2,-3.805],[0.017,-0.014],[5.284,3.692]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[96.529,53.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 12","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.118,-0.07],[1.004,-1.703],[0.119,0.07],[-1.006,1.704]],"o":[[0.118,0.069],[-1.006,1.705],[-0.118,-0.069],[1.005,-1.704]],"v":[[1.821,-3.086],[0.214,0.126],[-1.821,3.085],[-0.214,-0.126]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[97.772,39.942],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 13","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.026,-0.139],[2.148,-0.195],[-0.002,0.133],[-2.121,0.198]],"o":[[0.026,0.131],[-2.15,0.201],[0,-0.142],[2.122,-0.192]],"v":[[3.848,-0.415],[0.027,0.353],[-3.872,0.297],[-0.019,-0.143]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[117.697,41.203],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 14","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.077,-0.113],[5.962,4.019],[-0.076,0.115],[-5.963,-4.022]],"o":[[-0.077,0.114],[-5.963,-4.022],[0.077,-0.113],[5.962,4.019]],"v":[[10.796,7.279],[-0.139,0.206],[-10.797,-7.281],[0.139,-0.206]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[115.452,48.538],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 15","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.009,-0.015],[0.408,0.208],[0.736,0.386],[2.8,1.342],[3.949,1.083],[4.679,-0.6],[3.037,-2.721],[1.318,-2.782],[0.59,-1.632],[0.168,-0.478],[0.016,0.005],[-0.125,0.441],[-0.239,0.795],[-1.285,2.847],[-3.111,2.797],[-4.742,0.623],[-3.966,-1.129],[-2.792,-1.373],[-1.512,-0.861],[-0.437,-0.256]],"o":[[-0.008,0.016],[-0.448,-0.235],[-1.539,-0.809],[-2.801,-1.327],[-3.933,-1.093],[-4.659,0.614],[-3.057,2.711],[-1.316,2.806],[-0.277,0.784],[-0.156,0.431],[-0.017,-0.005],[0.147,-0.486],[0.534,-1.655],[1.289,-2.823],[3.095,-2.807],[4.758,-0.61],[3.984,1.119],[2.79,1.388],[0.716,0.42],[0.393,0.237]],"v":[[27.068,-1.544],[26.433,-1.839],[24.658,-2.769],[18.105,-6.115],[7.96,-10.024],[-5.188,-11.09],[-17.174,-5.942],[-23.415,2.825],[-26.131,9.65],[-26.798,11.538],[-27.059,12.188],[-26.893,11.508],[-26.316,9.59],[-23.735,2.678],[-17.479,-6.286],[-5.252,-11.583],[8.083,-10.466],[18.258,-6.431],[24.753,-2.939],[26.481,-1.927]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[108.171,52.531],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 16","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.21,-8.611],[0,0],[-2.323,1.308],[-1.221,0.491],[-4.981,0.25],[-7.328,3.546],[-0.227,0.412],[1.23,0.758],[7.153,1.93],[6.103,-4.199]],"o":[[0,0],[2.657,-0.22],[1.148,-0.647],[4.629,-1.858],[8.13,-0.408],[0.423,-0.205],[0.769,-1.401],[-6.306,-3.885],[-7.152,-1.929],[-7.164,4.93]],"v":[[-27.447,14.097],[-23.705,13.787],[-16.145,11.473],[-12.622,9.703],[2.152,7.928],[25.654,1.918],[26.678,0.989],[24.79,-2.417],[4.911,-12.168],[-16.464,-9.571]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[108.476,50.459],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":7},{"ty":4,"nm":"leave 1","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[86.5,80,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[421,376.5,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-5],"t":12},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[12],"t":36},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[1],"t":57},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-5],"t":73},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[12],"t":97},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[1],"t":118},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-5],"t":134},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[12],"t":158},{"s":[-5],"t":179}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.015,-0.136],[5.483,0.581],[-0.015,0.136],[-5.486,-0.581]],"o":[[-0.014,0.137],[-5.484,-0.582],[0.014,-0.136],[5.483,0.582]],"v":[[9.929,1.052],[-0.026,0.247],[-9.929,-1.053],[0.027,-0.248]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[98.733,85.807],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.069,0.014],[-0.314,1.705],[-0.667,2.561],[-0.559,1.641],[-0.062,-0.021],[0.472,-1.663],[0.666,-2.551],[0.402,-1.682]],"o":[[-0.065,-0.013],[0.314,-1.704],[0.669,-2.56],[0.559,-1.641],[0.068,0.022],[-0.473,1.664],[-0.665,2.551],[-0.4,1.683]],"v":[[-2.415,9.251],[-2.029,6.47],[-0.548,-0.139],[1.39,-6.629],[2.412,-9.244],[1.726,-6.524],[-0.066,-0.013],[-1.686,6.542]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[88.231,97.607],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.02,-0.062],[1.538,0.402],[2.363,0.533],[1.562,0.296],[-0.009,0.071],[-1.582,-0.208],[-2.377,-0.535],[-1.519,-0.489]],"o":[[-0.021,0.068],[-1.538,-0.402],[-2.365,-0.532],[-1.562,-0.295],[0.009,-0.066],[1.581,0.208],[2.377,0.536],[1.518,0.49]],"v":[[8.567,1.93],[6.051,1.352],[0.025,-0.133],[-6.058,-1.377],[-8.578,-1.932],[-6.001,-1.723],[0.133,-0.618],[6.15,1.014]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[108.287,99.929],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.07,0.015],[-0.28,1.47],[-0.619,2.199],[-0.528,1.399],[-0.063,-0.022],[0.442,-1.425],[0.617,-2.189],[0.366,-1.446]],"o":[[-0.064,-0.013],[0.279,-1.471],[0.62,-2.199],[0.529,-1.402],[0.066,0.025],[-0.442,1.425],[-0.616,2.189],[-0.367,1.446]],"v":[[-2.237,7.94],[-1.909,5.537],[-0.552,-0.152],[1.259,-5.712],[2.235,-7.934],[1.592,-5.599],[-0.074,-0.017],[-1.566,5.613]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[101.303,111.128],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.029,-0.048],[0.326,0.17],[0.548,0.437],[1.121,2.225],[0.622,1.328],[0.676,1.492],[0.931,1.507],[1.222,1.435],[2.274,2.374],[1.389,2.075],[0.482,1.305],[0.082,0.358],[-0.017,0.005],[-0.52,-1.28],[-1.424,-2.02],[-2.294,-2.337],[-2.469,-2.901],[-0.937,-1.54],[-0.673,-1.499],[-0.589,-1.338],[-0.546,-1.11],[-1.061,-0.883]],"o":[[-0.009,0.015],[-0.322,-0.176],[-1.121,-0.851],[-0.569,-1.105],[-0.603,-1.334],[-0.681,-1.488],[-0.925,-1.508],[-2.444,-2.871],[-2.285,-2.363],[-1.403,-2.066],[-0.231,-0.659],[-0.09,-0.355],[0.047,-0.012],[0.535,1.273],[1.412,2.027],[2.283,2.347],[1.234,1.449],[0.941,1.537],[0.66,1.499],[0.599,1.323],[1.076,2.231],[1.043,0.899]],"v":[[15.49,22.216],[14.981,21.98],[13.645,21.083],[10.119,16.367],[8.292,12.734],[6.372,8.488],[4.011,3.947],[0.761,-0.471],[-6.579,-8.2],[-12.176,-14.916],[-14.911,-20.139],[-15.39,-21.671],[-15.502,-22.22],[-14.732,-20.21],[-11.887,-15.114],[-6.251,-8.518],[1.14,-0.792],[4.426,3.695],[6.788,8.298],[8.666,12.561],[10.432,16.206],[13.77,20.936]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[102.042,102.679],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.909,-2.104],[0.736,-3.619],[-1.588,-3.334],[-6.393,-5.096],[-8.176,0.042],[0.842,7.122],[4.449,4.405],[6.224,0.673]],"o":[[-3.57,-0.942],[-0.736,3.62],[3.518,7.381],[6.395,5.095],[-1.51,-7.012],[-0.735,-6.217],[-4.448,-4.404],[-2.279,-0.246]],"v":[[-11.046,-21.187],[-19.609,-15.038],[-17.399,-4.383],[-2.633,14.937],[19.945,23.249],[19.503,1.79],[11.421,-14.772],[-5.22,-22.688]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[97.586,101.647],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":8},{"ty":4,"nm":"Plant Outlines","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[68.087,95.116,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[404.499,387.515,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.138],[13.468,0],[0,0.138],[-13.472,0]],"o":[[0,0.138],[-13.472,0],[0,-0.138],[13.468,0]],"v":[[24.39,-0.001],[0.001,0.248],[-24.39,-0.001],[0.001,-0.249]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.517,158.705],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.138],[13.02,0],[0,0.137],[-13.026,0]],"o":[[0,0.137],[-13.026,0],[0,-0.138],[13.02,0]],"v":[[23.58,0.001],[0.002,0.249],[-23.58,0.001],[0.002,-0.248]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[71.327,163.964],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.137],[13.02,0],[0,0.138],[-13.026,0]],"o":[[0,0.138],[-13.026,0],[0,-0.137],[13.02,0]],"v":[[23.579,-0.001],[0.001,0.248],[-23.579,-0.001],[0.001,-0.249]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.916,161.081],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.138],[19.325,0],[0,0.137],[-19.331,0]],"o":[[0,0.137],[-19.331,0],[0,-0.138],[19.325,0]],"v":[[34.995,0.001],[0.001,0.248],[-34.995,0.001],[0.001,-0.248]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.401,140.916],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 36","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.008,0],[0.018,0.179],[0.026,0.324],[0.087,1.291],[0.294,4.691],[1.588,14.338],[0.979,6.173],[0.535,2.728],[0.488,2.313],[0.411,1.832],[0.326,1.282],[0.174,0.712],[0.046,0.201],[-0.009,0.003],[-0.054,-0.171],[-0.091,-0.312],[-0.347,-1.247],[-0.43,-1.829],[-0.48,-2.316],[-0.508,-2.736],[-0.534,-3.083],[-0.812,-7.176],[-0.517,-9.443],[-0.107,-2.643],[-0.026,-0.733],[-0.004,-0.207]],"o":[[-0.009,0.001],[-0.017,-0.206],[-0.05,-0.731],[-0.168,-2.677],[-0.605,-9.438],[-0.811,-7.168],[-0.519,-3.081],[-0.491,-2.735],[-0.458,-2.318],[-0.404,-1.834],[-0.307,-1.256],[-0.073,-0.316],[-0.037,-0.175],[0.008,-0.002],[0.057,0.198],[0.197,0.706],[0.355,1.275],[0.437,1.829],[0.509,2.311],[0.554,2.727],[1.004,6.177],[1.59,14.353],[0.256,4.724],[0.048,1.294],[0.007,0.324],[0.001,0.179]],"v":[[6.644,51.735],[6.604,51.466],[6.538,50.677],[6.333,47.638],[5.632,36.46],[2.563,-0.353],[-0.167,-20.502],[-1.693,-29.243],[-3.201,-36.825],[-4.581,-43.051],[-5.702,-47.736],[-6.426,-50.693],[-6.604,-51.465],[-6.646,-51.734],[-6.554,-51.479],[-6.331,-50.719],[-5.515,-47.784],[-4.311,-43.117],[-2.856,-36.899],[-1.29,-29.319],[0.286,-20.576],[3.057,-0.408],[5.984,36.438],[6.525,47.628],[6.637,50.673],[6.654,51.464]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[56.725,91.538],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 37","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.016,-0.006],[0.161,-0.49],[0.303,-0.893],[0.193,-0.559],[0.201,-0.663],[0.42,-1.697],[0.243,-0.921],[0.225,-1.002],[0.45,-2.267],[0.466,-5.315],[0.068,-4.624],[-0.19,-3.494],[-0.09,-1.388],[-0.088,-0.975],[-0.042,-0.559],[0.016,-0.002],[0.066,0.511],[0.11,0.937],[0.107,1.387],[0.084,1.751],[0.012,4.635],[-0.441,5.334],[-0.796,4.567],[-0.506,1.999],[-0.22,0.933],[-0.234,0.846],[-0.433,1.324],[-0.186,0.57],[-0.175,0.463],[-0.203,0.524]],"o":[[0.017,0.006],[-0.18,0.531],[-0.161,0.466],[-0.174,0.572],[-0.407,1.327],[-0.223,0.847],[-0.21,0.931],[-0.489,1.997],[-0.769,4.558],[-0.441,5.319],[-0.013,4.624],[0.061,1.748],[0.08,1.388],[0.073,0.94],[0.034,0.515],[-0.017,0.002],[-0.066,-0.558],[-0.118,-0.972],[-0.117,-1.387],[-0.235,-3.497],[0.043,-4.635],[0.469,-5.329],[0.463,-2.272],[0.237,-1.003],[0.255,-0.922],[0.443,-1.697],[0.215,-0.659],[0.209,-0.554],[0.341,-0.881],[0.191,-0.479]],"v":[[4.521,-38.165],[4.298,-37.408],[3.572,-35.274],[3.039,-33.736],[2.477,-31.883],[1.176,-27.349],[0.477,-24.695],[-0.177,-21.793],[-1.466,-15.359],[-3.379,-0.447],[-4.079,14.579],[-3.845,26.864],[-3.581,31.577],[-3.326,35.133],[-3.155,37.382],[-3.128,38.17],[-3.254,37.393],[-3.518,35.152],[-3.858,31.598],[-4.195,26.882],[-4.538,14.576],[-3.875,-0.49],[-1.917,-15.439],[-0.579,-21.884],[0.104,-24.788],[0.837,-27.441],[2.212,-31.968],[2.814,-33.812],[3.391,-35.339],[4.206,-37.444]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[77.016,101.386],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 38","ix":7,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.015,-0.008],[0.138,-0.343],[0.253,-0.605],[0.164,-0.386],[0.166,-0.464],[0.19,-0.527],[0.183,-0.597],[0.583,-3.246],[0.192,-3.807],[-0.46,-4.978],[-0.166,-1.39],[-0.046,-0.42],[0.016,-0.003],[0.066,0.362],[0.109,0.647],[0.269,2.492],[-0.34,7.658],[-0.535,3.276],[-0.809,2.381],[-0.2,0.529],[-0.181,0.468],[-0.158,0.401],[-0.15,0.318],[-0.186,0.381]],"o":[[0.016,0.008],[-0.163,0.389],[-0.138,0.327],[-0.143,0.404],[-0.168,0.468],[-0.186,0.53],[-0.762,2.378],[-0.508,3.262],[-0.339,7.622],[0.225,2.49],[0.071,0.651],[0.035,0.368],[-0.018,0.002],[-0.072,-0.417],[-0.225,-1.383],[-0.551,-4.979],[0.193,-3.824],[0.612,-3.262],[0.195,-0.596],[0.203,-0.525],[0.18,-0.461],[0.171,-0.391],[0.288,-0.589],[0.168,-0.329]],"v":[[3.318,-27.189],[3.13,-26.655],[2.507,-25.169],[2.052,-24.1],[1.589,-22.797],[1.05,-21.303],[0.534,-19.599],[-1.415,-11.058],[-2.497,-0.377],[-1.945,19.134],[-1.329,25.027],[-1.154,26.629],[-1.125,27.194],[-1.251,26.645],[-1.521,25.053],[-2.295,19.169],[-2.993,-0.401],[-1.868,-11.133],[0.198,-19.703],[0.753,-21.406],[1.328,-22.896],[1.835,-24.19],[2.331,-25.248],[3.04,-26.699]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[80.003,108.971],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 39","ix":8,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.137,-0.001],[0.08,28.304],[-0.137,0],[-0.08,-28.313]],"o":[[-0.138,0],[-0.08,-28.313],[0.138,0],[0.08,28.304]],"v":[[0.145,51.257],[-0.248,0.003],[-0.144,-51.257],[0.248,0.001]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[67.637,87.957],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 40","ix":9,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-28.451,-3.682],[-23.096,3.682],[22.065,3.682],[28.451,-3.682]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.439,186.301],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 41","ix":10,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-28.451,-24.769],[-18.409,24.769],[18.744,24.769],[28.451,-21.579]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.439,162.535],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 42","ix":11,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-34.761,4.674],[34.76,4.674],[34.76,-4.673],[-34.761,-4.673]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[34.999,4.912],[-34.999,4.912],[-34.999,-4.912],[34.999,-4.912]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.401,136.164],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 43","ix":12,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-34.881,4.792],[34.881,4.792],[34.881,-4.793],[-34.881,-4.793]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[70.401,136.165],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":9},{"ty":4,"nm":"Character Outlines","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[77.206,184.526,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[174.472,298.481,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0.655,0.826],[1.053,-0.02],[5.082,-0.928],[3.76,1.14],[3.861,0.729],[0.793,-0.215],[0.1,-0.815],[-1.215,-0.416],[-9.26,0.138]],"o":[[1.045,-0.472],[-0.655,-0.824],[-5.165,0.102],[-3.866,0.707],[-3.761,-1.142],[-0.808,-0.153],[-0.793,0.214],[-0.1,0.816],[0,0],[9.823,-0.145]],"v":[[21.445,0.471],[22.145,-2.252],[19.264,-3.239],[4.509,1.248],[-7.102,0.018],[-18.394,-3.342],[-20.837,-3.397],[-22.465,-1.742],[-21.157,0.093],[0.893,3.51]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[56.498,162.553],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.013,-0.034],[0.948,-0.388],[1.749,-0.546],[2.376,-0.486],[2.792,-0.214],[2.422,0.107],[1.809,0.294],[0.992,0.257],[-0.009,0.035],[-1.004,-0.185],[-1.807,-0.236],[-2.406,-0.106],[-2.772,0.194],[-2.369,0.431],[-1.75,0.506],[-0.963,0.339]],"o":[[0.013,0.033],[-0.944,0.399],[-1.748,0.554],[-2.381,0.46],[-2.794,0.196],[-2.422,-0.133],[-1.81,-0.285],[-0.994,-0.246],[0.008,-0.035],[1.001,0.195],[1.806,0.246],[2.406,0.08],[2.771,-0.213],[2.364,-0.456],[1.753,-0.498],[0.966,-0.329]],"v":[[19.837,-2.453],[18.386,-1.801],[14.296,-0.355],[8.055,1.228],[0.24,2.289],[-7.648,2.38],[-14.053,1.725],[-18.311,0.892],[-19.84,0.459],[-18.269,0.694],[-14.002,1.36],[-7.627,1.901],[0.202,1.77],[7.964,0.756],[14.191,-0.708],[18.316,-1.991]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[57.53,67.006],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.039,-0.079],[1.372,-0.503],[2.239,0.065],[1.332,0.588],[-0.031,0.046],[-1.341,-0.485],[-2.169,-0.071],[-1.364,0.405]],"o":[[0.027,0.048],[-1.365,0.505],[-2.239,-0.073],[-1.338,-0.587],[0.043,-0.077],[1.336,0.488],[2.169,0.063],[1.368,-0.4]],"v":[[7.648,-0.721],[5.547,0.333],[-0.065,1.206],[-5.613,-0.011],[-7.644,-1.193],[-5.477,-0.354],[-0.049,0.685],[5.433,-0.018]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[79.369,165.634],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":8,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.022,-0.028],[0.621,0.432],[1.126,0.745],[3.702,1.805],[2.564,0.849],[0.724,0.217],[-0.009,0.035],[-0.742,-0.162],[-1.303,-0.383],[-3.734,-1.812],[-2.208,-1.579],[-0.582,-0.487]],"o":[[-0.022,0.028],[-0.618,-0.436],[-2.25,-1.492],[-3.707,-1.799],[-1.281,-0.427],[-0.724,-0.221],[0.009,-0.035],[0.742,0.157],[2.604,0.764],[3.729,1.818],[1.106,0.788],[0.585,0.482]],"v":[[13.353,6.501],[12.355,5.872],[9.707,4.072],[0.56,-1.16],[-9.205,-5.126],[-12.254,-6.099],[-13.366,-6.495],[-12.202,-6.295],[-9.094,-5.478],[0.788,-1.628],[9.915,3.769],[12.477,5.71]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[42.88,158.751],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":9,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.008,-0.016],[5.355,0.524],[3.507,-0.456],[4.034,-0.757],[3.554,-0.31],[2.68,0.36],[1.405,0.55],[0.364,0.153],[-0.008,0.016],[-1.416,-0.479],[-2.655,-0.297],[-3.523,0.343],[-4.029,0.753],[-3.537,0.455],[-2.688,-0.341],[-1.382,-0.606],[-0.359,-0.167]],"o":[[-0.047,0.167],[-2.656,-0.289],[-3.509,0.478],[-4.031,0.754],[-3.551,0.319],[-2.68,-0.347],[-0.715,-0.239],[-0.359,-0.167],[0.02,-0.047],[1.414,0.488],[2.656,0.309],[3.526,-0.333],[4.024,-0.755],[3.536,-0.434],[2.687,0.322],[0.709,0.259],[0.351,0.184]],"v":[[29.146,0.391],[20.827,-1.85],[11.466,-1.527],[0.104,0.511],[-11.345,2.238],[-20.809,2.175],[-27.014,0.688],[-28.611,0.009],[-29.146,-0.27],[-26.947,0.496],[-20.766,1.81],[-11.389,1.76],[0.009,-0.001],[11.403,-2.003],[20.866,-2.216],[27.054,-0.655],[28.623,0.088]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[59.591,139.365],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":10,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.013,-0.05],[0.384,-0.109],[0.749,-0.123],[2.715,0.066],[3.491,0.799],[3.95,1.162],[3.527,0.457],[2.655,-0.4],[1.368,-0.621],[0.027,0.048],[-0.343,0.204],[-0.7,0.295],[-2.685,0.437],[-3.563,-0.421],[-3.964,-1.157],[-3.465,-0.821],[-2.687,-0.101],[-1.481,0.263]],"o":[[0.005,0.017],[-0.386,0.095],[-1.481,0.327],[-2.717,-0.055],[-3.493,-0.8],[-3.949,-1.152],[-3.524,-0.442],[-2.655,0.386],[-1.374,0.606],[-0.009,-0.016],[0.351,-0.186],[1.354,-0.684],[2.686,-0.453],[3.565,0.435],[3.956,1.164],[3.464,0.819],[2.684,0.113],[1.482,-0.252]],"v":[[29.115,2.764],[28.538,2.956],[26.845,3.377],[20.45,3.885],[11.029,2.561],[-0.179,-0.546],[-11.474,-3.054],[-20.876,-3.13],[-26.986,-1.449],[-29.111,-0.467],[-28.603,-0.8],[-27.069,-1.633],[-20.93,-3.494],[-11.414,-3.531],[-0.033,-1.046],[11.138,2.093],[20.464,3.516],[26.809,3.178]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[59.273,117.209],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":11,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.004,-0.018],[1.242,0.102],[2.165,-0.534],[2.604,-1.398],[3.14,-1.436],[2.985,-0.185],[2.19,0.552],[1.122,0.571],[0.286,0.167],[-0.009,0.016],[-1.144,-0.505],[-2.178,-0.488],[-2.939,0.19],[-3.086,1.443],[-2.651,1.356],[-2.215,0.477],[-1.252,-0.163],[-0.319,-0.095]],"o":[[-0.012,0.051],[-1.24,-0.1],[-2.166,0.515],[-2.62,1.369],[-3.131,1.465],[-2.995,0.168],[-2.197,-0.54],[-0.57,-0.268],[-0.284,-0.171],[0.024,-0.044],[1.139,0.51],[2.171,0.499],[2.934,-0.21],[3.095,-1.415],[2.637,-1.386],[2.215,-0.497],[0.627,0.083],[0.32,0.088]],"v":[[23.462,-4.819],[21.533,-5.051],[16.305,-4.574],[9.053,-1.674],[0.52,2.871],[-8.872,5.263],[-16.758,4.527],[-21.768,2.686],[-23.038,1.987],[-23.456,1.703],[-21.68,2.503],[-16.674,4.169],[-8.904,4.784],[0.305,2.397],[8.831,-2.099],[16.223,-4.934],[21.552,-5.253],[22.98,-4.978]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[52.635,90.194],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 14","ix":14,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.06,7.117],[-2.939,-5.037],[0.024,0.65],[0,0]],"o":[[0,0],[2.939,5.037],[-0.023,-0.65],[0,0]],"v":[[-6.413,-16.528],[-3.381,1.226],[6.411,16.499],[6.021,7.524]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[82.276,99.798],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 15","ix":15,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-1.428,19.663],[1.428,15.232],[-0.062,-19.663]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[27.98,105.293],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 16","ix":16,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.006,-0.018],[0.298,-0.109],[0.521,-0.18],[0.829,-0.221],[1.057,-0.227],[2.835,-0.382],[3.303,-0.022],[2.84,0.334],[2.102,0.505],[0.829,0.221],[0.572,0.194],[0.362,0.122],[-0.005,0.018],[-0.309,-0.074],[-0.533,-0.138],[-0.835,-0.187],[-1.058,-0.195],[-2.821,-0.337],[-3.28,-0.002],[-2.823,0.321],[-2.099,0.467],[-0.832,0.197],[-0.579,0.166],[-0.369,0.097]],"o":[[0.006,0.018],[-0.361,0.125],[-0.571,0.198],[-0.828,0.227],[-2.099,0.517],[-2.838,0.35],[-3.303,-0.003],[-2.837,-0.366],[-1.058,-0.221],[-0.831,-0.216],[-0.521,-0.176],[-0.299,-0.108],[0.006,-0.018],[0.369,0.095],[0.579,0.162],[0.832,0.193],[2.102,0.455],[2.826,0.304],[3.279,-0.021],[2.819,-0.352],[1.058,-0.202],[0.833,-0.192],[0.531,-0.141],[0.308,-0.076]],"v":[[23.446,-1.999],[22.999,-1.806],[21.685,-1.351],[19.581,-0.706],[16.76,0.033],[9.292,1.404],[0.012,2.017],[-9.273,1.457],[-16.75,0.128],[-19.575,-0.595],[-21.683,-1.228],[-23,-1.675],[-23.447,-1.866],[-22.967,-1.779],[-21.623,-1.43],[-19.498,-0.888],[-16.668,-0.246],[-9.216,0.962],[0.01,1.475],[9.23,0.909],[16.674,-0.34],[19.503,-0.998],[21.624,-1.553],[22.967,-1.909]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[57.572,164.234],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 17","ix":17,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.012,-0.014],[0.242,-0.252],[0.166,-0.171],[0.204,-0.246],[0.655,-2.265],[-0.418,-3.077],[-0.666,-1.545],[-0.861,-1.586],[-2.667,-3.927],[-0.805,-1.157],[0.033,-0.026],[0.227,0.267],[0.407,0.527],[1.385,1.934],[3.602,6.321],[0.656,1.602],[0.204,1.574],[-0.761,2.279],[-0.875,1.002],[-0.183,0.197],[-0.147,0.128]],"o":[[0.012,0.014],[-0.134,0.138],[-0.17,0.204],[-0.812,1.028],[-0.697,2.241],[0.214,1.538],[0.647,1.562],[3.582,6.288],[1.321,1.899],[0.764,1.087],[-0.015,0.012],[-0.226,-0.267],[-0.823,-1.045],[-2.752,-3.878],[-0.867,-1.599],[-0.682,-1.601],[-0.401,-3.154],[0.718,-2.305],[0.221,-0.238],[0.183,-0.158],[0.268,-0.229]],"v":[[-4.085,-22.993],[-4.437,-22.587],[-4.885,-22.126],[-5.445,-21.451],[-7.98,-16.533],[-8.535,-8.365],[-7.277,-3.685],[-4.913,1.012],[5.022,16.669],[8.234,21.286],[9.396,22.994],[9.029,22.604],[8.065,21.412],[4.708,16.888],[-5.385,1.277],[-7.767,-3.48],[-9.029,-8.299],[-8.344,-16.646],[-5.607,-21.586],[-5.003,-22.238],[-4.51,-22.665]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[85.065,93.302],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 18","ix":18,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.062,0],[0.364,1.131],[1.253,1.293],[1.159,0.024],[0.039,0.081],[-1.3,0.045],[-1.29,-1.378],[-0.281,-1.194]],"o":[[-0.086,0.007],[-0.364,-1.123],[-1.233,-1.309],[-1.168,-0.059],[-0.055,-0.03],[1.3,-0.077],[1.328,1.371],[0.282,1.207]],"v":[[4.265,4.189],[3.745,2.316],[1.405,-1.607],[-2.485,-3.736],[-4.34,-3.409],[-2.481,-4.119],[1.795,-1.982],[4.113,2.211]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[120.39,110.228],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 21","ix":21,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.017,-0.009],[0.159,-0.316],[0.288,-0.549],[1.217,-2.064],[3.647,-6.315],[1.339,-2.853],[-0.174,-2.367],[-0.628,-1.159],[0.045,-0.035],[0.238,0.264],[0.346,0.581],[0.188,2.431],[-1.32,2.891],[-1.834,3.176],[-2.481,4.093],[-0.738,1.212],[-0.216,0.354]],"o":[[0.016,0.009],[-0.192,0.367],[-0.638,1.178],[-2.4,4.148],[-1.822,3.155],[-1.327,2.849],[0.135,2.365],[0.627,1.173],[-0.014,0.012],[-0.229,-0.27],[-0.697,-1.15],[-0.233,-2.433],[1.326,-2.889],[3.662,-6.34],[1.213,-1.993],[0.323,-0.528],[0.189,-0.298]],"v":[[10.269,-23.539],[10.051,-23.043],[9.334,-21.676],[6.531,-16.742],[-3.125,-0.724],[-7.833,8.408],[-9.671,16.421],[-8.207,21.783],[-7.108,23.535],[-7.491,23.152],[-8.39,21.887],[-10.052,16.444],[-8.288,8.204],[-3.595,-0.992],[6.203,-16.939],[9.152,-21.781],[9.956,-23.098]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[13.466,106.809],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 22","ix":22,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.019,0],[-0.03,-0.406],[-0.044,-0.723],[-0.126,-2.702],[-0.351,-8.379],[-0.252,-5.576],[-0.082,-1.612],[-0.02,-0.465],[0.019,-0.002],[0.046,0.404],[0.073,0.72],[0.192,2.754],[0.355,8.417],[0.141,5.518],[0.032,1.615],[0.002,0.465]],"o":[[0.019,0],[0.029,0.464],[0.075,1.614],[0.234,5.578],[0.38,8.381],[0.138,2.702],[0.031,0.723],[0.011,0.406],[-0.019,0.001],[-0.047,-0.463],[-0.148,-1.537],[-0.374,-5.507],[-0.356,-8.413],[-0.055,-2.705],[-0.002,-0.724],[0.005,-0.407]],"v":[[-1.372,-30.464],[-1.299,-29.845],[-1.191,-28.071],[-0.889,-21.542],[0.014,-0.001],[0.989,21.538],[1.322,28.064],[1.398,29.84],[1.387,30.463],[1.288,29.849],[1.111,28.079],[0.607,21.562],[-0.528,0.022],[-1.271,-21.529],[-1.403,-28.064],[-1.409,-29.842]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[29.066,110.372],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 23","ix":23,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.065,-0.085],[0.633,-0.528],[1.282,-0.738],[4.553,-0.08],[2.592,1.392],[0.65,0.508],[-0.02,0.026],[-2.621,-1.28],[-4.445,0.079],[-2.548,1.375]],"o":[[0.021,0.023],[-0.632,0.53],[-2.54,1.483],[-4.555,0.081],[-1.307,-0.693],[-0.651,-0.506],[0.063,-0.087],[2.596,1.283],[4.444,-0.079],[2.574,-1.372]],"v":[[14.965,-2.951],[14.035,-2.071],[11.152,-0.095],[0.1,2.955],[-11.055,0.298],[-14.005,-1.575],[-14.965,-2.423],[-10.882,-0.044],[0.09,2.414],[10.967,-0.43]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.208,146.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 24","ix":24,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.577,2.338],[5.518,0.16],[6.924,-0.736],[1.37,-13.52],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.69,5.772]],"o":[[-5.122,-2.616],[-6.425,-0.187],[0,0],[0,0],[0,0],[0,0],[0,0],[0.781,-16.515],[0.973,-8.878],[0.61,-5.104]],"v":[[26.518,-49.562],[10.82,-52.93],[-11.587,-53.28],[-32.684,-38.299],[-29.99,25.201],[-34.507,52.105],[28.715,54.016],[28.262,22.273],[27.376,-17.626],[33.897,-36.273]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[60.475,117.482],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 25","ix":25,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[1.886,-4.13],[-2.655,-3.284],[0,0],[-3.366,0],[0,0],[-1.77,4.068],[0,0]],"o":[[0,0],[-2.135,3.737],[-1.521,3.957],[0,0],[2.116,2.617],[0,0],[4.435,0],[0,0],[0,0]],"v":[[12.345,-29.832],[-6.735,2.211],[-12.732,14.064],[-10.718,26.47],[-11.257,25.694],[-2.59,29.832],[-2.096,29.832],[8.123,23.134],[14.253,13.833]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[17.076,103.874],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 26","ix":26,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.028,0.06],[-0.631,-0.715],[0.062,-0.671],[0.714,-0.413],[0.93,0.217],[0.842,0.598],[0.954,0.51],[1.132,0.216],[1.908,-0.61],[1.249,-0.881],[0.076,0.078],[-0.585,0.643],[-1.248,0.94],[-1.976,0.663],[-2.38,-0.443],[-0.999,-0.551],[-0.818,-0.587],[-0.845,-0.203],[-0.636,0.358],[-0.08,0.553],[0.235,0.326]],"o":[[-0.038,-0.01],[0.289,0.345],[-0.065,0.67],[-0.703,0.43],[-0.936,-0.204],[-0.849,-0.594],[-0.952,-0.517],[-2.274,-0.423],[-1.919,0.615],[-2.494,1.793],[-0.025,-0.021],[0.59,-0.636],[1.244,-0.937],[1.968,-0.658],[1.185,0.225],[1.01,0.551],[0.812,0.593],[0.841,0.213],[0.638,-0.342],[0.082,-0.563],[-0.508,-0.68]],"v":[[11.91,-2.634],[13.136,-2.079],[13.628,-0.519],[12.386,1.255],[9.791,1.612],[7.113,0.314],[4.494,-1.481],[1.338,-2.591],[-5.103,-2.149],[-9.864,0.271],[-13.665,3.487],[-12.82,2.435],[-10.09,-0.038],[-5.257,-2.623],[1.438,-3.122],[4.749,-1.946],[7.402,-0.092],[9.891,1.174],[12.196,0.923],[13.327,-0.556],[12.971,-1.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[77.594,12.284],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 27","ix":27,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.013,-0.014],[0.771,0.438],[1.578,0.039],[1.769,-1.088],[1.137,-2.128],[0.415,-1.514],[0,0],[0,0],[1.501,0.02],[1.049,-0.351],[0.056,0.086],[-0.493,0.376],[-1.068,0.409],[-1.567,-0.009],[-1.681,-0.864],[0,0],[-0.854,1.593],[-1.878,1.119],[-1.63,-0.1],[-0.761,-0.493],[-0.164,-0.177]],"o":[[-0.037,0.043],[-0.771,-0.423],[-1.563,-0.049],[-1.77,1.086],[-0.829,1.545],[0,0],[0,0],[-1.587,-0.833],[-1.506,-0.042],[-2.111,0.721],[-0.016,-0.019],[0.497,-0.37],[1.065,-0.405],[1.56,-0.012],[0,0],[0.408,-1.548],[1.173,-2.194],[1.882,-1.122],[1.646,0.091],[0.375,0.263],[0.173,0.166]],"v":[[14.241,-4.222],[13.07,-4.965],[9.491,-5.89],[4.238,-4.479],[-0.234,0.504],[-2.05,5.173],[-2.135,5.486],[-2.423,5.335],[-7.189,4.116],[-11.07,4.702],[-14.238,6.286],[-13.522,5.653],[-11.178,4.395],[-7.184,3.672],[-2.178,4.877],[-2.551,5.04],[-0.712,0.247],[3.98,-4.906],[9.507,-6.272],[13.178,-5.146],[13.997,-4.494]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[64.029,11.162],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 28","ix":28,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.151,-0.046],[0.865,-1.293],[0.082,0.115],[-0.802,1.221]],"o":[[0.138,0.031],[-0.856,1.3],[-0.101,-0.121],[0.813,-1.212]],"v":[[1.465,-2.27],[0.514,0.318],[-1.501,2.2],[0.064,0.019]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[61.031,30.064],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 29","ix":29,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.152,-0.034],[0.664,-1.09],[0.084,0.116],[-0.601,1.007]],"o":[[0.141,0.021],[-0.657,1.096],[-0.101,-0.119],[0.612,-0.999]],"v":[[1.102,-1.898],[0.492,0.268],[-1.142,1.816],[0.029,-0.012]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[58.219,31.397],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 30","ix":30,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.073,-0.13],[0.734,0.41],[-0.073,0.13],[-0.734,-0.41]],"o":[[-0.073,0.13],[-0.734,-0.411],[0.073,-0.131],[0.734,0.41]],"v":[[1.329,0.743],[-0.132,0.237],[-1.329,-0.742],[0.132,-0.236]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[47.671,34.073],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 31","ix":31,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.166,0.027],[-0.134,-0.866],[0.325,-1.304],[0.525,-0.696],[0.046,0.044],[-0.604,2.5]],"o":[[0.062,-0.017],[0.135,0.861],[-0.329,1.304],[-0.526,0.701],[-0.134,-0.103],[0.646,-2.489]],"v":[[0.896,-4.427],[1.311,-3.078],[1.125,0.32],[-0.315,3.406],[-1.316,4.4],[0.6,0.19]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[73.601,26.805],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 32","ix":32,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.031,-0.053],[0.768,-0.901],[0.645,-1.689],[0.275,-1.168],[0.076,0.013],[-0.173,1.197],[-0.668,1.748],[-0.88,0.857]],"o":[[0.051,0.071],[-0.775,0.89],[-0.647,1.691],[-0.268,1.172],[-0.071,-0.013],[0.18,-1.192],[0.667,-1.749],[0.875,-0.87]],"v":[[2.725,-5.854],[1.403,-4.441],[-0.899,-0.468],[-2.176,4.01],[-2.705,5.894],[-2.552,3.939],[-1.404,-0.663],[1.122,-4.701]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[68.781,33.828],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 33","ix":33,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.154,-0.009],[0.374,-1.987],[0.137,0.046],[-0.361,1.95]],"o":[[0.144,0.006],[-0.367,1.989],[-0.148,-0.046],[0.366,-1.948]],"v":[[0.65,-3.572],[0.451,0.068],[-0.676,3.535],[-0.081,-0.031]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[63.456,39.764],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 34","ix":34,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.16,0.004],[0.473,-2.068],[0.118,0.072],[-0.44,1.99]],"o":[[0.138,-0.014],[-0.459,2.071],[-0.143,-0.072],[0.455,-1.986]],"v":[[0.713,-3.654],[0.59,0.127],[-0.919,3.596],[0.063,0.008]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[60.81,42.29],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 35","ix":35,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[-2.296,4.435],[-4.993,0.097],[-0.623,0.241],[-0.604,0.785],[-6.555,-0.001],[-1.879,-1.022],[-0.221,-1.041],[-1.348,0.204],[-1.018,-0.907],[0.791,-1.11],[-0.348,-2.186],[0.326,-0.17],[4.1,-2.158],[0.244,0.126]],"o":[[-3.936,-2.644],[2.296,-4.436],[0.668,-0.013],[0.924,-0.356],[3.517,-4.573],[1.065,0],[0.936,0.509],[1.232,-0.584],[1.348,-0.205],[1.019,0.906],[2.209,-0.14],[0.348,2.187],[0,0],[-1.652,0.869],[0,0]],"v":[[-21.676,16.659],[-23.671,2.184],[-11.55,-5.354],[-9.57,-5.576],[-7.444,-7.593],[6.085,-16.658],[10.206,-15.636],[12.682,-12.36],[16.517,-13.738],[20.363,-12.8],[20.967,-9.115],[25.618,-5.24],[22.508,-1.347],[20.126,4.411],[16.085,4.107]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[67.6,17.189],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 36","ix":36,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[10.607,-3.037],[0,0],[0,0],[0.683,-4.725],[0,0],[3.599,-3.999],[4.224,-0.071],[0,0],[4.221,18.506],[-4.501,5.241]],"o":[[-3.365,0.963],[0,0],[-2.689,-2.105],[-0.494,3.414],[-2.471,4.206],[-3.894,4.33],[0,0],[0,0],[-4.684,-20.531],[7.33,-8.535]],"v":[[17.943,-12.625],[13.846,-6.162],[8.568,5.495],[1.587,8.236],[5.337,12.34],[-2.409,23.947],[-12.708,28.784],[-17.365,28.784],[-23.865,2.878],[0.229,-20.249]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[69.346,29.034],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 37","ix":37,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[-1.957,7.046],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[1.251,-4.502],[0,0]],"v":[[-16.236,-22.344],[-16.389,27.453],[4.975,28.471],[5.593,16.359],[15.138,10.82],[16.077,-28.471]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.7451,0.6157],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[68.401,41.375],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 48","ix":38,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.161,205.373],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 49","ix":39,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.345,209.449],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 50","ix":40,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.564],[-0.147,-0.029],[0.112,-0.564]],"v":[[0.204,-1.02],[0.266,0.052],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[49.53,213.526],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 51","ix":41,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.147,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[48.714,217.603],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 52","ix":42,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.147,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[47.898,221.679],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 53","ix":43,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.03],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.564]],"v":[[0.204,-1.02],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[47.083,225.756],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 54","ix":44,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[46.268,229.832],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 55","ix":45,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[45.452,233.908],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 56","ix":46,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.564]],"v":[[0.204,-1.019],[0.266,0.052],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[44.637,237.986],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 57","ix":47,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[43.821,242.062],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 58","ix":48,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.03],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.02],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[43.006,246.138],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 59","ix":49,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.112,-0.564]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[42.19,250.215],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 60","ix":50,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.147,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[41.375,254.291],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 61","ix":51,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.147,0.029],[-0.113,0.564],[-0.146,-0.03],[0.113,-0.564]],"v":[[0.204,-1.02],[0.266,0.052],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.559,258.368],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 62","ix":52,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[39.744,262.445],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 63","ix":53,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[38.928,266.521],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 64","ix":54,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.564]],"v":[[0.204,-1.02],[0.266,0.052],[-0.204,1.02],[-0.265,-0.052]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[38.113,270.597],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 65","ix":55,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[37.297,274.674],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 66","ix":56,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[36.482,278.75],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 67","ix":57,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.147,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.564]],"v":[[0.204,-1.019],[0.266,0.052],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[35.666,282.827],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 68","ix":58,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.147,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[34.851,286.904],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 69","ix":59,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.147,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[34.035,290.98],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 70","ix":60,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.564]],"v":[[0.204,-1.02],[0.266,0.053],[-0.204,1.02],[-0.265,-0.052]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[33.22,295.056],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 71","ix":61,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[32.404,299.133],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 72","ix":62,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[31.589,303.209],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 73","ix":63,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.112,-0.564]],"v":[[0.204,-1.019],[0.266,0.052],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[30.773,307.286],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 74","ix":64,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[29.958,311.363],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 75","ix":65,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.146,0.029],[-0.113,0.563]],"o":[[0.147,0.029],[-0.113,0.564],[-0.147,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.203,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[29.142,315.439],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 76","ix":66,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.147,-0.029],[0.113,-0.562],[0.147,0.029],[-0.112,0.562]],"o":[[0.146,0.029],[-0.112,0.564],[-0.147,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.265,0.052],[-0.204,1.019],[-0.266,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[28.327,319.516],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 77","ix":67,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[27.511,323.592],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 78","ix":68,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.02],[0.266,0.052],[-0.204,1.02],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[26.696,327.669],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 79","ix":69,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.88,331.745],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 80","ix":70,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.563]],"o":[[0.146,0.029],[-0.113,0.563],[-0.146,-0.029],[0.112,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.065,335.822],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 81","ix":71,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.146,0.029],[-0.113,0.564],[-0.146,-0.029],[0.112,-0.564]],"v":[[0.204,-1.02],[0.266,0.053],[-0.204,1.02],[-0.265,-0.052]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[24.25,339.898],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 82","ix":72,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.563],[0.147,0.029],[-0.113,0.562]],"o":[[0.147,0.029],[-0.113,0.563],[-0.146,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.019],[-0.265,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[23.434,343.975],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 83","ix":73,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.147,-0.029],[0.113,-0.562],[0.147,0.029],[-0.112,0.563]],"o":[[0.146,0.029],[-0.112,0.563],[-0.147,-0.029],[0.113,-0.563]],"v":[[0.204,-1.019],[0.265,0.053],[-0.204,1.019],[-0.266,-0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[22.619,348.051],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 84","ix":74,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.146,-0.029],[0.112,-0.562],[0.147,0.029],[-0.113,0.562]],"o":[[0.147,0.029],[-0.113,0.564],[-0.146,-0.029],[0.113,-0.564]],"v":[[0.204,-1.019],[0.266,0.053],[-0.204,1.02],[-0.265,-0.052]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[21.803,352.128],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 85","ix":75,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.148,-0.017],[0.037,-0.365],[0.149,0.015],[-0.038,0.366]],"o":[[0.149,0.016],[-0.037,0.366],[-0.148,-0.013],[0.037,-0.366]],"v":[[0.068,-0.661],[0.27,0.028],[-0.068,0.663],[-0.269,-0.026]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[55.369,172.647],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 86","ix":76,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.149,-0.014],[0.048,-0.571],[0.15,0.012],[-0.048,0.573]],"o":[[0.149,0.013],[-0.048,0.571],[-0.149,-0.011],[0.047,-0.573]],"v":[[0.087,-1.035],[0.27,0.024],[-0.088,1.037],[-0.27,-0.021]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[55.022,176.415],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 87","ix":77,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.149,-0.011],[0.036,-0.573],[0.149,0.009],[-0.038,0.574]],"o":[[0.149,0.01],[-0.037,0.572],[-0.149,-0.009],[0.036,-0.574]],"v":[[0.067,-1.036],[0.271,0.019],[-0.066,1.038],[-0.269,-0.016]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.715,180.561],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 88","ix":78,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.149,-0.008],[0.026,-0.572],[0.149,0.006],[-0.026,0.575]],"o":[[0.149,0.007],[-0.026,0.573],[-0.149,-0.005],[0.026,-0.575]],"v":[[0.047,-1.037],[0.271,0.013],[-0.047,1.039],[-0.271,-0.011]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.489,184.713],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 89","ix":79,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.149,-0.005],[0.015,-0.573],[0.15,0.003],[-0.015,0.574]],"o":[[0.149,0.005],[-0.015,0.573],[-0.149,-0.003],[0.015,-0.575]],"v":[[0.027,-1.038],[0.271,0.008],[-0.027,1.04],[-0.271,-0.006]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.343,188.868],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 90","ix":80,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.149,-0.002],[0.003,-0.573],[0.149,0],[-0.003,0.575]],"o":[[0.149,0.002],[-0.004,0.573],[-0.15,0],[0.004,-0.575]],"v":[[0.006,-1.038],[0.271,0.003],[-0.006,1.041],[-0.271,0]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.278,193.025],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 91","ix":81,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.149,0.001],[-0.008,-0.573],[0.15,-0.003],[0.007,0.575]],"o":[[0.149,-0.001],[0.007,0.573],[-0.149,0.003],[-0.008,-0.575]],"v":[[-0.014,-1.04],[0.271,-0.005],[0.014,1.038],[-0.27,0.003]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[54.293,197.184],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 92","ix":82,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.033,-0.078],[1.693,-0.628],[2.724,-0.44],[1.803,0.07],[-0.006,0.065],[-1.788,0.03],[-2.691,0.429],[-1.707,0.531]],"o":[[0.026,0.06],[-1.691,0.63],[-2.727,0.433],[-1.804,-0.069],[0.006,-0.084],[1.788,-0.027],[2.689,-0.432],[1.708,-0.53]],"v":[[9.7,-1.708],[7.04,-0.503],[0.219,1.269],[-6.818,1.715],[-9.719,1.402],[-6.814,1.333],[0.133,0.732],[6.917,-0.865]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[46.193,203.91],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 93","ix":83,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.023,-0.162],[3.031,0.251],[-0.053,0.125],[-2.955,-0.224]],"o":[[0.033,0.132],[-3.033,-0.232],[0.048,-0.156],[2.951,0.246]],"v":[[5.364,0.157],[-0.059,0.602],[-5.343,-0.697],[-0.016,0.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[26.943,265.679],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 94","ix":84,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.059,-0.066],[1.374,-1.036],[2.467,-0.922],[1.713,-0.111],[-0.003,0.059],[-1.68,0.21],[-2.419,0.896],[-1.406,0.942]],"o":[[0.042,0.044],[-1.369,1.037],[-2.469,0.916],[-1.717,0.115],[0,-0.09],[1.68,-0.206],[2.414,-0.904],[1.408,-0.941]],"v":[[8.618,-3.273],[6.561,-1.41],[0.667,1.789],[-5.882,3.224],[-8.656,3.161],[-5.921,2.843],[0.48,1.282],[6.34,-1.722]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[28.872,269.336],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 95","ix":85,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.035,-0.08],[1.459,-0.469],[2.333,-0.083],[1.503,0.229],[-0.013,0.067],[-4.592,0.17],[-1.453,0.373]],"o":[[0.026,0.056],[-1.453,0.477],[-2.333,0.098],[-1.504,-0.24],[0.025,-0.185],[2.291,-0.082],[1.457,-0.367]],"v":[[8.237,-0.993],[5.977,0.004],[0.094,0.976],[-5.848,0.626],[-8.249,0.071],[0.074,0.435],[5.872,-0.363]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[73.219,265.94],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 96","ix":86,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.098,-0.04],[0.221,-0.616],[0.621,-0.997],[3.348,-1.417],[2.272,0.514],[0.595,0.272],[-0.014,0.028],[-2.265,-0.397],[-3.226,1.359],[-1.27,1.887]],"o":[[0.031,0.01],[-0.219,0.617],[-1.217,1.987],[-3.352,1.41],[-1.148,-0.25],[-0.595,-0.273],[0.039,-0.099],[2.238,0.407],[3.223,-1.363],[1.297,-1.899]],"v":[[10.475,-5.362],[10.207,-4.382],[8.974,-1.899],[2.073,3.992],[-6.964,4.826],[-9.604,3.978],[-10.492,3.486],[-6.892,4.451],[1.862,3.492],[8.654,-2.109]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[74.869,271.909],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 97","ix":87,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.083,-0.157],[1.195,0.6],[1.461,1.434],[0.613,1.183],[-0.059,0.022],[-2.872,-2.794]],"o":[[-0.022,0.059],[-1.193,-0.594],[-1.456,-1.439],[-0.617,-1.186],[0.156,-0.085],[2.836,2.828]],"v":[[5.058,5.006],[3.04,4.246],[-1.177,1.195],[-4.292,-2.976],[-5.081,-4.981],[-0.798,0.81]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[63.593,207.31],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 98","ix":88,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.036,-0.062],[1.628,0.851],[2.505,1.251],[1.66,0.788],[-0.031,0.071],[-1.702,-0.701],[-2.516,-1.254],[-1.584,-0.938]],"o":[[-0.039,0.066],[-1.628,-0.851],[-2.507,-1.25],[-1.659,-0.789],[0.027,-0.067],[1.703,0.701],[2.514,1.254],[1.585,0.939]],"v":[[9.083,4.533],[6.402,3.23],[0.021,-0.046],[-6.436,-3.174],[-9.088,-4.532],[-6.281,-3.524],[0.263,-0.53],[6.588,2.895]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[60.328,203.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 99","ix":89,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.016,0.02],[-0.728,-0.055],[-1.318,-0.107],[-4.704,-0.425],[0,0],[0,0],[0.527,-4.41],[0,0],[0,0],[0.873,-0.697],[2.004,-1.596],[0,0],[0,0],[2.004,2.535],[0,0],[0,0],[-0.295,2.191],[-0.089,0.613],[-0.014,-0.017],[0.053,-0.572],[0.102,-1.016],[0.398,-3.637],[0,0],[-2.569,-3.19],[0,0],[-2.172,1.736],[-0.814,0.648],[0,0],[-0.453,3.624],[0,0],[2.806,0.312],[0.81,0.097]],"o":[[-0.016,-0.02],[0.799,0.065],[2.85,0.259],[0,0],[0,0],[-0.433,3.627],[0,0],[0,0],[-0.814,0.65],[-2.176,1.731],[0,0],[0,0],[-2.541,-3.212],[0,0],[0,0],[0.497,-3.679],[0.144,-0.991],[0.083,-0.545],[0.013,0.018],[-0.063,0.628],[-0.236,2.166],[0,0],[2.026,2.517],[0,0],[2.001,-1.6],[0.874,-0.696],[0,0],[0.551,-4.408],[0,0],[-4.635,-0.517],[-1.336,-0.162],[-0.75,-0.095]],"v":[[-7.151,-10.577],[-6.06,-10.52],[-2.879,-10.262],[8.621,-9.219],[8.86,-9.197],[8.831,-8.956],[7.377,3.214],[7.365,3.324],[7.278,3.393],[4.729,5.428],[-1.56,10.434],[-1.766,10.596],[-1.928,10.391],[-8.803,1.699],[-8.86,1.628],[-8.849,1.54],[-7.647,-7.365],[-7.297,-9.77],[-7.151,-10.577],[-7.213,-9.676],[-7.461,-7.21],[-8.424,1.592],[-8.469,1.432],[-1.519,10.066],[-1.887,10.025],[4.391,5.005],[6.942,2.973],[6.843,3.15],[8.365,-9.014],[8.575,-8.751],[-2.754,-10.014],[-5.976,-10.402]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.383,189.849],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 100","ix":90,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.009,0.009],[-0.816,0.035],[-1.48,0.054],[-5.215,0.147],[0,0],[0,0],[-0.011,-4.402],[0,0],[0,0],[0.762,-0.701],[2.082,-1.909],[0,0],[0,0],[2.529,2.254],[0,0],[0,0],[-0.027,2.204],[-0.013,0.615],[-0.015,-0.016],[-0.016,-0.572],[-0.022,-1.021],[-0.045,-3.674],[0,0],[-3.277,-2.87],[0,0],[-2.272,2.092],[-0.71,0.651],[0,0],[-0.009,3.708],[0,0],[3.131,-0.029],[0.9,-0.001],[0.266,0.002]],"o":[[-0.018,-0.019],[0.885,-0.032],[3.169,-0.09],[0,0],[0,0],[0.009,3.708],[0,0],[0,0],[-0.71,0.652],[-2.277,2.087],[0,0],[0,0],[-3.252,-2.899],[0,0],[0,0],[0.046,-3.728],[0.022,-1.002],[0.016,-0.549],[0.015,0.015],[0.014,0.627],[0.026,2.173],[0,0],[2.548,2.232],[0,0],[2.077,-1.913],[0.764,-0.7],[0,0],[0.011,-4.402],[0,0],[-5.155,0.049],[-1.504,0.002],[-0.387,-0.004],[-0.224,-0.005]],"v":[[-8.811,-9.882],[-7.588,-9.962],[-4.032,-10.092],[8.748,-10.454],[8.991,-10.461],[8.992,-10.215],[9.022,2.043],[9.022,2.161],[8.935,2.241],[6.709,4.288],[0.147,10.302],[-0.027,10.461],[-0.202,10.305],[-8.95,2.508],[-9.022,2.443],[-9.021,2.35],[-8.91,-6.644],[-8.857,-9.067],[-8.811,-9.882],[-8.765,-8.986],[-8.711,-6.516],[-8.601,2.35],[-8.671,2.193],[0.143,9.914],[-0.205,9.918],[6.342,3.889],[8.57,1.845],[8.483,2.043],[8.513,-10.215],[8.757,-9.976],[-3.874,-9.857],[-7.487,-9.852],[-8.458,-9.861]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2706,0.3529,0.3922],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[69.873,189.968],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 101","ix":91,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[41.722,-95.457],[-17.412,-95.902],[-45.987,91.777],[-21.445,94.892],[10.007,-59.426],[19.421,95.44],[19.446,95.901],[45.987,95.439]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[46.237,260.333],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 102","ix":92,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.104,-0.025],[0.033,1.229],[-0.258,0.774],[-0.225,0.385],[-0.737,0.062],[-0.101,-0.26],[-0.039,-0.226],[0.075,-0.41],[0.385,-0.482],[0.013,0.065],[-0.609,0.948],[-0.096,0.719],[0.057,0.385],[0.156,-0.037],[0.169,-0.324],[0.134,-0.345],[0.044,-0.565]],"o":[[-0.068,0.027],[-0.014,-0.609],[0.131,-0.386],[0.239,-0.376],[0.384,-0.003],[0.12,0.266],[0.058,0.456],[-0.147,0.822],[-0.788,0.982],[-0.061,-0.097],[0.3,-0.468],[0.05,-0.358],[-0.048,-0.414],[-0.192,-0.009],[-0.209,0.342],[-0.264,0.694],[-0.088,1.137]],"v":[[-1.117,3.047],[-1.573,1.155],[-1.243,-0.963],[-0.713,-2.128],[0.556,-3.071],[1.351,-2.505],[1.529,-1.787],[1.49,-0.478],[0.6,1.503],[-0.999,2.623],[0.221,1.233],[0.89,-0.574],[0.889,-1.698],[0.54,-2.412],[-0.159,-1.796],[-0.671,-0.758],[-1.106,1.169]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[88.122,346.642],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 103","ix":93,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.006,-0.103],[1.19,0.242],[0.726,0.349],[0.366,0.244],[0.189,0.231],[-0.252,0.301],[-0.28,-0.002],[-0.209,-0.059],[-0.366,-0.178],[-0.436,-0.426],[0.066,-0.036],[0.895,0.716],[0.684,0.301],[0.392,0.098],[0.111,-0.18],[-0.082,-0.123],[-0.172,-0.119],[-0.333,-0.179],[-0.55,-0.171]],"o":[[0,0.078],[-0.593,-0.121],[-0.362,-0.175],[-0.175,-0.12],[-0.204,-0.205],[0.208,-0.292],[0.287,-0.001],[0.429,0.117],[0.731,0.359],[0.874,0.861],[-0.087,0.059],[-0.446,-0.357],[-0.343,-0.149],[-0.408,-0.121],[-0.04,0.069],[0.086,0.114],[0.336,0.234],[0.666,0.357],[1.102,0.344]],"v":[[2.965,1.536],[1.023,1.467],[-0.992,0.781],[-2.089,0.156],[-2.661,-0.318],[-2.719,-1.328],[-1.876,-1.737],[-1.15,-1.613],[0.046,-1.163],[1.801,0.066],[2.896,1.68],[1.493,0.418],[-0.21,-0.612],[-1.314,-0.988],[-2.182,-0.943],[-2.146,-0.724],[-1.725,-0.378],[-0.717,0.24],[1.139,1.016]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[84.295,347.889],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 104","ix":94,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.098,-0.146],[1.073,-0.04],[0.094,0.165],[-1.264,0.029]],"o":[[-0.084,0.17],[-1.073,0.018],[-0.105,-0.14],[1.264,-0.039]],"v":[[2.019,0.25],[-0.001,0.173],[-2.012,0.36],[-0.018,-0.486]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[85.049,353.207],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 105","ix":95,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.188,-0.013],[-0.517,1.022],[-0.076,-0.161],[0.412,-0.845]],"o":[[-0.173,0.035],[0.511,-1.027],[0.102,0.158],[-0.432,0.836]],"v":[[-0.647,1.658],[-0.538,-0.283],[0.954,-1.531],[0.051,0.012]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[94.099,363.125],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 106","ix":96,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.001,-0.181],[0.667,-0.783],[0.188,0.014],[-0.848,0.955]],"o":[[0.038,0.185],[-0.691,0.761],[-0.179,0.024],[0.84,-0.964]],"v":[[1.383,-1.358],[-0.077,-0.094],[-1.145,1.515],[-0.572,-0.53]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[89.906,361.203],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 107","ix":97,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.046,-0.173],[0.951,-0.581],[0.172,0.08],[-1.163,0.682]],"o":[[-0.012,0.188],[-0.965,0.556],[-0.173,-0.042],[1.157,-0.694]],"v":[[1.841,-0.877],[-0.071,-0.05],[-1.714,1.231],[-0.408,-0.617]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[85.429,358.916],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 108","ix":98,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[-0.198,-1.569]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-19.504,1.571],[-19.425,-1.572],[18.059,-0.537],[19.504,1.571]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[87.308,367.23],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 109","ix":99,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[-0.151,-0.763],[-0.76,0.169],[0.236,0.742],[0.698,-0.347]],"o":[[-0.757,0.183],[0.151,0.764],[0.76,-0.169],[-0.236,-0.742],[0,0]],"v":[[-0.339,-1.453],[-1.489,0.322],[0.26,1.478],[1.468,-0.408],[-0.485,-1.408]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[75.032,357.625],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 110","ix":100,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.114,-3.712],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0.749,-14.952],[-0.573,5.005],[19.405,15.31],[-19.405,15.591],[-18.621,-15.59]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[87.209,353.211],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 111","ix":101,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.015,0.005],[0.584,2.564],[1.204,1.205],[1.951,0.199],[1.429,-0.918],[0.634,-1.123],[0.112,0.028],[0.003,0.196],[-0.039,0.372],[-0.608,1.199],[-1.509,0.974],[-2.058,-0.199],[-1.239,-1.303],[-0.272,-1.309],[0.163,-0.726],[0.079,-0.18]],"o":[[-0.121,-0.006],[-0.301,-1.25],[-1.185,-1.212],[-1.955,-0.188],[-1.446,0.907],[-1.256,2.304],[-0.016,-0.001],[-0.01,-0.196],[0.083,-0.739],[0.619,-1.182],[1.494,-0.989],[2.054,0.209],[1.256,1.291],[0.26,1.323],[-0.085,0.364],[-0.07,0.183]],"v":[[8.025,5.499],[8.07,1.323],[5.908,-2.586],[0.995,-4.843],[-4.294,-3.642],[-7.368,-0.375],[-8.615,3.632],[-8.643,3.333],[-8.598,2.478],[-7.658,-0.53],[-4.523,-4.002],[1.042,-5.305],[6.212,-2.886],[8.389,1.253],[8.396,4.406],[8.154,5.228]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[11.558,361.078],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 112","ix":102,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.125,0.03],[-1.161,4.722],[-0.124,-0.03],[1.161,-4.724]],"o":[[-0.125,-0.03],[1.162,-4.724],[0.125,0.031],[-1.161,4.722]],"v":[[-2.102,8.552],[-0.225,-0.054],[2.102,-8.551],[0.225,0.057]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[12.267,357.199],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 113","ix":103,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-10.032,0.261],[9.713,2.063],[10.032,0.415],[-9.461,-2.062],[-10.011,0.037]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.387,366.49],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 115","ix":105,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-5.872,-12.133],[-11.947,10.331],[7.798,12.133],[11.947,-9.252]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[12.303,356.42],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":10},{"ty":4,"nm":"Screen Outlines","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[100.039,209.525,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[249.934,250.015,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.144],[22.793,0],[0,0.144],[-22.801,0]],"o":[[0,0.144],[-22.801,0],[0,-0.144],[22.793,0]],"v":[[41.276,0],[0.002,0.261],[-41.276,0],[0.002,-0.261]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[-41.5,-0.5],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":38},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":49},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":53},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":55},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":66},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":78},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":82},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":84},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":95},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":106},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":115},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":119},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":121},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":132},{"s":[100,100],"t":141}],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[60.904,293.348],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":50},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":53},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":79},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":82},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":116},{"s":[0],"t":119}],"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.144],[37.888,0],[0,0.144],[-37.902,0]],"o":[[0,0.144],[-37.902,0],[0,-0.144],[37.888,0]],"v":[[68.614,-0.001],[0.003,0.26],[-68.614,-0.001],[0.003,-0.26]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[-69.5,-0.5],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":21},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":32},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":37},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":38},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":51},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":60},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":61},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":74},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":88},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":93},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":94},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":107},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100],"t":116},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,100],"t":117},{"s":[100,100],"t":130}],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[32.904,284.937],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":34},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":37},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":41},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":56},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":59},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":63},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":90},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":93},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":97},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":112},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":115},{"s":[100],"t":119}],"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0.521,0],[0,1.389],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.455,0],[-0.185,0.141]],"o":[[-0.348,0.25],[-1.378,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0.499],[0.25,0],[0,0]],"v":[[2.23,3.239],[0.851,3.608],[-1.33,1.514],[-1.33,-0.883],[-2.23,-0.883],[-2.23,-2.186],[-1.33,-2.186],[-1.33,-3.607],[0.363,-3.607],[0.363,-2.186],[1.817,-2.186],[1.817,-0.883],[0.363,-0.883],[0.363,1.493],[1.089,2.262],[1.773,2.046]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[114.647,346.961],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.9,0],[0,0],[0.13,0],[0,-1.117],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[-0.141,-0.01],[-0.933,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.412,-0.564]],"v":[[1.812,-2.962],[1.812,-1.4],[1.432,-1.421],[-0.12,0.206],[-0.12,2.962],[-1.812,2.962],[-1.812,-2.875],[-0.196,-2.875],[-0.196,-2.105]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[110.088,347.52],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.195,0.532],[0,0],[0,0],[0,-0.391],[-0.597,0]],"o":[[0,0],[0,0],[-0.792,0],[0,0.424],[0.564,0]],"v":[[1.08,1.073],[1.08,0.477],[-0.081,0.477],[-1.122,1.16],[-0.168,1.865]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-1.768],[0,0],[0,0],[0,0],[0.858,0],[0,1.009],[-1.779,0],[0,0],[0.911,0],[0.423,-0.336],[0,0],[-0.934,0]],"o":[[0,0],[0,0],[0,0],[-0.314,0.531],[-1.367,0],[0,-1.03],[0,0],[0,-0.727],[-0.618,0],[0,0],[0.641,-0.455],[1.779,0]],"v":[[2.772,-0.413],[2.772,2.918],[1.188,2.918],[1.188,2.191],[-0.591,3.005],[-2.772,1.236],[-0.266,-0.511],[1.08,-0.511],[-0.266,-1.66],[-1.947,-1.118],[-2.555,-2.301],[-0.037,-3.006]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[103.978,347.564],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0.521,0],[0,1.389],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.455,0],[-0.185,0.141]],"o":[[-0.348,0.25],[-1.378,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0.499],[0.25,0],[0,0]],"v":[[2.23,3.239],[0.852,3.608],[-1.329,1.514],[-1.329,-0.883],[-2.23,-0.883],[-2.23,-2.186],[-1.329,-2.186],[-1.329,-3.607],[0.363,-3.607],[0.363,-2.186],[1.818,-2.186],[1.818,-0.883],[0.363,-0.883],[0.363,1.493],[1.089,2.262],[1.773,2.046]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[98.405,346.961],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.673,0.521],[0,0],[-0.912,0],[0,0.467],[0,2.82],[-2.16,0],[-0.705,-0.445],[0,0],[0.673,0],[0,-0.478],[0,-2.789],[2.17,0]],"o":[[0,0],[0.64,0.467],[1.042,0],[0,-1.421],[0,-1.291],[0.954,0],[0,0],[-0.705,-0.401],[-1.042,0],[0,1.399],[0,1.269],[-1.204,0]],"v":[[-3.157,3.049],[-2.56,1.726],[-0.054,2.518],[1.41,1.704],[-3.005,-1.561],[0.196,-3.927],[2.831,-3.254],[2.289,-1.92],[0.185,-2.516],[-1.259,-1.648],[3.157,1.574],[-0.065,3.928]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[92.632,346.684],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":8,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[9.127,0],[0,0],[0,9.126],[-9.127,0],[0,0],[0,-9.127]],"o":[[0,0],[-9.127,0],[0,-9.127],[0,0],[9.127,0],[0,9.126]],"v":[[35.728,16.525],[-35.728,16.525],[-52.252,0.001],[-35.728,-16.525],[35.728,-16.525],[52.252,0.001]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[103.109,347.315],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":9,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.144],[18.792,0],[0,0.144],[-18.8,0]],"o":[[0,0.144],[-18.8,0],[0,-0.144],[18.792,0]],"v":[[34.033,-0.001],[0.003,0.26],[-34.033,-0.001],[0.003,-0.26]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[106.57,47.789],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":10,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.007,0.007],[-0.24,0.01],[-0.407,0.014],[-1.586,0.038],[0,0],[0.017,1.011],[-0.051,0.601],[-0.658,0.061],[-0.676,-0.031],[0.021,-0.738],[-0.016,-1.416],[0,0],[-1.681,0.017],[0,0],[0.019,2.081],[0.004,0.513],[0.393,0.356],[0.699,0.689],[0.673,0.664],[0.328,0.325],[0.397,0.081],[0.31,-0.235],[0.298,-0.29],[0.565,-0.57],[0.833,-0.988],[0.026,-0.608],[0.001,-0.541],[0.005,-0.791],[0.006,-0.478],[0.009,-0.01],[0.014,0.394],[0.02,0.697],[0.024,1.062],[0.011,0.616],[0.005,0.327],[-0.183,0.317],[-1.109,1.177],[-0.596,0.611],[-0.372,0.32],[-0.488,-0.128],[-0.314,-0.298],[-0.337,-0.33],[-0.701,-0.687],[-0.723,-0.71],[-0.167,-0.255],[-0.008,-0.292],[-0.004,-0.522],[-0.015,-1.964],[0,0],[0,0],[1.566,-0.01],[0,0],[0,0],[0.006,1.308],[0.548,0.075],[0.547,-0.005],[0.09,-0.484],[0.01,-0.496],[-0.001,-0.857],[0,0],[0,0],[1.004,0.006],[0.29,0.005]],"o":[[0.007,-0.007],[0.297,-0.01],[0.988,-0.023],[0,0],[-0.014,-0.857],[0.006,-0.521],[0.104,-0.601],[0.623,-0.013],[0.696,0.085],[0.014,1.307],[0,0],[1.566,-0.016],[0,0],[-0.017,-1.964],[-0.004,-0.519],[-0.002,-0.477],[-0.721,-0.711],[-0.698,-0.689],[-0.336,-0.331],[-0.343,-0.33],[-0.385,-0.104],[-0.296,0.25],[-0.6,0.606],[-1.101,1.144],[-0.352,0.545],[-0.001,0.604],[-0.007,1.054],[-0.007,0.708],[-0.006,0.41],[-0.009,0.009],[-0.013,-0.472],[-0.017,-0.797],[-0.009,-0.551],[-0.005,-0.312],[-0.003,-0.346],[0.902,-1.106],[0.561,-0.575],[0.313,-0.307],[0.39,-0.3],[0.519,0.115],[0.33,0.323],[0.675,0.661],[0.7,0.688],[0.171,0.182],[0.158,0.243],[0.005,0.515],[0.016,2.081],[0,0],[0,0],[-1.681,0.01],[0,0],[0,0],[-0.007,-1.416],[0.02,-0.589],[-0.561,-0.029],[-0.524,0.043],[-0.047,0.49],[0,1.011],[0,0],[0,0],[-1.613,-0.011],[-0.398,-0.007],[-0.229,-0.006]],"v":[[-7.147,7.565],[-6.771,7.54],[-5.723,7.505],[-1.857,7.413],[-1.964,7.522],[-2.01,4.718],[-2.003,3.105],[-0.706,1.913],[1.141,1.903],[2.409,3.397],[2.454,7.485],[2.275,7.309],[7.152,7.259],[6.967,7.448],[6.913,1.371],[6.9,-0.177],[6.214,-1.329],[4.081,-3.43],[2.025,-5.46],[1.029,-6.445],[0.02,-7.197],[-1.1,-6.984],[-2.007,-6.091],[-3.757,-4.326],[-6.837,-1.15],[-7.083,0.67],[-7.087,2.388],[-7.104,5.156],[-7.124,6.926],[-7.147,7.565],[-7.182,6.979],[-7.23,5.235],[-7.294,2.445],[-7.326,0.693],[-7.339,-0.266],[-7.07,-1.287],[-3.982,-4.548],[-2.247,-6.327],[-1.305,-7.259],[0.109,-7.538],[1.279,-6.7],[2.281,-5.72],[4.344,-3.697],[6.48,-1.6],[7.025,-1.01],[7.281,-0.187],[7.294,1.368],[7.34,7.445],[7.342,7.632],[7.156,7.634],[2.279,7.665],[2.1,7.666],[2.098,7.488],[2.077,3.399],[1.092,2.215],[-0.678,2.21],[-1.729,3.158],[-1.749,4.716],[-1.749,7.52],[-1.749,7.63],[-1.855,7.629],[-5.786,7.602],[-6.811,7.584]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[27.9,44.177],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":11,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.001,-0.105],[4.999,-0.041],[0.001,0.105],[-5.001,0.041]],"o":[[0.001,0.105],[-5.001,0.041],[-0.001,-0.106],[5,-0.041]],"v":[[9.053,-0.075],[0.002,0.191],[-9.053,0.075],[-0.002,-0.191]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[176.462,46.529],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 12","ix":12,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.001,-0.105],[4.999,-0.042],[0.001,0.106],[-5.001,0.041]],"o":[[0.001,0.105],[-5.001,0.041],[-0.001,-0.105],[5,-0.042]],"v":[[9.053,-0.075],[0.002,0.192],[-9.053,0.075],[-0.002,-0.191]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[176.424,41.896],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 13","ix":13,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.001,-0.106],[5,-0.042],[0,0.106],[-5.001,0.041]],"o":[[0.001,0.105],[-5.001,0.041],[-0.001,-0.105],[4.999,-0.042]],"v":[[9.053,-0.075],[0.001,0.192],[-9.053,0.075],[-0.002,-0.191]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[176.385,37.263],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 14","ix":14,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.957,4.573],[3.957,5.595],[-3.957,5.595],[-3.957,-5.596],[3.718,-5.596],[3.718,-4.573],[-2.772,-4.573],[-2.772,-0.59],[3.015,-0.59],[3.015,0.416],[-2.772,0.416],[-2.772,4.573]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[130.927,253.487],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 15","ix":15,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.591,-4.573],[-4.525,-4.573],[-4.525,-5.596],[4.525,-5.596],[4.525,-4.573],[0.592,-4.573],[0.592,5.596],[-0.591,5.596]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[120.564,253.487],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 16","ix":16,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[2.678,1.646],[-0.008,-4.365],[-2.694,1.646]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.109,2.607],[-3.126,2.607],[-4.469,5.595],[-5.699,5.595],[-0.583,-5.596],[0.583,-5.596],[5.699,5.595],[4.452,5.595]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[110.809,253.487],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 17","ix":17,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,2.684],[2.974,0],[0,0],[0,0]],"o":[[2.974,0],[0,-2.687],[0,0],[0,0],[0,0]],"v":[[-0.783,4.573],[4.109,0.001],[-0.783,-4.573],[-4.092,-4.573],[-4.092,4.573]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,-3.294],[3.582,0],[0,0]],"o":[[0,0],[3.582,0],[0,3.292],[0,0],[0,0]],"v":[[-5.277,-5.596],[-0.721,-5.596],[5.277,0.001],[-0.721,5.595],[-5.277,5.595]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[99.137,253.487],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 18","ix":18,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,1.759],[2.238,0],[0,0],[0,0],[0,0]],"o":[[0,-1.792],[0,0],[0,0],[0,0],[2.238,0]],"v":[[3.198,-1.758],[-0.224,-4.572],[-3.198,-4.572],[-3.198,1.023],[-0.224,1.023]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-2.399],[2.846,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,2.382],[0,0],[0,0],[0,0],[0,0],[0,0],[2.846,0]],"v":[[4.381,-1.758],[-0.192,2.062],[-3.198,2.062],[-3.198,5.596],[-4.381,5.596],[-4.381,-5.596],[-0.192,-5.596]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[86.927,253.487],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 19","ix":19,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,3.214],[0,0],[0,0],[0,0],[-2.174,0],[0,2.654],[0,0],[0,0],[0,0],[2.862,0]],"o":[[0,0],[0,0],[0,0],[0,2.654],[2.19,0],[0,0],[0,0],[0,0],[0,3.214],[-2.861,0]],"v":[[-4.596,0.767],[-4.596,-5.644],[-3.413,-5.644],[-3.413,0.719],[0.007,4.587],[3.445,0.719],[3.445,-5.644],[4.596,-5.644],[4.596,0.767],[0.007,5.644]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[74.391,253.535],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 20","ix":20,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[5.017,3.137],[3.137,-5.017],[-5.015,-3.137],[-3.136,5.016]],"o":[[-5.016,-3.136],[-3.137,5.017],[5.017,3.137],[3.137,-5.017]],"v":[[5.679,-9.083],[-9.084,-5.68],[-5.681,9.083],[9.082,5.68]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[102.725,154.833],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 21","ix":21,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[5.017,3.137],[3.137,-5.017],[-5.015,-3.137],[-3.136,5.016]],"o":[[-5.016,-3.136],[-3.137,5.017],[5.017,3.137],[3.137,-5.017]],"v":[[6.065,-8.842],[-8.699,-5.439],[-5.296,9.324],[9.467,5.921]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.007,-1.905],[0,0],[0,0],[0,0],[0.651,-2.108],[0,0],[0,0],[0,0],[1.907,-1.005],[0,0],[0,0],[0,0],[2.109,0.651],[0,0],[0,0],[0,0],[1.005,1.905],[0,0],[0,0],[0,0],[-0.649,2.108],[0,0],[0,0],[0,0],[-1.906,1.006],[0,0],[0,0],[0,0],[-2.109,-0.651],[0,0],[0,0]],"o":[[1.507,1.61],[0,0],[0,0],[0,0],[-0.07,2.154],[0,0],[0,0],[0,0],[-1.609,1.508],[0,0],[0,0],[0,0],[-2.153,-0.071],[0,0],[0,0],[0,0],[-1.508,-1.609],[0,0],[0,0],[0,0],[0.071,-2.154],[0,0],[0,0],[0,0],[1.609,-1.508],[0,0],[0,0],[0,0],[2.153,0.07],[0,0],[0,0],[0,0]],"v":[[17.973,-16.808],[21.75,-11.506],[27.785,-11.529],[30.029,-1.798],[24.591,0.824],[23.517,7.245],[27.801,11.495],[22.504,19.962],[16.809,17.973],[11.505,21.749],[11.529,27.786],[1.799,30.029],[-0.825,24.593],[-7.246,23.517],[-11.495,27.8],[-19.963,22.505],[-17.973,16.809],[-21.749,11.507],[-27.787,11.529],[-30.029,1.798],[-24.592,-0.823],[-23.518,-7.244],[-27.799,-11.494],[-22.505,-19.962],[-16.809,-17.972],[-11.506,-21.749],[-11.529,-27.785],[-1.799,-30.029],[0.824,-24.591],[7.246,-23.516],[11.496,-27.799],[19.961,-22.505]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[102.34,154.592],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":32},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-80],"t":55},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-121],"t":73},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-189],"t":86},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-244],"t":100},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-244],"t":118},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-341],"t":142},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-399],"t":160},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-461],"t":173},{"s":[-521],"t":187}],"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 28","ix":28,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.526,-0.024],[-1.025,-0.199],[-3.497,-2.105],[-1.696,-1.847],[-1.116,-2.762],[0.046,-3.427],[0.012,-3.852],[0.199,-55.108],[0.287,-72.862],[0.038,-9.328],[0.01,-2.345],[0.716,-2.28],[1.346,-1.989],[1.861,-1.532],[4.873,-0.221],[1.206,0.008],[0,0],[2.433,0.012],[9.912,0.045],[20.472,0.094],[10.38,0.048],[5.223,0.023],[4.361,3.054],[1.492,5.064],[-0.01,2.599],[-0.01,2.595],[-0.043,10.239],[-0.085,19.827],[-0.16,36.436],[-0.144,32.404],[-0.068,15.041],[-0.009,1.861],[-0.054,0.93],[-0.242,0.897],[-2.349,2.776],[-3.257,1.423],[-3.448,-0.056],[-6.554,-0.033],[-3.191,-0.017],[-1.573,-0.008],[-1.297,-0.915],[-0.508,-1.478],[-0.012,-1.483],[0.003,-0.748],[-0.094,-0.717],[-0.939,-1.079],[-1.362,-0.342],[-0.719,0.011],[-0.707,-0.004],[-2.736,-0.014],[-9.376,-0.049],[-4.278,-0.024],[-1.015,0.085],[-0.85,0.529],[-0.399,1.855],[-0.01,0.938],[-0.006,0.909],[-0.168,0.883],[-0.423,0.753],[-1.503,0.584],[-1.46,0.025],[-4.058,-0.026],[-2.083,-0.016],[0,0],[2.08,0.001],[4.054,0.007],[5.93,0.018],[1.471,-0.64],[0.815,-1.482],[0.148,-0.857],[0.012,-0.91],[0.004,-0.936],[0.221,-0.957],[1.76,-1.091],[1.054,-0.117],[1.074,-0.016],[4.687,0.018],[10.945,0.043],[2.83,0.011],[0.714,0.003],[0.708,0.181],[0.961,1.14],[0.189,1.5],[0,0.744],[-0.003,0.753],[0.561,1.41],[1.238,0.873],[1.56,-0.069],[1.596,0.007],[3.278,0.014],[6.888,0.029],[3.208,-1.433],[2.326,-2.716],[0.842,-3.551],[0.165,-0.902],[0.016,-0.929],[0.007,-1.88],[0.063,-16.202],[0.146,-36.437],[0.162,-39.655],[0.086,-20.478],[0.044,-10.383],[0.011,-2.604],[-0.786,-2.48],[-4.283,-2.965],[-5.202,0.24],[-5.19,-0.025],[-10.236,-0.048],[-19.822,-0.092],[-9.729,-0.046],[-2.421,-0.011],[0,0],[-1.184,0.079],[-3.686,2.931],[-1.312,1.944],[-0.66,2.231],[-0.037,2.33],[-0.01,2.332],[-0.04,9.108],[-0.249,55.111],[-0.15,30.826],[-0.018,3.416],[1.117,2.74],[1.674,1.845],[1.754,1.008],[2.042,0.269],[0.521,0.062]],"o":[[0,0],[0.522,0.053],[2.049,0.252],[1.767,1.006],[1.689,1.849],[1.132,2.754],[-0.01,3.416],[-0.111,30.826],[-0.216,55.11],[-0.037,9.108],[-0.008,2.332],[-0.035,2.348],[-0.675,2.281],[-1.34,1.986],[-3.764,2.996],[-1.22,0.08],[0,0],[-2.42,-0.011],[-9.729,-0.044],[-19.822,-0.09],[-10.237,-0.047],[-5.189,-0.023],[-5.239,0.245],[-4.38,-3.031],[-0.803,-2.525],[0.012,-2.604],[0.045,-10.383],[0.088,-20.478],[0.173,-39.655],[0.162,-36.437],[0.073,-16.202],[0.009,-1.879],[0.016,-0.932],[0.166,-0.918],[0.859,-3.612],[2.367,-2.76],[3.256,-1.454],[6.889,0.035],[3.277,0.017],[1.595,0.008],[1.587,-0.071],[1.297,0.915],[0.584,1.479],[-0.004,0.753],[-0.001,0.75],[0.18,1.44],[0.921,1.094],[0.686,0.175],[0.713,0.003],[2.83,0.015],[10.945,0.058],[4.687,0.026],[1.062,-0.015],[1.022,-0.113],[1.709,-1.054],[0.216,-0.929],[0.004,-0.936],[0.015,-0.904],[0.154,-0.878],[0.838,-1.515],[1.517,-0.652],[5.931,0.037],[4.054,0.029],[2.08,0.018],[0,0],[-2.083,-0.004],[-4.058,-0.013],[-1.474,0.028],[-1.465,0.575],[-0.411,0.736],[-0.163,0.856],[-0.003,0.91],[-0.007,0.929],[-0.405,1.906],[-0.875,0.546],[-1.065,0.09],[-4.277,-0.016],[-9.376,-0.036],[-2.736,-0.011],[-0.708,-0.003],[-0.707,0.012],[-1.425,-0.357],[-0.981,-1.124],[-0.099,-0.757],[0.003,-0.747],[-0.013,-1.508],[-0.488,-1.416],[-1.251,-0.872],[-1.574,-0.006],[-3.191,-0.013],[-6.553,-0.027],[-3.425,-0.051],[-3.203,1.403],[-2.309,2.732],[-0.238,0.882],[-0.051,0.917],[-0.008,1.86],[-0.059,15.041],[-0.13,32.404],[-0.149,36.437],[-0.082,19.827],[-0.043,10.239],[-0.01,2.595],[-0.009,2.594],[1.459,4.951],[4.283,2.985],[5.223,0.025],[10.38,0.048],[20.473,0.096],[9.912,0.047],[2.432,0.012],[0,0],[1.208,0.009],[4.77,-0.213],[1.821,-1.5],[1.319,-1.946],[0.703,-2.239],[0.01,-2.344],[0.041,-9.328],[0.329,-72.862],[0.268,-55.107],[0.02,-3.852],[0.054,-3.41],[-1.101,-2.747],[-1.68,-1.841],[-3.472,-2.11],[-1.022,-0.207],[-0.525,-0.034]],"v":[[76.629,-208.339],[77.421,-208.309],[79.764,-208.114],[88.425,-205.077],[93.68,-200.779],[98.053,-193.859],[99.743,-184.466],[99.709,-173.561],[99.239,-43.029],[98.477,150.563],[98.364,178.22],[98.336,185.235],[97.424,192.272],[94.45,198.764],[89.622,204.077],[76.277,209.195],[72.646,209.251],[69.02,209.234],[61.74,209.201],[32.275,209.068],[-28.191,208.793],[-59.119,208.65],[-74.738,208.58],[-89.751,204.37],[-98.846,191.702],[-99.778,183.89],[-99.745,176.09],[-99.613,145.153],[-99.353,84.67],[-98.854,-29.671],[-98.393,-133.136],[-98.18,-180.026],[-98.154,-185.637],[-98.013,-188.438],[-97.53,-191.187],[-92.636,-200.951],[-84.048,-207.317],[-73.775,-209.218],[-53.608,-209.116],[-43.906,-209.066],[-39.153,-209.042],[-34.628,-207.759],[-31.828,-204.051],[-31.378,-199.494],[-31.389,-197.242],[-31.326,-195.031],[-29.604,-191.131],[-26.057,-188.91],[-23.964,-188.695],[-21.832,-188.684],[-13.482,-188.64],[17.025,-188.478],[30.475,-188.404],[33.628,-188.432],[36.476,-189.422],[39.748,-194.087],[39.941,-196.901],[39.956,-199.668],[40.087,-202.362],[40.965,-204.83],[44.661,-208.071],[49.249,-208.543],[64.256,-208.448],[73.484,-208.38],[76.629,-208.339],[73.484,-208.327],[64.256,-208.343],[49.249,-208.388],[44.722,-207.916],[41.122,-204.742],[40.27,-202.331],[40.146,-199.668],[40.137,-196.9],[39.945,-194.044],[36.589,-189.239],[33.652,-188.214],[30.473,-188.179],[17.024,-188.23],[-13.483,-188.349],[-21.833,-188.382],[-23.965,-188.391],[-26.132,-188.612],[-29.84,-190.928],[-31.64,-194.991],[-31.708,-197.244],[-31.701,-199.495],[-32.135,-203.943],[-34.817,-207.487],[-39.154,-208.706],[-43.908,-208.725],[-53.61,-208.766],[-73.776,-208.85],[-83.898,-206.971],[-92.341,-200.702],[-97.146,-191.098],[-97.62,-188.395],[-97.756,-185.635],[-97.778,-180.024],[-97.961,-133.134],[-98.375,-29.669],[-98.843,84.671],[-99.095,145.156],[-99.225,176.093],[-99.257,183.892],[-98.346,191.557],[-89.453,203.943],[-74.736,208.059],[-59.116,208.132],[-28.189,208.275],[32.278,208.558],[61.743,208.697],[69.023,208.731],[72.649,208.749],[76.249,208.694],[89.31,203.689],[94.037,198.49],[96.948,192.137],[97.844,185.233],[97.874,178.218],[97.997,150.561],[98.87,-43.031],[99.506,-173.562],[99.564,-184.467],[97.909,-193.8],[93.584,-200.692],[88.37,-204.987],[79.757,-208.062],[77.42,-208.282]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[100.038,209.525],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 29","ix":29,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[12.772,0.06],[0,0],[0.015,-4.121],[0,0],[3.943,0.018],[0,0],[-0.017,4.122],[0,0],[3.943,0.018],[0,0],[0,0],[0.054,-12.78],[0,0],[-12.773,-0.059],[0,0],[-0.055,12.781],[0,0]],"o":[[0,0],[-3.943,-0.017],[0,0],[-0.015,4.122],[0,0],[-3.943,-0.017],[0,0],[0.017,-4.122],[0,0],[0,0],[-12.78,-0.058],[0,0],[-0.055,12.774],[0,0],[12.779,0.059],[0,0],[0.053,-12.773]],"v":[[76.563,-208.326],[47.162,-208.462],[39.992,-201.031],[39.967,-195.697],[32.797,-188.266],[-24.512,-188.533],[-31.62,-196.028],[-31.597,-201.361],[-38.706,-208.857],[-49.046,-208.906],[-74.779,-209.024],[-98.02,-185.988],[-99.588,185.091],[-76.561,208.324],[74.781,209.023],[98.021,185.986],[99.59,-185.093]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[100.104,209.511],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":11},{"ty":4,"nm":"goal","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[332.397,150.552,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[356.822,222.391,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[-360],"t":178}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-4.27],[4.269,0],[0,4.269],[-4.27,0]],"o":[[0,4.269],[-4.27,0],[0,-4.27],[4.269,0]],"v":[[7.73,0],[0.001,7.73],[-7.73,0],[0.001,-7.73]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[362.013,120.207],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-4.673],[4.674,0],[0,4.673],[-4.673,0]],"o":[[0,4.673],[-4.673,0],[0,-4.673],[4.674,0]],"v":[[8.462,0],[0,8.462],[-8.462,0],[0,-8.462]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[376.086,144.161],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-5.035],[5.035,0],[0,5.035],[-5.035,0]],"o":[[0,5.035],[-5.035,0],[0,-5.035],[5.035,0]],"v":[[9.117,0],[0,9.117],[-9.117,0],[0,-9.117]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[371.207,171.597],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-6.934],[6.935,0],[0,6.935],[-6.934,0]],"o":[[0,6.935],[-6.934,0],[0,-6.934],[6.935,0]],"v":[[12.556,0],[0,12.556],[-12.556,0],[0,-12.556]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[336.326,111.062],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-6.363],[6.363,0],[0,6.363],[-6.363,0]],"o":[[0,6.363],[-6.363,0],[0,-6.363],[6.363,0]],"v":[[11.521,0],[0,11.521],[-11.521,0],[0,-11.521]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[310.089,120.523],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-6.156],[6.156,0],[0,6.157],[-6.157,0]],"o":[[0,6.157],[-6.157,0],[0,-6.156],[6.156,0]],"v":[[11.148,-0.001],[0,11.147],[-11.148,-0.001],[0,-11.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[296.437,144.467],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":7,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-5.895],[5.895,0],[0,5.895],[-5.894,0]],"o":[[0,5.895],[-5.894,0],[0,-5.895],[5.895,0]],"v":[[10.674,0],[0,10.673],[-10.674,0],[0,-10.673]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[300.81,171.818],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 12","ix":8,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-5.553],[5.553,0],[0,5.553],[-5.553,0]],"o":[[0,5.553],[-5.553,0],[0,-5.553],[5.553,0]],"v":[[10.055,0],[0,10.055],[-10.055,0],[0,-10.055]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[322.354,189.607],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 13","ix":9,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-5.213],[5.212,0],[0,5.213],[-5.213,0]],"o":[[0,5.213],[-5.213,0],[0,-5.213],[5.212,0]],"v":[[9.44,0],[0,9.439],[-9.44,0],[0,-9.439]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[350.382,189.607],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":12},{"ty":4,"nm":"Background Complete Outlines","sr":1,"st":0,"op":1750,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[192.399,99.956,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[245.797,157.7,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.291,2.684],[2.683,-4.291],[-4.291,-2.683],[-2.683,4.291]],"o":[[-4.29,-2.683],[-2.684,4.291],[4.291,2.683],[2.683,-4.291]],"v":[[5.188,-7.563],[-7.44,-4.652],[-4.529,7.975],[8.098,5.064]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.862,-1.629],[0,0],[0,0],[0,0],[0.557,-1.803],[0,0],[0,0],[0,0],[1.631,-0.861],[0,0],[0,0],[0,0],[1.803,0.556],[0,0],[0,0],[0,0],[0.86,1.63],[0,0],[0,0],[0,0],[-0.556,1.804],[0,0],[0,0],[0,0],[-1.63,0.86],[0,0],[0,0],[0,0],[-1.803,-0.556],[0,0],[0,0]],"o":[[1.289,1.377],[0,0],[0,0],[0,0],[-0.06,1.842],[0,0],[0,0],[0,0],[-1.377,1.29],[0,0],[0,0],[0,0],[-1.842,-0.06],[0,0],[0,0],[0,0],[-1.29,-1.376],[0,0],[0,0],[0,0],[0.06,-1.841],[0,0],[0,0],[0,0],[1.377,-1.29],[0,0],[0,0],[0,0],[1.842,0.06],[0,0],[0,0],[0,0]],"v":[[15.373,-14.377],[18.604,-9.842],[23.766,-9.861],[25.684,-1.538],[21.035,0.705],[20.115,6.197],[23.779,9.833],[19.249,17.074],[14.377,15.373],[9.841,18.604],[9.861,23.767],[1.539,25.685],[-0.705,21.035],[-6.197,20.115],[-9.832,23.779],[-17.075,19.249],[-15.373,14.377],[-18.603,9.842],[-23.767,9.861],[-25.685,1.538],[-21.034,-0.705],[-20.115,-6.197],[-23.778,-9.832],[-19.249,-17.074],[-14.377,-15.372],[-9.84,-18.603],[-9.861,-23.766],[-1.539,-25.685],[0.705,-21.034],[6.197,-20.115],[9.832,-23.778],[17.074,-19.249]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[82.574,25.935],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[50],"t":26},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":50},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[150],"t":74},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[200],"t":100},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[250],"t":125},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[300],"t":152},{"s":[350],"t":181}],"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[7.751,4.847],[4.847,-7.751],[-7.749,-4.846],[-4.846,7.75]],"o":[[-7.749,-4.846],[-4.846,7.749],[7.751,4.847],[4.846,-7.751]],"v":[[9.37,-13.661],[-13.438,-8.403],[-8.18,14.404],[14.628,9.147]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.555,-2.944],[0,0],[0,0],[0,0],[1.005,-3.257],[0,0],[0,0],[0,0],[2.944,-1.554],[0,0],[0,0],[0,0],[3.257,1.006],[0,0],[0,0],[0,0],[1.554,2.945],[0,0],[0,0],[0,0],[-1.004,3.257],[0,0],[0,0],[0,0],[-2.944,1.553],[0,0],[0,0],[0,0],[-3.258,-1.005],[0,0],[0,0]],"o":[[2.328,2.487],[0,0],[0,0],[0,0],[-0.109,3.328],[0,0],[0,0],[0,0],[-2.487,2.33],[0,0],[0,0],[0,0],[-3.327,-0.109],[0,0],[0,0],[0,0],[-2.33,-2.486],[0,0],[0,0],[0,0],[0.109,-3.327],[0,0],[0,0],[0,0],[2.486,-2.33],[0,0],[0,0],[0,0],[3.327,0.109],[0,0],[0,0],[0,0]],"v":[[27.768,-25.968],[33.603,-17.777],[42.927,-17.812],[46.392,-2.779],[37.994,1.272],[36.334,11.193],[42.951,17.759],[34.769,30.839],[25.97,27.766],[17.777,33.601],[17.812,42.926],[2.78,46.392],[-1.272,37.993],[-11.192,36.331],[-17.757,42.948],[-30.84,34.769],[-27.765,25.968],[-33.6,17.776],[-42.926,17.811],[-46.392,2.777],[-37.991,-1.273],[-36.331,-11.193],[-42.946,-17.759],[-34.767,-30.84],[-25.967,-27.766],[-17.774,-33.601],[-17.81,-42.927],[-2.777,-46.392],[1.274,-37.993],[11.195,-36.332],[17.76,-42.948],[30.84,-34.768]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[61.097,100.757],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-50],"t":26},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-100],"t":50},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-150],"t":74},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-200],"t":100},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-250],"t":125},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[-300],"t":152},{"s":[-350],"t":181}],"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":13}],"v":"5.7.1","fr":25,"op":192,"ip":0,"assets":[{"id":"image_0","u":"","e":1,"w":423,"h":2,"p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAacAAAAEBAMAAADYPu1fAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAD1BMVEVHcEwnMjgmMjglMjgmMzk3GTbCAAAABXRSTlMAwIBgsPuPKxwAAAAdSURBVCjPY2AYjsBIiTLgKEh1QKGLlAwYRsEQAQDIZBb0lAiwxAAAAABJRU5ErkJggg=="}]} \ No newline at end of file diff --git a/assets/images/NearleBikeAnimation.png b/assets/images/NearleBikeAnimation.png new file mode 100644 index 0000000..3d2f933 Binary files /dev/null and b/assets/images/NearleBikeAnimation.png differ diff --git a/assets/images/NearleBikeAnimation1.png b/assets/images/NearleBikeAnimation1.png new file mode 100644 index 0000000..4f2c850 Binary files /dev/null and b/assets/images/NearleBikeAnimation1.png differ diff --git a/assets/images/errandsnoRecords.png b/assets/images/errandsnoRecords.png new file mode 100644 index 0000000..81a3d57 Binary files /dev/null and b/assets/images/errandsnoRecords.png differ diff --git a/assets/images/launcher_icon.png b/assets/images/launcher_icon.png new file mode 100644 index 0000000..4a7722a Binary files /dev/null and b/assets/images/launcher_icon.png differ diff --git a/assets/images/login_image.png b/assets/images/login_image.png new file mode 100644 index 0000000..68a6fb5 Binary files /dev/null and b/assets/images/login_image.png differ diff --git a/assets/images/nearleLogin.png b/assets/images/nearleLogin.png new file mode 100644 index 0000000..d723cd6 Binary files /dev/null and b/assets/images/nearleLogin.png differ diff --git a/assets/images/nearle_dark_logo.png b/assets/images/nearle_dark_logo.png new file mode 100644 index 0000000..f21593a Binary files /dev/null and b/assets/images/nearle_dark_logo.png differ diff --git a/assets/images/nearle_logo.jpeg b/assets/images/nearle_logo.jpeg new file mode 100644 index 0000000..8ea05d8 Binary files /dev/null and b/assets/images/nearle_logo.jpeg differ diff --git a/assets/images/nearle_round_logo.png b/assets/images/nearle_round_logo.png new file mode 100644 index 0000000..25ace78 Binary files /dev/null and b/assets/images/nearle_round_logo.png differ diff --git a/assets/images/nearle_white_logo.png b/assets/images/nearle_white_logo.png new file mode 100644 index 0000000..daa89d7 Binary files /dev/null and b/assets/images/nearle_white_logo.png differ diff --git a/assets/images/nearlebusiness.png b/assets/images/nearlebusiness.png new file mode 100644 index 0000000..abead79 Binary files /dev/null and b/assets/images/nearlebusiness.png differ diff --git a/assets/images/nearledailyImage.png b/assets/images/nearledailyImage.png new file mode 100644 index 0000000..9cb25ab Binary files /dev/null and b/assets/images/nearledailyImage.png differ diff --git a/assets/images/nearledailylogodark.png b/assets/images/nearledailylogodark.png new file mode 100644 index 0000000..58e8229 Binary files /dev/null and b/assets/images/nearledailylogodark.png differ diff --git a/assets/images/nearledark.png b/assets/images/nearledark.png new file mode 100644 index 0000000..e00bd82 Binary files /dev/null and b/assets/images/nearledark.png differ diff --git a/assets/images/nearleerrandsLogin.png b/assets/images/nearleerrandsLogin.png new file mode 100644 index 0000000..b238d11 Binary files /dev/null and b/assets/images/nearleerrandsLogin.png differ diff --git a/assets/images/nearleerrandslogo.png b/assets/images/nearleerrandslogo.png new file mode 100644 index 0000000..cbc1b05 Binary files /dev/null and b/assets/images/nearleerrandslogo.png differ diff --git a/assets/images/nearlelightlogo.png b/assets/images/nearlelightlogo.png new file mode 100644 index 0000000..78d363d Binary files /dev/null and b/assets/images/nearlelightlogo.png differ diff --git a/assets/images/nearletextlogo.png b/assets/images/nearletextlogo.png new file mode 100644 index 0000000..c55a701 Binary files /dev/null and b/assets/images/nearletextlogo.png differ diff --git a/assets/images/nearletextwhitelogo.png b/assets/images/nearletextwhitelogo.png new file mode 100644 index 0000000..6f048ef Binary files /dev/null and b/assets/images/nearletextwhitelogo.png differ diff --git a/assets/images/nearletopbackground.png b/assets/images/nearletopbackground.png new file mode 100644 index 0000000..f8f4fa8 Binary files /dev/null and b/assets/images/nearletopbackground.png differ diff --git a/assets/images/no-internet.png b/assets/images/no-internet.png new file mode 100644 index 0000000..09a45f3 Binary files /dev/null and b/assets/images/no-internet.png differ diff --git a/assets/images/noOrders.png b/assets/images/noOrders.png new file mode 100644 index 0000000..869ce42 Binary files /dev/null and b/assets/images/noOrders.png differ diff --git a/assets/images/noProfile.png b/assets/images/noProfile.png new file mode 100644 index 0000000..78e73ad Binary files /dev/null and b/assets/images/noProfile.png differ diff --git a/assets/images/noRecords.png b/assets/images/noRecords.png new file mode 100644 index 0000000..f35364d Binary files /dev/null and b/assets/images/noRecords.png differ diff --git a/assets/images/noRecords1.png b/assets/images/noRecords1.png new file mode 100644 index 0000000..f811b9e Binary files /dev/null and b/assets/images/noRecords1.png differ diff --git a/assets/images/no_products_found.png b/assets/images/no_products_found.png new file mode 100644 index 0000000..44f2a77 Binary files /dev/null and b/assets/images/no_products_found.png differ diff --git a/assets/images/nocustomersnow.png b/assets/images/nocustomersnow.png new file mode 100644 index 0000000..21fe631 Binary files /dev/null and b/assets/images/nocustomersnow.png differ diff --git a/assets/images/nodatafound.json b/assets/images/nodatafound.json new file mode 100644 index 0000000..639116f --- /dev/null +++ b/assets/images/nodatafound.json @@ -0,0 +1 @@ +{"nm":"Circle","ddd":0,"h":500,"w":500,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"No Data Found Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[6.141,6.788,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[8.057,6.049,0],"ix":2},"r":{"a":0,"k":0.192,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"N","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"N","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-87.7,-21.328],[-92.827,-21.328],[-92.827,-8.057],[-100.371,-21.328],[-105.512,-21.328],[-105.512,0],[-100.371,0],[-100.371,-13.271],[-92.812,0],[-87.7,0]]},"ix":2}},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"o","ix":2,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"o","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.367,-1.352],[-2.256,0],[-1.372,1.45],[0,2.471],[0,0],[1.367,1.47],[2.373,0],[1.152,-0.664],[0.615,-1.235],[0,-1.582]],"o":[[0.107,2.314],[1.367,1.353],[2.344,0],[1.372,-1.45],[0,0],[0,-2.529],[-1.367,-1.47],[-1.553,0],[-1.152,0.664],[-0.615,1.236],[0,0]],"v":[[-83.933,-7.236],[-81.721,-1.736],[-76.286,0.293],[-70.712,-1.882],[-68.654,-7.764],[-68.654,-7.939],[-70.705,-13.938],[-76.315,-16.143],[-80.373,-15.146],[-83.024,-12.297],[-83.947,-8.071]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"o","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.65,0],[0,-2.842],[0,0],[1.758,0],[0.459,0.684],[0,1.465]],"o":[[0.137,-2.451],[1.816,0],[0,0],[-0.039,2.705],[-0.899,0],[-0.459,-0.683],[0,0]],"v":[[-78.996,-8.657],[-76.315,-12.334],[-73.591,-8.071],[-73.591,-7.573],[-76.286,-3.516],[-78.322,-4.541],[-79.011,-7.764]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"D","ix":3,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"D","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.499,0.874],[-0.825,1.548],[0,1.953],[0,0],[0.845,1.558],[1.504,0.855],[1.885,0],[0,0],[0,0]],"o":[[1.846,-0.01],[1.499,-0.874],[0.825,-1.548],[0,0],[-0.01,-1.934],[-0.845,-1.558],[-1.504,-0.854],[0,0],[0,0],[0,0]],"v":[[-49.065,0],[-44.048,-1.326],[-40.561,-4.958],[-39.323,-10.21],[-39.323,-11.191],[-40.605,-16.428],[-44.128,-20.046],[-49.211,-21.328],[-56.081,-21.328],[-56.081,0]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"D","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.791,-1.045],[0,-2.06],[0,0],[0.791,-1.05],[1.474,0],[0,0],[0,0]],"o":[[1.514,0],[0.791,1.045],[0,0],[0,2.07],[-0.791,1.05],[0,0],[0,0],[0,0]],"v":[[-49.211,-17.358],[-45.754,-15.791],[-44.568,-11.133],[-44.568,-10.21],[-45.754,-5.53],[-49.153,-3.955],[-50.94,-3.955],[-50.94,-17.358]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"a","ix":4,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"a","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0.019,1.455],[0,0],[1.172,0.986],[2.021,0],[1.304,-0.956],[0,-1.531],[0,0],[-1.172,0],[0,-1.462],[0,0],[0,0],[1.269,-0.879],[0,-1.719],[-1.045,-0.903],[-1.494,0],[-0.908,1.143],[-0.176,-0.322]],"o":[[0,0],[-0.43,-0.771],[0,0],[-0.029,-1.719],[-1.172,-0.986],[-2.021,0],[-1.304,0.956],[0,0],[0,-1.158],[1.26,0],[0,0],[0,0],[-2.422,0],[-1.27,0.879],[0,1.367],[1.045,0.903],[1.631,0],[0.137,0.625],[0,0]],"v":[[-21.699,0],[-21.699,-0.249],[-22.373,-3.589],[-22.373,-10.605],[-24.175,-14.663],[-28.965,-16.143],[-33.952,-14.709],[-35.908,-10.978],[-30.971,-10.978],[-29.214,-12.715],[-27.324,-10.522],[-27.324,-9.683],[-28.847,-9.683],[-34.385,-8.364],[-36.289,-4.468],[-34.721,-1.062],[-30.913,0.293],[-27.104,-1.421],[-26.636,0]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"a","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.303,0.278],[0,0.449],[-1.719,0],[0,0],[0,0],[0.405,-0.264],[0.615,0]],"o":[[-0.303,-0.278],[0,-1.543],[0,0],[0,0],[-0.176,0.332],[-0.405,0.264],[-0.469,0]],"v":[[-30.884,-3.64],[-31.338,-4.731],[-28.76,-7.046],[-27.324,-7.046],[-27.324,-4.512],[-28.196,-3.618],[-29.726,-3.223]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"t","ix":5,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"t","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.811,-0.801],[-1.699,0],[-0.889,0.283],[0,0],[0.488,0],[0.215,0.234],[0,0.596],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1.631],[0.81,0.801],[0.967,0],[0,0],[-0.332,0.059],[-0.635,0],[-0.215,-0.234],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-17.478,-19.79],[-17.478,-15.85],[-19.499,-15.85],[-19.499,-12.422],[-17.478,-12.422],[-17.478,-4.556],[-16.262,-0.908],[-12.497,0.293],[-9.714,-0.132],[-9.714,-3.662],[-10.945,-3.574],[-12.219,-3.926],[-12.541,-5.171],[-12.541,-12.422],[-9.934,-12.422],[-9.934,-15.85],[-12.541,-15.85],[-12.541,-19.79]]},"ix":2}},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"a","ix":6,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"a","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0.019,1.455],[0,0],[1.172,0.986],[2.021,0],[1.304,-0.956],[0,-1.531],[0,0],[-1.172,0],[0,-1.462],[0,0],[0,0],[1.269,-0.879],[0,-1.719],[-1.045,-0.903],[-1.494,0],[-0.908,1.143],[-0.176,-0.322]],"o":[[0,0],[-0.43,-0.771],[0,0],[-0.029,-1.719],[-1.172,-0.986],[-2.021,0],[-1.304,0.956],[0,0],[0,-1.158],[1.26,0],[0,0],[0,0],[-2.422,0],[-1.27,0.879],[0,1.367],[1.045,0.903],[1.631,0],[0.137,0.625],[0,0]],"v":[[7.222,0],[7.222,-0.249],[6.548,-3.589],[6.548,-10.605],[4.746,-14.663],[-0.044,-16.143],[-5.032,-14.709],[-6.987,-10.978],[-2.051,-10.978],[-0.293,-12.715],[1.597,-10.522],[1.597,-9.683],[0.073,-9.683],[-5.464,-8.364],[-7.368,-4.468],[-5.801,-1.062],[-1.992,0.293],[1.816,-1.421],[2.285,0]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"a","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.303,0.278],[0,0.449],[-1.719,0],[0,0],[0,0],[0.405,-0.264],[0.615,0]],"o":[[-0.303,-0.278],[0,-1.543],[0,0],[0,0],[-0.176,0.332],[-0.405,0.264],[-0.469,0]],"v":[[-1.963,-3.64],[-2.417,-4.731],[0.161,-7.046],[1.597,-7.046],[1.597,-4.512],[0.725,-3.618],[-0.806,-3.223]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"F","ix":7,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"F","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[33.11,-12.451],[24.819,-12.451],[24.819,-17.358],[33.945,-17.358],[33.945,-21.328],[19.678,-21.328],[19.678,0],[24.819,0],[24.819,-8.496],[33.11,-8.496]]},"ix":2}},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"o","ix":8,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"o","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.367,-1.352],[-2.256,0],[-1.372,1.45],[0,2.471],[0,0],[1.367,1.47],[2.373,0],[1.152,-0.664],[0.615,-1.235],[0,-1.582]],"o":[[0.107,2.314],[1.367,1.353],[2.344,0],[1.372,-1.45],[0,0],[0,-2.529],[-1.367,-1.47],[-1.553,0],[-1.152,0.664],[-0.615,1.236],[0,0]],"v":[[36.291,-7.236],[38.503,-1.736],[43.938,0.293],[49.511,-1.882],[51.57,-7.764],[51.57,-7.939],[49.519,-13.938],[43.908,-16.143],[39.851,-15.146],[37.199,-12.297],[36.277,-8.071]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"o","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.65,0],[0,-2.842],[0,0],[1.758,0],[0.459,0.684],[0,1.465]],"o":[[0.137,-2.451],[1.816,0],[0,0],[-0.039,2.705],[-0.899,0],[-0.459,-0.683],[0,0]],"v":[[41.228,-8.657],[43.908,-12.334],[46.633,-8.071],[46.633,-7.573],[43.938,-3.516],[41.902,-4.541],[41.213,-7.764]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"u","ix":9,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"u","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.133,0],[0,1.357],[0,0],[0,0],[0,0],[-0.894,-1.011],[-1.738,0],[-1.045,1.338]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.479,0.811],[-1.318,0],[0,0],[0,0],[0,0],[0,1.895],[0.894,1.011],[1.777,0],[0,0]],"v":[[64.682,0],[69.311,0],[69.311,-15.85],[64.345,-15.85],[64.345,-4.731],[61.928,-3.516],[59.951,-5.552],[59.951,-15.85],[55.014,-15.85],[55.014,-5.581],[56.355,-1.223],[60.302,0.293],[64.536,-1.714]]},"ix":2}},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"n","ix":10,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"n","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[-0.967,0],[-0.322,-0.376],[0,-0.801],[0,0],[0,0],[0,0],[0.815,0.986],[1.65,0],[1.094,-1.436],[0,0]],"o":[[0,0],[0,0],[0,0],[0.469,-0.762],[0.85,0],[0.322,0.376],[0,0],[0,0],[0,0],[-0.029,-1.982],[-0.816,-0.986],[-1.924,0],[0,0],[0,0]],"v":[[73.269,-15.85],[73.269,0],[78.205,0],[78.205,-11.191],[80.358,-12.334],[82.116,-11.77],[82.6,-10.005],[82.6,0],[87.551,0],[87.551,-10.21],[86.284,-14.663],[82.585,-16.143],[78.059,-13.989],[77.897,-15.85]]},"ix":2}},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"d","ix":11,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"d","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-1.104,-1.445],[-1.885,0],[-1.016,1.328],[0,0],[0,0],[0,0],[0,0],[0,0],[1.416,0],[1.084,-1.445],[0,-2.51]],"o":[[1.103,1.445],[1.562,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.967,-1.113],[-1.943,0],[-1.084,1.445],[0,2.666]],"v":[[92.665,-1.875],[97.148,0.293],[101.015,-1.699],[101.264,0],[105.703,0],[105.703,-22.5],[100.751,-22.5],[100.751,-14.473],[97.177,-16.143],[92.636,-13.975],[91.01,-8.042]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"d","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-1.523,0],[-0.449,-0.938],[0,0],[1.094,0],[0,2.813]],"o":[[0.127,-2.461],[1.094,0],[0,0],[-0.469,0.918],[-1.641,0],[0,0]],"v":[[95.961,-8.643],[98.437,-12.334],[100.751,-10.928],[100.751,-4.893],[98.408,-3.516],[95.947,-7.734]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"st","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1,"parent":2},{"ty":4,"nm":"chatbbl Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[8,12.078,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":1,"y":-0.3296647517260357},"i":{"x":0.536,"y":1.599956056220854},"s":[0,0,100],"t":24},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[2455,2218.426,100],"t":35},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[2455,2218.426,100],"t":138},{"s":[0,0,100],"t":149.000006068894}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[16.44,44.048,0],"ix":2},"r":{"a":0,"k":-13.827,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":30},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":34},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":142},{"s":[0],"t":147.000005987433}],"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.461,0],[0,0],[0,-0.462],[0,0],[0.461,0],[0,0],[0.068,0],[0.226,0.276],[0,0],[0,0.463],[0,0]],"o":[[0,0],[0.461,0],[0,0],[0,0.463],[0,0],[-0.044,0.043],[-0.063,0],[0,0],[-0.461,0],[0,0],[0,-0.462]],"v":[[-4.695,-5.316],[4.758,-5.316],[5.593,-4.479],[5.593,1.047],[4.758,1.885],[-1.857,1.885],[-0.443,4.638],[-2.975,1.885],[-4.695,1.885],[-5.53,1.047],[-5.53,-4.479]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[132.04,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[8.1,7.098],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2,"parent":17},{"ty":4,"nm":"Shape Layer 6","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":true,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[184.8,184.8,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[276,220,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"masksProperties":[{"nm":"Mask 1","inv":false,"mode":"s","x":{"a":0,"k":0,"ix":4},"o":{"a":0,"k":100,"ix":3},"pt":{"a":0,"k":{"c":true,"i":[[65.722,0],[0,-65.722],[-65.722,0],[0,65.722]],"o":[[-65.722,0],[0,65.722],[65.722,0],[0,-65.722]],"v":[[-14,-102],[-133,17],[-14,136],[105,17]]},"ix":1}}],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 1","ix":1,"cix":2,"np":3,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[500,500],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"Shape Layer 1","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-13,-4,0],"ix":1},"s":{"a":0,"k":[122.901,122.901,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[243,250,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[258,258],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.7961,0.7961,0.7961],"ix":4},"r":1,"o":{"a":0,"k":70,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-11,-5],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":5,"nm":"No Data Found","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[107.71,107.71,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[197.5,99.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"t":{"m":{"a":{"a":0,"k":[0,0],"ix":2},"g":1},"p":{},"a":[],"d":{"k":[{"s":{"f":"Roboto-Black","s":30,"t":"No Data Found","fc":[0,0,0],"lh":36,"tr":45,"j":2,"ca":0},"t":0}]}},"ind":5},{"ty":4,"nm":"Shape Layer 5","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-101,-82,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.563,"y":0.3960034351281744},"i":{"x":0.42400000000000004,"y":0.9920239547279412},"s":[199.948,120.468,100],"t":18},{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":0.833},"s":[177.542,757.116,100],"t":26},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[177.542,487.024,100],"t":118},{"s":[199.948,120.468,100],"t":133.000005417201}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[88.59,116.314,0],"ix":2},"r":{"a":0,"k":-5,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[6.75,2],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8039,0.0549,0.0549],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-101.125,-82.5],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":6,"parent":17},{"ty":4,"nm":"Shape Layer 4","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-103.25,-101.5,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":12},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":15},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":19},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":22},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":26},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":51},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":54},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":58},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":92},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":95},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":99},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":138},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":141},{"s":[53.432,53.432,100],"t":145.000005905971}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[66.344,81.538,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[14.5,14.5],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-103.25,-101.75],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":7,"parent":17},{"ty":4,"nm":"Shape Layer 3","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-103.25,-101.5,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":12},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":15},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":19},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":22},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":26},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":51},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":54},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":58},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":92},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":95},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":99},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,53.432,100],"t":138},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[53.432,0,100],"t":141},{"s":[53.432,53.432,100],"t":145.000005905971}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[103.422,78.402,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[14.5,14.5],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-103.25,-101.75],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":8,"parent":17},{"ty":4,"nm":"Shape Layer 2","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,404,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[244,728,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":5,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[254,48],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-1,410],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":9},{"ty":4,"nm":"paper hand Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[90.5,84.5,0],"ix":1},"s":{"a":0,"k":[136.238,136.238,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[24.822,130.705,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":0.982},"s":[-40],"t":10},{"o":{"x":0.167,"y":5.361},"i":{"x":0.833,"y":6.232},"s":[-4],"t":23},{"o":{"x":0.167,"y":0.021},"i":{"x":0.667,"y":1},"s":[-4],"t":132},{"s":[-40],"t":148.000006028164}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":true,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":true,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0.171,3.434],[0,0],[-8.01,6.062]],"o":[[0,0],[-1.947,-39.039],[0,0],[13.193,20.314]],"v":[[35.195,27.711],[-17.404,40.731],[-35.195,-31.146],[17.404,-44.165]]},"ix":2}},{"ty":"fl","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.902,0.902,0.902],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[49.11,55.468],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":15},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-13],"t":27},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[1],"t":35},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[-13],"t":51},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[-13],"t":97},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[-18],"t":104},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[-6],"t":118},{"s":[0],"t":140.000005702317}],"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":2,"cix":2,"np":1,"it":[{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[45.192,23.407],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[-5.073,4.175],[3.275,4.371]],"o":[[0,0],[0,0],[2.927,5.881],[4.218,-3.47],[0,0]],"v":[[-19.606,-32.068],[-28.778,-28.309],[8.18,24.557],[23.819,27.893],[25.503,13.877]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[68.298,62.854],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":10,"parent":14},{"ty":4,"nm":"man hand Outlines 2","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[3.27,5.582,0],"ix":1},"s":{"a":0,"k":[605.234,-546.711,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[48.644,36.698,0],"ix":2},"r":{"a":0,"k":138.95,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.028,0.137],[0.038,0.049],[0.152,0.318],[-0.247,0.066],[-0.268,-0.269],[0.043,0.449],[0,0],[-0.278,0.074],[0,0],[-0.366,-0.959],[0.01,0.134],[0.003,0.169],[-0.306,0.038],[0,0],[-0.034,-0.127],[-0.231,0.061],[-0.045,-0.201],[-0.021,-0.114],[-0.087,0.023],[0.049,-0.362],[-0.005,-0.083],[0.11,-0.387],[0.022,-0.108]],"o":[[-0.014,-0.021],[-0.204,-0.286],[-0.087,-0.198],[0.397,-0.106],[0.014,-0.234],[0,0],[-0.012,-0.073],[0,0],[0.259,-0.052],[0.002,-0.12],[-0.019,-0.071],[-0.13,-0.264],[0.155,-0.025],[0.021,0.08],[-0.025,-0.223],[0.191,-0.051],[0.032,0.12],[0.048,-0.175],[0.374,-0.1],[-0.007,0.036],[0.02,0.233],[-0.122,0.467],[0.021,0.207]],"v":[[-0.699,-4.176],[-0.777,-4.282],[-1.503,-5.597],[-1.52,-6.367],[-0.908,-5.636],[-0.923,-6.774],[-1.117,-7.795],[-1.077,-8.47],[-1.068,-8.472],[-0.294,-6.975],[-0.307,-7.372],[-0.359,-7.92],[-0.266,-8.66],[0.036,-8.068],[0.255,-7.215],[0.333,-8.454],[0.65,-8.062],[0.85,-6.803],[0.863,-7.905],[1.385,-6.358],[1.385,-6.171],[1.313,-5.163],[1.012,-3.865]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[3.242,9.261],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":11,"parent":13},{"ty":4,"nm":"man hand Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[3.27,5.582,0],"ix":1},"s":{"a":0,"k":[-635.459,517.718,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[47.31,34.962,0],"ix":2},"r":{"a":0,"k":-35.572,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.028,0.137],[0.038,0.049],[0.152,0.318],[-0.247,0.066],[-0.268,-0.269],[0.043,0.449],[0,0],[-0.278,0.074],[0,0],[-0.366,-0.959],[0.01,0.134],[0.003,0.169],[-0.306,0.038],[0,0],[-0.034,-0.127],[-0.231,0.061],[-0.045,-0.201],[-0.021,-0.114],[-0.087,0.023],[0.049,-0.362],[-0.005,-0.083],[0.11,-0.387],[0.022,-0.108]],"o":[[-0.014,-0.021],[-0.204,-0.286],[-0.087,-0.198],[0.397,-0.106],[0.014,-0.234],[0,0],[-0.012,-0.073],[0,0],[0.259,-0.052],[0.002,-0.12],[-0.019,-0.071],[-0.13,-0.264],[0.155,-0.025],[0.021,0.08],[-0.025,-0.223],[0.191,-0.051],[0.032,0.12],[0.048,-0.175],[0.374,-0.1],[-0.007,0.036],[0.02,0.233],[-0.122,0.467],[0.021,0.207]],"v":[[-0.381,-3.324],[-0.509,-4.059],[-1.503,-5.597],[-1.52,-6.367],[-0.908,-5.636],[-0.923,-6.774],[-1.117,-7.795],[-1.077,-8.47],[-1.068,-8.472],[-0.294,-6.975],[-0.307,-7.372],[-0.359,-7.92],[-0.266,-8.66],[0.036,-8.068],[0.255,-7.215],[0.333,-8.454],[0.65,-8.062],[0.85,-6.803],[0.863,-7.905],[1.385,-6.358],[1.385,-6.171],[1.313,-5.163],[1.012,-3.865]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[3.242,9.261],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":12,"parent":10},{"ty":4,"nm":"paper hand Outlines 2","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[90.5,84.5,0],"ix":1},"s":{"a":0,"k":[-140.448,145.352,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[184.328,129.182,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":0.978},"s":[41],"t":10},{"o":{"x":0.167,"y":-5.338},"i":{"x":0.833,"y":-4.206},"s":[4],"t":26},{"o":{"x":0.167,"y":0.026},"i":{"x":0.667,"y":1},"s":[4],"t":129},{"s":[41],"t":148.000006028164}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":true,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":true,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0.171,3.434],[0,0],[-8.01,6.062]],"o":[[0,0],[-1.947,-39.039],[0,0],[13.193,20.314]],"v":[[35.195,27.711],[-17.404,40.731],[-35.195,-31.146],[17.404,-44.165]]},"ix":2}},{"ty":"fl","bm":0,"hd":true,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.902,0.902,0.902],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[49.11,55.468],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":15},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-13],"t":27},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[1],"t":35},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[-13],"t":51},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[-13],"t":97},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[-18],"t":104},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[-6],"t":118},{"s":[0],"t":140.000005702317}],"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[-5.073,4.175],[3.275,4.371]],"o":[[0,0],[0,0],[2.927,5.881],[4.218,-3.47],[0,0]],"v":[[-19.606,-32.068],[-28.778,-28.309],[8.18,24.557],[23.819,27.893],[25.503,13.877]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[68.298,62.854],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":13,"parent":14},{"ty":4,"nm":"body Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[114.814,140.12,0],"ix":1},"s":{"a":0,"k":[69.175,69.175,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[70.821,89.498,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":0},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[5],"t":38},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":102},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[5],"t":130},{"s":[0],"t":156.00000635401}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.163,-0.014],[0,0],[0.013,0.163],[0,0],[-0.163,0.013],[0,0],[-0.014,-0.162],[0,0]],"o":[[0,0],[-0.164,0.014],[0,0],[-0.014,-0.162],[0,0],[0.163,-0.014],[0,0],[0.014,0.163]],"v":[[7.181,-0.071],[-7.091,1.135],[-7.411,0.865],[-7.451,0.39],[-7.181,0.071],[7.091,-1.135],[7.411,-0.866],[7.451,-0.391]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[138.158,137.082],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[114.081,103.568],"ix":2},"r":{"a":0,"k":-1.214,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.167,0],[0,0],[0.005,0.172],[0,0],[-0.166,-0.001],[0,0],[-0.005,-0.172],[0,0]],"o":[[0,0],[-0.167,0],[0,0],[-0.004,-0.172],[0,0],[0.167,0],[0,0],[0.005,0.172]],"v":[[7.158,0.652],[-7.479,0.623],[-7.79,0.311],[-7.802,-0.19],[-7.508,-0.499],[7.129,-0.471],[7.44,-0.159],[7.453,0.342]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[128.79,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[113.729,99.402],"ix":2},"r":{"a":0,"k":-4.554,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-2.168],[2.169,0],[0,2.168],[-2.168,0]],"o":[[0,2.168],[-2.168,0],[0,-2.168],[2.169,0]],"v":[[3.927,0],[-0.001,3.926],[-3.926,0],[-0.001,-3.926]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.6667,0.2235],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[140.802,140.802],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[111.939,88.475],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1.992,2.123],[-1.236,2.636],[-1.992,-2.123],[1.236,-2.636]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[111.205,77.184],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[-21.442,-1.769],[0,0]],"o":[[0,0],[21.442,1.77],[0,0]],"v":[[-29.676,-21.792],[2.654,24.849],[29.675,-26.619]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"c":{"a":0,"k":[1,1,1],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[106.255,51.027],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[12.754,15.042],[-10.051,16.969],[-12.754,-15.043],[10.051,-16.969]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[115.979,116.81],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[113.056,97.025],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[2.518,-9.016],[0,0],[-4.749,-0.987],[0,0],[-1.701,2.287],[3.963,26.452],[0,0],[0,0]],"o":[[0,0],[-2.474,9.097],[0,0],[2.791,0.58],[5.692,-7.645],[0,0],[0,0],[-18.626,4.456]],"v":[[-3.926,-30.89],[-33.276,35.848],[-20.97,55.109],[-16.703,55.321],[-5.631,49.715],[33.365,-10.757],[34.547,-31.083],[26.11,-56.63]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[2.518,-9.016],[0,0],[-10.699,-2.796],[0,0],[-5.01,5.821],[3.963,26.452],[0,0],[0,0]],"o":[[0,0],[-1.271,4.68],[0,0],[2.791,0.58],[6.218,-7.224],[0,0],[0,0],[-18.626,4.456]],"v":[[-6.982,-26.188],[-27.914,38.901],[-18.945,59.538],[-18.634,59.458],[-7.026,53.244],[26.511,-11.782],[34.547,-31.083],[26.11,-56.63]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[-111.855,104.591],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[127.547,-4.882],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tr","a":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[64.937,-42.152],"t":11},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[64.937,-38.152],"t":31},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[64.937,-38.152],"t":130},{"s":[64.937,-42.152],"t":145.000005905971}],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100,100],"t":11},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[106,100],"t":31},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[106,100],"t":131},{"s":[100,100],"t":145.000005905971}],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[105.902,46.384],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":8,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[23.85,14.244],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-21.288,17.847]],"v":[[-38.081,-1.664],[0.765,-12.581],[37.227,-7.167],[36.169,-6.519]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,122.504],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[105.157,33.569],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":9,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-3.387,-11.142],[0,0],[0,0],[0,0],[11.712,1.334]],"o":[[0,0],[-11.212,3.15],[0,0],[0,0],[0,0],[1.784,-11.652],[0,0]],"v":[[-1.035,-61.184],[-39.882,-50.266],[-56.69,-24.078],[-28.227,61.184],[41.045,57.953],[58.294,-33.367],[36.281,-56.934]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[106.957,82.173],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":14,"parent":15},{"ty":4,"nm":"legs Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[57.424,21.724,0],"ix":1},"s":{"a":0,"k":[126.893,126.893,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[234,384,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.184,6.495],[-8.184,6.495],[-6.319,-5.546],[6.592,-6.495]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[80.156,288.505],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.184,6.495],[-8.184,6.495],[-6.318,-5.546],[6.592,-6.495]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[42.934,288.505],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-5.254],[6.754,0],[0,5.254],[-6.755,0]],"o":[[0,5.254],[-6.755,0],[0,-5.254],[6.754,0]],"v":[[12.232,2.129],[0.001,6.802],[-12.232,2.129],[0.001,-7.384]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[79.414,295.28],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-5.254],[6.755,0],[0,5.254],[-6.755,0]],"o":[[0,5.254],[-6.755,0],[0,-5.254],[6.755,0]],"v":[[12.231,2.13],[0,6.802],[-12.231,2.13],[0,-7.384]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[43.393,296.481],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0.574,-33.182],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.26],[-22.172,18.943]],"o":[[0,0],[-0.574,33.182],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.125,-1.255],[0.159,-26.24],[0,0]],"v":[[21.989,-127.72],[42.6,-64.186],[32.695,126.414],[7.478,126.414],[1.896,-79.285],[-1.432,-79.488],[-4.936,126.414],[-24.346,127.72],[-42.984,-60.379],[-43.165,-64.159],[-17.165,-126]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.6667,0.2235],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[59.007,148.363],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.696,24.832],[7.387,-30.754],[-7.387,-25.919],[-4.061,30.754]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9804,0.6902,0.5765],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[42.138,269.081],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.469,20.99],[-6.538,-27.675],[7.469,-26.65],[5.068,27.674]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9804,0.6902,0.5765],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[81.395,268.526],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":15},{"ty":4,"nm":"folder hand Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[12.5,11,0],"ix":1},"s":{"a":0,"k":[134.522,134.522,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[150.13,37.588,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.986},"s":[0],"t":16},{"o":{"x":0.167,"y":-0.008},"i":{"x":0.833,"y":1},"s":[8],"t":40},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":0.928},"s":[1],"t":52},{"o":{"x":0.167,"y":0.663},"i":{"x":0.833,"y":1.53},"s":[8],"t":74},{"o":{"x":0.167,"y":0.1},"i":{"x":0.833,"y":0.833},"s":[8],"t":103},{"s":[0],"t":147.000005987433}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-2.352,-5.767],[0,0],[3.063,-1.014],[0,0],[1.299,1.381],[-0.604,17.786],[0,0],[0,0]],"o":[[0,0],[1.197,2.997],[0,0],[-1.801,0.596],[-4.345,-4.62],[0,0],[0,0],[12.652,1.526]],"v":[[-0.119,-18.833],[24.368,23.044],[20.926,30.441],[9.123,34.352],[4.042,33.079],[-18.782,-3.882],[-25.565,-16.028],[-24.259,-34.947]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.3373,0.2706],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[35.457,41.826],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[-2.642,-8.534],[0,0],[-1.151,-0.528],[-0.544,1.317],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[-0.303,1.294],[1.245,0.57],[0,0],[0,0],[0,0]],"v":[[7.505,7.126],[3.592,-14.458],[-3.225,-12.862],[-4.863,2.372],[-6.816,10.711],[-5.338,13.888],[-2.126,12.548],[-0.178,7.837],[0.199,8.559]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[60.499,142.234],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.453,-2.311],[0,0],[2.311,-0.454],[0,0],[0.453,2.31],[0,0],[-2.311,0.454],[0,0]],"o":[[0,0],[0.453,2.31],[0,0],[-2.311,0.453],[0,0],[-0.454,-2.311],[0,0],[2.31,-0.453]],"v":[[27.129,-6.194],[27.459,-4.514],[24.095,0.491],[-22.124,9.556],[-27.129,6.193],[-27.458,4.513],[-24.095,-0.492],[22.125,-9.557]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8196,0.4118,0.5373],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[72.41,196.175],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.155,-28.674],[35.72,18.889],[-14.155,28.673],[-35.72,-18.891]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.502,0.6353],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[62.404,176.355],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[24.17,-30.637],[25.705,20.854],[-24.17,30.637],[-25.705,-20.855]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.502,0.6353],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[72.445,218.192],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-2.642,-8.533],[0,0],[-1.151,-0.527],[-0.544,1.318],[0,0],[0,0],[1.384,-2.432],[0,0],[-0.43,-0.815],[-1.04,1.388],[0,0],[0.688,4.141],[0,0]],"o":[[0,0],[0,0],[-0.303,1.294],[1.245,0.57],[0,0],[0,0],[0.327,2.862],[0,0],[-0.449,0.788],[0.832,1.579],[0,0],[2.419,-3.233],[0,0],[0,0]],"v":[[-3.462,-20.193],[-5.1,-4.959],[-7.053,3.38],[-5.575,6.557],[-2.364,5.217],[-0.415,0.506],[-0.21,2.309],[-1.842,10.484],[-5.782,17.406],[-5.812,20.006],[-1.913,20.401],[4.33,12.061],[7.054,0.46],[3.355,-21.789]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[60.736,149.565],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.776,-3.709],[0,0],[0,0],[3.223,25.294],[3.958,-0.832]],"o":[[0,0],[0,0],[0,0],[-0.512,-4.013],[-3.709,0.78]],"v":[[-10.53,-25.718],[2.622,35.429],[11.306,34.981],[5.302,-28.142],[-4.34,-34.597]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[53.647,97.981],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":16,"parent":14},{"ty":4,"nm":"head Outlines","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[93.646,180.966,0],"ix":1},"s":{"a":0,"k":[77.198,77.198,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[103.421,30.753,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[5],"t":0},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-2],"t":28},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[11.277],"t":51},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[5],"t":75},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[5],"t":102},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-2],"t":120},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[11.277],"t":143},{"s":[5],"t":159.000006476203}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-3.148,-30.415],[1.989,23.56]],"o":[[0,0],[0,0]],"v":[[-9.514,17.561],[10.673,-17.561]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[53.143,44.064],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-10.049,-51.606],[0.48,38.607]],"o":[[0,0],[0,0]],"v":[[32.854,21.814],[-32.854,-8.815]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[94.179,32.736],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-9.588,-0.185]],"o":[[0,0],[0,0],[9.811,0.19]],"v":[[11.843,3.202],[-11.843,3.067],[-0.665,-3.016]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[105.636,61.899],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[9.42,-1.79]],"o":[[0,0],[0,0],[-9.64,1.833]],"v":[[-11.665,5.009],[11.665,0.905],[-0.376,-3.219]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[64.525,65.548],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-2.451,-3.191],[-1.912,3.191],[2.451,2.823]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.661,"ix":5},"c":{"a":0,"k":[0.8157,0.3882,0.3686],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[87.446,94.144],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.537,-10.217],[8.977,-6.355],[0,0],[10.676,4.703],[3.152,10.306],[0,0],[-44.509,3.178]],"o":[[1.462,16.325],[-1.505,10.002],[0,0],[-9.498,6.723],[-10.767,-4.744],[-5.731,-18.746],[0,0],[44.509,-3.178]],"v":[[44.055,-15.478],[42.805,25.37],[26.234,49.168],[24.6,50.325],[-8.508,53.64],[-30.279,31.767],[-38.344,-8.1],[-1.008,-55.165]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[83.826,80.068],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-14.925,1.547],[0,0]],"o":[[0,0],[12.269,-1.272],[0,0]],"v":[[-19.574,-13.238],[6.18,13.542],[19.574,-15.09]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5922,0.4549],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[89.592,134.032],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":8,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[5.831,-1.976],[0.079,0.048],[0,0],[0,0],[0,0],[-9.3,11.515],[0,0]],"o":[[0,0],[-5.831,1.976],[-0.078,-0.049],[0,0],[0,0],[11.031,10.01],[0,0],[0,0]],"v":[[12.09,-31.247],[0.234,-22.723],[-11.853,-24.816],[-19.256,-29.449],[-17.851,20.473],[-17.01,21.238],[17.896,18.654],[19.255,16.969]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[94.531,156.411],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":9,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-2.261,-26.769],[28.679,-2.422],[2.26,26.769],[-28.678,2.421]],"o":[[2.261,26.769],[-28.679,2.421],[-2.261,-26.769],[28.679,-2.422]],"v":[[51.928,-4.385],[4.092,48.469],[-51.928,4.385],[-4.094,-48.469]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[85.987,59.576],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":10,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[4.531,-11.045]],"o":[[0,0],[0,0]],"v":[[5.423,-3.284],[-5.423,5.523]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.661,"ix":5},"c":{"a":0,"k":[0.8157,0.3882,0.3686],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[135.049,92.859],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":11,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.704,-8.338],[-8.338,0.704],[0.704,8.337],[8.338,-0.704]],"o":[[0.704,8.338],[8.338,-0.704],[-0.704,-8.338],[-8.338,0.705]],"v":[[-15.097,1.275],[1.275,15.097],[15.096,-1.274],[-1.275,-15.097]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[132.165,92.657],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 12","ix":12,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[-6.601,-9.946]],"o":[[0,0],[0,0]],"v":[[-6.178,-1.542],[6.178,4.973]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.661,"ix":5},"c":{"a":0,"k":[0.8157,0.3882,0.3686],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[44.287,100.005],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 13","ix":13,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.939,-8.315],[8.314,-0.939],[0.94,8.314],[-8.314,0.939]],"o":[[0.939,8.314],[-8.314,0.94],[-0.939,-8.315],[8.315,-0.939]],"v":[[15.055,-1.701],[1.701,15.054],[-15.055,1.701],[-1.701,-15.055]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.949,0.6588,0.5569],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[46.858,99.861],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 14","ix":14,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.546,-48.766],[-0.452,83.851],[59.351,88.771]],"o":[[0,0],[37.476,329.513],[0.262,-48.688],[0,0]],"v":[[-68.402,-108.067],[-73.015,22.63],[79.958,224.426],[26.559,-132.515]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":4},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0392,0.0392,0.0392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[102.473,164.21],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":17,"parent":14},{"ty":4,"nm":"Shape Layer 7","sr":1,"st":0,"op":160.000006516934,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[250,250,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 1","ix":1,"cix":2,"np":3,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[500,500],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"c":{"a":0,"k":[0,0,0],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9608,0.9098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":18}],"v":"5.7.4","fr":29.9700012207031,"op":160.000006516934,"ip":0,"fonts":{"list":[{"ascent":75,"fClass":"","fFamily":"Roboto","fStyle":"Black","fName":"Roboto-Black","fPath":"","fWeight":"","origin":0}]},"chars":[{"ch":"N","fFamily":"Roboto","size":30,"style":"Black","w":70.21,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"N","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"N","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[64.746,-71.094],[47.656,-71.094],[47.656,-26.855],[22.51,-71.094],[5.371,-71.094],[5.371,0],[22.51,0],[22.51,-44.238],[47.705,0],[64.746,0]]},"ix":2}}]}]}},{"ch":"o","fFamily":"Roboto","size":30,"style":"Black","w":56.15,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"o","ix":1,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"o","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-4.558,-4.508],[-7.52,0],[-4.574,4.834],[0,8.236],[0,0],[4.557,4.9],[7.91,0],[3.841,-2.213],[2.051,-4.118],[0,-5.273]],"o":[[0.358,7.715],[4.557,4.509],[7.813,0],[4.573,-4.834],[0,0],[0,-8.43],[-4.558,-4.899],[-5.176,0],[-3.841,2.214],[-2.051,4.118],[0,0]],"v":[[2.588,-24.121],[9.961,-5.786],[28.076,0.977],[46.655,-6.274],[53.516,-25.879],[53.516,-26.465],[46.68,-46.46],[27.979,-53.809],[14.453,-50.488],[5.615,-40.991],[2.539,-26.904]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"o","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.502,0],[0,-9.473],[0,0],[5.859,0],[1.53,2.279],[0,4.883]],"o":[[0.455,-8.17],[6.055,0],[0,0],[-0.13,9.017],[-2.995,0],[-1.53,-2.278],[0,0]],"v":[[19.043,-28.857],[27.979,-41.113],[37.061,-26.904],[37.061,-25.244],[28.076,-11.719],[21.289,-15.137],[18.994,-25.879]]},"ix":2}}]}]}},{"ch":" ","fFamily":"Roboto","size":30,"style":"Black","w":24.9},{"ch":"D","fFamily":"Roboto","size":30,"style":"Black","w":64.65,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"D","ix":1,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"D","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-4.997,2.914],[-2.751,5.16],[0,6.511],[0,0],[2.815,5.193],[5.013,2.849],[6.282,0],[0,0],[0,0]],"o":[[6.152,-0.032],[4.996,-2.913],[2.75,-5.159],[0,0],[-0.033,-6.445],[-2.816,-5.192],[-5.013,-2.848],[0,0],[0,0],[0,0]],"v":[[28.76,0],[45.483,-4.419],[57.104,-16.528],[61.23,-34.033],[61.23,-37.305],[56.958,-54.761],[45.215,-66.821],[28.271,-71.094],[5.371,-71.094],[5.371,0]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"D","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-2.637,-3.483],[0,-6.868],[0,0],[2.637,-3.499],[4.915,0],[0,0],[0,0]],"o":[[5.045,0],[2.637,3.484],[0,0],[0,6.902],[-2.637,3.5],[0,0],[0,0],[0,0]],"v":[[28.271,-57.861],[39.795,-52.637],[43.75,-37.109],[43.75,-34.033],[39.795,-18.433],[28.467,-13.184],[22.51,-13.184],[22.51,-57.861]]},"ix":2}}]}]}},{"ch":"a","fFamily":"Roboto","size":30,"style":"Black","w":53.08,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"a","ix":1,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"a","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0.065,4.851],[0,0],[3.906,3.288],[6.738,0],[4.346,-3.186],[0,-5.104],[0,0],[-3.906,0],[0,-4.874],[0,0],[0,0],[4.231,-2.93],[0,-5.729],[-3.484,-3.011],[-4.98,0],[-3.027,3.809],[-0.586,-1.074]],"o":[[0,0],[-1.433,-2.571],[0,0],[-0.098,-5.729],[-3.906,-3.288],[-6.738,0],[-4.346,3.186],[0,0],[0,-3.86],[4.199,0],[0,0],[0,0],[-8.073,0],[-4.232,2.93],[0,4.558],[3.483,3.011],[5.436,0],[0.455,2.084],[0,0]],"v":[[50.83,0],[50.83,-0.83],[48.584,-11.963],[48.584,-35.352],[42.578,-48.877],[26.611,-53.809],[9.985,-49.029],[3.467,-36.593],[19.922,-36.593],[25.781,-42.383],[32.08,-35.072],[32.08,-32.275],[27.002,-32.275],[8.545,-27.881],[2.197,-14.893],[7.422,-3.54],[20.117,0.977],[32.813,-4.736],[34.375,0]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"a","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.009,0.928],[0,1.498],[-5.73,0],[0,0],[0,0],[1.35,-0.879],[2.051,0]],"o":[[-1.009,-0.928],[0,-5.143],[0,0],[0,0],[-0.586,1.107],[-1.351,0.879],[-1.563,0]],"v":[[20.215,-12.134],[18.701,-15.771],[27.295,-23.486],[32.08,-23.486],[32.08,-15.039],[29.175,-12.061],[24.072,-10.742]]},"ix":2}}]}]}},{"ch":"t","fFamily":"Roboto","size":30,"style":"Black","w":34.33,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"t","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"t","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.702,-2.669],[-5.664,0],[-2.962,0.944],[0,0],[1.627,0],[0.716,0.781],[0,1.986],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,5.437],[2.702,2.67],[3.223,0],[0,0],[-1.107,0.195],[-2.116,0],[-0.716,-0.781],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.324,-65.967],[7.324,-52.832],[0.586,-52.832],[0.586,-41.406],[7.324,-41.406],[7.324,-15.186],[11.377,-3.027],[23.926,0.977],[33.203,-0.439],[33.203,-12.207],[29.102,-11.914],[24.854,-13.086],[23.779,-17.236],[23.779,-41.406],[32.471,-41.406],[32.471,-52.832],[23.779,-52.832],[23.779,-65.967]]},"ix":2}}]}]}},{"ch":"F","fFamily":"Roboto","size":30,"style":"Black","w":54.69,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"F","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"F","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[50.146,-41.504],[22.51,-41.504],[22.51,-57.861],[52.93,-57.861],[52.93,-71.094],[5.371,-71.094],[5.371,0],[22.51,0],[22.51,-28.32],[50.146,-28.32]]},"ix":2}}]}]}},{"ch":"u","fFamily":"Roboto","size":30,"style":"Black","w":56.4,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"u","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"u","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[3.776,0],[0,4.525],[0,0],[0,0],[0,0],[-2.979,-3.369],[-5.795,0],[-3.484,4.46]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.595,2.702],[-4.395,0],[0,0],[0,0],[0,0],[0,6.316],[2.979,3.369],[5.924,0],[0,0]],"v":[[36.572,0],[52.002,0],[52.002,-52.832],[35.449,-52.832],[35.449,-15.771],[27.393,-11.719],[20.801,-18.506],[20.801,-52.832],[4.346,-52.832],[4.346,-18.604],[8.813,-4.077],[21.973,0.977],[36.084,-5.713]]},"ix":2}}]}]}},{"ch":"n","fFamily":"Roboto","size":30,"style":"Black","w":56.4,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"n","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"n","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[-3.223,0],[-1.074,-1.253],[0,-2.669],[0,0],[0,0],[0,0],[2.718,3.288],[5.501,0],[3.645,-4.785],[0,0]],"o":[[0,0],[0,0],[0,0],[1.563,-2.539],[2.832,0],[1.074,1.254],[0,0],[0,0],[0,0],[-0.098,-6.608],[-2.718,-3.288],[-6.413,0],[0,0],[0,0]],"v":[[4.297,-52.832],[4.297,0],[20.752,0],[20.752,-37.305],[27.93,-41.113],[33.789,-39.233],[35.4,-33.35],[35.4,0],[51.904,0],[51.904,-34.033],[47.681,-48.877],[35.352,-53.809],[20.264,-46.631],[19.727,-52.832]]},"ix":2}}]}]}},{"ch":"d","fFamily":"Roboto","size":30,"style":"Black","w":56.25,"data":{"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"d","ix":1,"cix":2,"np":5,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"d","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-3.679,-4.817],[-6.283,0],[-3.386,4.427],[0,0],[0,0],[0,0],[0,0],[0,0],[4.72,0],[3.613,-4.817],[0,-8.366]],"o":[[3.678,4.818],[5.208,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-3.223,-3.711],[-6.478,0],[-3.613,4.818],[0,8.887]],"v":[[8.057,-6.25],[22.998,0.977],[35.889,-5.664],[36.719,0],[51.514,0],[51.514,-75],[35.01,-75],[35.01,-48.242],[23.096,-53.809],[7.959,-46.582],[2.539,-26.807]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"d","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.078,0],[-1.498,-3.125],[0,0],[3.645,0],[0,9.375]],"o":[[0.423,-8.203],[3.645,0],[0,0],[-1.563,3.06],[-5.469,0],[0,0]],"v":[[19.043,-28.809],[27.295,-41.113],[35.01,-36.426],[35.01,-16.309],[27.197,-11.719],[18.994,-25.781]]},"ix":2}}]}]}}],"assets":[]} \ No newline at end of file diff --git a/assets/images/nointernet.json b/assets/images/nointernet.json new file mode 100644 index 0000000..0107bf7 --- /dev/null +++ b/assets/images/nointernet.json @@ -0,0 +1 @@ +{"nm":"Comp 1","ddd":0,"h":1100,"w":800,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"personaje 2","sr":1,"st":0,"op":120.000229360136,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[400,550,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[400,550,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 5","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.9,1.268],[-2.281,7.988],[-7.905,-0.305],[-0.87,-5.147],[3.744,-4.083],[1.712,-0.428]],"o":[[0,0],[2.28,-7.988],[5.123,0.197],[0.923,5.462],[-5.189,5.658],[-2.432,0.609]],"v":[[-11.649,15.253],[-13.549,-2.625],[6.973,-18.6],[14.907,-8.949],[9.949,6.101],[-2.908,18.296]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[1,0.851,0.7608],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[514.832,480.61],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 6","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.926,0.896],[0,0],[-1.556,0],[0,0],[0,0],[-1.385,-1.04],[0,0],[0.835,-0.865],[0,0],[2.171,0],[0,0],[-0.237,0.709],[0,0],[0,0]],"o":[[0,0],[1.119,-1.081],[0,0],[0,0],[1.732,0],[0,0],[0.962,0.722],[0,0],[-1.508,1.563],[0,0],[-0.748,0],[0,0],[0,0],[0.407,-1.222]],"v":[[-68.842,27.355],[-5.488,-33.88],[-1.318,-35.565],[-1.084,-35.565],[64.276,-35.565],[69.079,-33.964],[71.215,-32.359],[71.454,-29.372],[11.157,33.121],[5.4,35.565],[-71.012,35.565],[-72.052,34.123],[-71.899,33.664],[-70.872,30.579]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.8039,0.8353,0.8549],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[476.143,468.285],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 7","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[15.324,5.024],[0,0]],"o":[[0,0],[-11.085,6.021],[0,0],[0,0]],"v":[[13.769,-14.683],[19.781,6.978],[-14.318,9.659],[-19.781,-14.605]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[1,0.851,0.7608],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[412.75,380.856],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 8","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[44.299,-5.466],[1.222,-14.421],[-6.337,-0.231],[0,0],[0,0],[-10.12,-4.136],[-4.647,3.813],[-8.467,-9.575],[-1.553,-10.834],[15.77,-16.455]],"o":[[-27.277,3.365],[0,0],[2.61,1.934],[0,0],[-0.154,-10.99],[10.121,4.135],[4.647,-3.814],[3.963,4.481],[15.336,-23.7],[-27.513,6.367]],"v":[[-23.511,-43.171],[-63.5,-6.424],[-59.845,33.105],[-49.304,51.552],[-45.65,52.598],[-30.009,25.297],[-20.881,-2.492],[41.489,3.557],[40.907,37.414],[50.412,-36.143]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.5882,0.3647,0.3176],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[413.459,268.428],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 9","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.254,-14.17],[10.39,-4.544],[12.978,6.984],[4.811,19.228],[5.553,10.624],[-12.412,-1.526],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-0.254,14.17],[-12.705,1.914],[-16.464,-8.684],[-7.053,0.581],[-4.208,-14.519],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.019,7.907]],"v":[[51.972,35.106],[20.485,66.448],[-12.401,59.804],[-40.844,25.156],[-57.024,12.612],[-47.31,-4.785],[-37.5,13.453],[-42.19,-22.705],[-8.194,-68.362],[61.232,-48.491],[52.347,-6.328]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[1,0.851,0.7608],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[401.655,306.527],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 10","ix":6,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-4.26,62.228],[0,0],[0,0],[-11.782,0.38],[0,0],[6.081,-66.186],[0,0],[4.94,12.552],[-0.075,-39.851],[0.351,-0.074],[30.912,10.646],[0.76,0.945],[0.225,0.908]],"o":[[2.406,-7.916],[0,0],[0,0],[11.781,-0.38],[50.926,10.271],[0,0],[0,-20.921],[-20.565,63.912],[0.001,0.358],[-30.156,6.392],[-0.882,-0.303],[-0.76,-0.945],[-6.117,-24.716]],"v":[[-26.502,-4.753],[-13.96,-41.268],[16.444,-43.171],[32.786,-43.171],[50.648,-45.833],[101.194,39.753],[77.631,39.753],[72.691,7.42],[59.388,126.234],[58.784,126.987],[-26.122,126.479],[-28.782,124.958],[-29.883,122.294]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[381.846,433.668],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 11","ix":7,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-3.729,3.076],[1.371,8.788],[2.632,-1.318],[1.919,1.922],[0.548,-2.746],[3.564,-0.275],[1.645,-2.746],[-6.169,1.686],[-1.736,3.661]],"o":[[3.015,-7.964],[-0.731,-0.549],[-3.289,1.648],[-1.919,-1.922],[-0.548,2.746],[-3.564,0.274],[-8.443,14.094],[4.825,-1.318],[2.193,-0.366]],"v":[[28.21,4.486],[29.032,-19.68],[22.726,-18.581],[15.05,-22.151],[0.794,-22.151],[-3.867,-7.322],[-22.783,10.802],[0.794,22.335],[16.969,10.802]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[359.663,835.492],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 12","ix":8,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[31.757,9.095],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-32.348,7.023],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[34.584,-123.433],[-47.506,-125.716],[-37.245,122.292],[-14.442,122.292],[-6.081,-67.138],[24.323,125.716],[47.506,125.716]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.0431,0.1608,0.3647],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[402.85,681.678],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 13","ix":9,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[3.729,3.076],[-1.371,8.787],[-2.632,-1.318],[-1.919,1.922],[-0.548,-2.746],[-3.564,-0.275],[-1.645,-2.746],[6.169,1.685],[1.736,3.661]],"o":[[-3.015,-7.964],[0.731,-0.55],[3.29,1.648],[1.919,-1.922],[0.548,2.746],[3.564,0.274],[8.442,14.094],[-4.825,-1.319],[-2.194,-0.366]],"v":[[-28.21,4.487],[-29.032,-19.678],[-22.727,-18.581],[-15.05,-22.15],[-0.794,-22.15],[3.866,-7.321],[22.783,10.802],[-0.794,22.336],[-16.969,10.802]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[457.439,838.535],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 14","ix":10,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.779,12.521],[8.603,-15.467],[-8.779,-15.816],[-8.002,15.817]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[1,0.851,0.7608],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[375.867,809.741],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 15","ix":11,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.973,14.451],[-10.079,-13.365],[7.144,-15.753],[10.08,15.753]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[1,0.851,0.7608],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[439.06,809.556],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"wifi_icon","sr":1,"st":17.9999977064033,"op":120.000229360136,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[198.575,-239.681,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[198.575,-239.681,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.18,"y":0},"i":{"x":0.2,"y":1},"s":[0],"t":0},{"o":{"x":0.18,"y":0},"i":{"x":0.2,"y":1},"s":[45],"t":43},{"o":{"x":0.18,"y":0},"i":{"x":0.2,"y":1},"s":[-31],"t":81},{"s":[0],"t":119.000190751185}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 1","ix":1,"cix":2,"np":6,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.417,0],[-0.417,0],[-0.834,0.827],[0,1.24],[0.834,0.827],[1.668,-1.654],[0.105,-0.207],[0.209,-0.206],[0,-0.414],[-0.834,-0.828]],"o":[[0.417,0.413],[1.251,0],[0.834,-0.828],[0,-0.827],[-1.668,-1.654],[-0.208,0.207],[-0.104,0.207],[-0.417,0.414],[0,1.24],[0.417,0.413]],"v":[[7.693,37.023],[9.362,37.435],[12.281,36.195],[13.532,33.301],[12.281,30.406],[6.442,30.406],[6.025,31.026],[5.609,31.646],[5.191,33.301],[6.442,36.195]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.251,0],[0.834,0.413],[7.09,-4.963],[1.251,1.654],[-1.668,1.241],[-10.009,-7.03],[1.668,-2.068]],"o":[[-0.834,0],[-7.09,-4.963],[-2.085,1.24],[-1.251,-2.068],[10.009,-7.03],[2.085,1.241],[-0.417,1.24]],"v":[[23.958,21.308],[21.457,20.481],[-2.733,20.481],[-8.571,19.654],[-7.736,13.864],[26.043,13.864],[26.878,19.654]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 3","ix":3,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[18.23,-14.865],[-1.669,-1.654],[-1.251,0],[-0.417,1.241],[-15.43,-12.82],[-1.315,0.421]],"o":[[-18.658,-14.017],[-1.668,1.241],[0.834,1.24],[0.834,0],[15.431,-12.82],[1.069,1.061],[0,0]],"v":[[39.848,-2.297],[-22.75,-1.024],[-23.167,4.766],[-19.831,6.419],[-17.329,5.179],[36.052,5.179],[39.848,6.029]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 4","ix":4,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[21.704,-18.832],[-1.668,-1.654],[-1.252,0],[-0.834,0.413],[-22.824,-12.68]],"o":[[-25.104,-11.795],[-1.668,1.655],[0.834,0.827],[1.251,0],[20.027,-17.732],[0,0]],"v":[[39.848,-25.641],[-37.764,-15.086],[-38.181,-9.295],[-34.844,-8.055],[-31.924,-8.881],[39.848,-16.459]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Combinar trazados 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.2078,0.3412,0.4118],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[185.041,-243.891],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-5.083,0],[0,0],[0,-5.083],[0,0],[5.083,0],[0,5.083],[0,0]],"o":[[0,0],[5.083,0],[0,0],[0,5.083],[-5.083,0],[0,0],[0,-5.083]],"v":[[-0.001,-9.313],[-0.001,-9.313],[9.204,-0.109],[9.204,0.108],[-0.001,9.313],[-9.204,0.108],[-9.204,-0.109]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.2078,0.3412,0.4118],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[242.147,-204.502],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-5.083,0],[0,0],[0,-5.083],[0,0],[5.083,0],[0,5.083],[0,0]],"o":[[0,0],[5.083,0],[0,0],[0,5.083],[-5.083,0],[0,0],[0,-5.083]],"v":[[-0.001,-26.902],[-0.001,-26.902],[9.204,-17.699],[9.204,17.699],[-0.001,26.902],[-9.204,17.699],[-9.204,-17.699]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.2078,0.3412,0.4118],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[242.147,-257.271],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2,"parent":3},{"ty":4,"nm":"burbuja","sr":1,"st":0,"op":120.000229360136,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[101.277,-141.781,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[534.277,421.219,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.18,"y":0},"i":{"x":0.2,"y":1},"s":[0],"t":0},{"o":{"x":0.18,"y":0},"i":{"x":0.2,"y":1},"s":[-45],"t":43},{"o":{"x":0.18,"y":0},"i":{"x":0.2,"y":1},"s":[31],"t":81},{"s":[0],"t":119.000227448802}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 4","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-15.958,0],[0,52.655],[52.609,0],[0,-52.655],[-6.732,-13.072],[2.195,-5.158],[0,0],[-3.508,1.495],[0,0],[-5.004,-2.629]],"o":[[52.609,0],[0,-52.655],[-52.609,0],[0,15.719],[2.566,4.983],[0,0],[-1.494,3.511],[0,0],[5.2,-2.216],[13.213,6.942]],"v":[[1.724,93.868],[96.981,-1.472],[1.724,-96.813],[-93.534,-1.472],[-83.001,42.15],[-82.039,58.154],[-95.487,89.759],[-89.932,95.318],[-58.606,81.964],[-42.489,82.999]]},"ix":2}},{"ty":"gf","bm":0,"hd":false,"mn":"ADBE Vector Graphic - G-Fill","nm":"Relleno de degradado 1","e":{"a":0,"k":[-62,38],"ix":6},"g":{"p":3,"k":{"a":0,"k":[0,0.6627450980392157,0.6784313725490196,0.7294117647058823,0.5,0.7372549019607844,0.7686274509803922,0.803921568627451,1,0.8156862745098039,0.8549019607843137,0.8784313725490196],"ix":9}},"t":2,"a":{"a":0,"k":234,"ix":8},"h":{"a":0,"k":0.7,"ix":7},"s":{"a":0,"k":[64,-66],"ix":5},"r":1,"o":{"a":0,"k":100,"ix":10}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[196.706,-238.209],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"brazo","sr":1,"st":0,"op":120.000229360136,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[374.909,419.896,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[374.034,417.646,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.22,"y":0},"i":{"x":0,"y":1},"s":[0],"t":0},{"o":{"x":0.22,"y":0},"i":{"x":0,"y":1},"s":[-11],"t":20},{"o":{"x":0.22,"y":0},"i":{"x":0,"y":1},"s":[0],"t":48},{"o":{"x":0.22,"y":0},"i":{"x":0,"y":1},"s":[-11],"t":92},{"s":[0],"t":119.999985219045}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 10","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.921,13.447],[25.176,53.268],[-3.379,3.533],[-8.475,6.474],[5.321,-12.784],[4.236,-3.527],[-24.878,-4.934],[7.695,-18.024]],"o":[[-34.472,-21.175],[-2.089,-4.421],[9.19,-9.611],[12.542,-3.466],[-3.643,2.928],[13.303,42.17],[0,0],[-7.695,18.024]],"v":[[-26.502,-4.753],[-105.186,-96.689],[-103.079,-109.921],[-77.048,-133.658],[-57.286,-113.69],[-69.067,-104.031],[-13.96,-41.269],[8.224,-8.442]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.4,0.1451,0.5098],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[381.846,433.668],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 16","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[14.062,-13.694],[24.703,-26.246],[0,0],[-24.159,11.492],[-5.186,-1.617],[0,0]],"o":[[0,0],[-4.542,-1.803],[-26.177,6.526],[0,0],[26.324,-22.481],[0,0],[5.186,1.617],[0,0]],"v":[[50.197,-32.902],[45.205,-36.596],[24.893,-10.08],[-57.197,41.271],[-32.494,46.596],[32.114,3.233],[39.227,2.983],[56.147,-26.711]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[1,0.851,0.7608],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[340.712,281.899],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"direcciones","sr":1,"st":0,"op":120.000229360136,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[216.489,616.463,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[216.489,620.463,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 17","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-72.652,41.979],[-85.257,-11.821],[57.865,-41.979],[85.257,-18.157],[72.955,7.807]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.9059,0.8275,0.9373],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[229.262,629.861],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 18","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[79.268,33.382],[84.972,-21.584],[-60.81,-33.382],[-84.972,-6.284],[-69.489,17.915]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.9059,0.8275,0.9373],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[203.43,528.396],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 19","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-71.052,43.768],[-85.137,-9.664],[57.097,-43.768],[85.137,-20.713],[73.557,5.582]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.9059,0.8275,0.9373],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[209.912,440.108],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 21","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-15.005,-236.359],[-32.21,-234.631],[15.006,236.359],[32.21,234.631]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":0,"k":[0.3373,0.2549,0.1725],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[220.064,616.463],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":0,"nm":"blobs","sr":1,"st":0,"op":120.000229360136,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[400,550,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[400,550,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":800,"h":1100,"refId":"comp_0","ind":6}],"v":"5.5.8","fr":23.9499969482422,"op":120.000229360136,"ip":0,"assets":[{"nm":"","id":"comp_0","layers":[{"ty":4,"nm":"Recurso-4 contornos","sr":1,"st":0,"op":3404.99956612796,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[93.098,96.913,0],"ix":1},"s":{"a":0,"k":[324,324,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[324.896,329.642,0],"ix":2},"r":{"a":0,"k":-7,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Grupo 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Trazado 1","ix":1,"d":1,"ks":{"a":1,"k":[{"o":{"x":0.27,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-27.414,-10],[-8.411,-11.244],[-4.606,-13.604],[0.093,-13.712],[7.084,-12.207],[12.048,-7.832],[14.584,-1.43],[12.782,5.646],[10.395,9.93],[6.853,12.813],[-1.565,14.745],[-25.379,15.571]],"o":[[13.5,4.92],[8.411,11.244],[4.537,13.361],[-0.093,13.712],[-7.358,12.67],[-12.048,7.832],[-14.303,1.406],[-12.782,-5.646],[-10.707,-10.242],[-6.853,-12.813],[3.132,-29.601],[24.871,-15.254]],"v":[[40.531,-92.883],[73.077,-67.646],[92.281,-29.383],[99.538,11.692],[89.363,51.035],[59.716,82.178],[19.23,96.461],[-21.613,89.408],[-56.594,65.352],[-84.075,30.609],[-93.148,-10.887],[-41.348,-78.133]]}],"t":0},{"o":{"x":0.27,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-16.89,-3.382],[-13.011,-10.914],[-3.996,-16.527],[2.535,-16.18],[10.004,-13.445],[16.019,-5.395],[16.148,3.809],[11.309,11.844],[5.652,13.934],[-1.387,15.407],[-9.441,13.183],[-15.953,6.125]],"o":[[16.656,3.329],[13.012,10.91],[3.848,15.918],[-2.586,16.566],[-10.09,13.57],[-15.75,5.3],[-15.945,-3.75],[-10.379,-10.875],[-5.82,-14.324],[1.57,-16.14],[9.848,-13.973],[16.078,-6.183]],"v":[[12.406,-93.938],[58.156,-73.566],[86.25,-32.02],[79.77,15.84],[71.141,64.535],[26.723,87.18],[-21.457,95.746],[-60.043,66.695],[-84.492,29.707],[-93.238,-15.055],[-76.43,-59.82],[-38.375,-92.879]]}],"t":36},{"o":{"x":0.27,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-17.047,-0.609],[-7.139,-4.535],[-7.222,-4.422],[-8.004,-15.773],[0.508,-17.871],[12.336,-17.039],[20.57,-4.313],[19.16,4.742],[10.304,17.699],[1.371,20.184],[-7.746,16.86],[-16.418,8.625]],"o":[[8.473,0.315],[7.139,4.535],[15.098,9.223],[8.078,15.942],[-0.593,21],[-12.34,17.043],[-19.312,4.035],[-19.906,-4.918],[-10.16,-17.489],[-1.211,-18.5],[7.75,-16.859],[15.082,-7.914]],"v":[[1.09,-96.977],[24.153,-88.62],[45.34,-74.102],[87.738,-44.004],[87.23,8.531],[84.492,70.293],[26.742,92.043],[-31.211,94.465],[-83.652,64.766],[-83.027,5.312],[-91.266,-48.551],[-45.062,-77.426]]}],"t":84},{"s":[{"c":true,"i":[[-27.414,-10],[-8.411,-11.244],[-4.606,-13.604],[0.093,-13.712],[7.084,-12.207],[12.048,-7.832],[14.584,-1.43],[12.782,5.646],[10.395,9.93],[6.853,12.813],[-1.565,14.745],[-25.379,15.571]],"o":[[13.5,4.92],[8.411,11.244],[4.537,13.361],[-0.093,13.712],[-7.358,12.67],[-12.048,7.832],[-14.303,1.406],[-12.782,-5.646],[-10.707,-10.242],[-6.853,-12.813],[3.132,-29.601],[24.871,-15.254]],"v":[[40.531,-92.883],[73.077,-67.646],[92.281,-29.383],[99.538,11.692],[89.363,51.035],[59.716,82.178],[19.23,96.461],[-21.613,89.408],[-56.594,65.352],[-84.075,30.609],[-93.148,-10.887],[-41.348,-78.133]]}],"t":119.999985219045}],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Relleno 1","c":{"a":1,"k":[{"o":{"x":0.15,"y":0},"i":{"x":0.05,"y":1},"s":[0.902,0.9176,0.9255],"t":0},{"s":[0.902,0.9176,0.9255],"t":119.999985219045}],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[93.5,97],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1}]}]} \ No newline at end of file diff --git a/assets/images/onboarding images (5).png b/assets/images/onboarding images (5).png new file mode 100644 index 0000000..fff61cc Binary files /dev/null and b/assets/images/onboarding images (5).png differ diff --git a/assets/images/onboarding images (6).png b/assets/images/onboarding images (6).png new file mode 100644 index 0000000..babf430 Binary files /dev/null and b/assets/images/onboarding images (6).png differ diff --git a/assets/images/onboarding images (7).png b/assets/images/onboarding images (7).png new file mode 100644 index 0000000..2b7830b Binary files /dev/null and b/assets/images/onboarding images (7).png differ diff --git a/assets/images/onboarding3.png b/assets/images/onboarding3.png new file mode 100644 index 0000000..9d4841f Binary files /dev/null and b/assets/images/onboarding3.png differ diff --git a/assets/images/otp_image.png b/assets/images/otp_image.png new file mode 100644 index 0000000..09f714a Binary files /dev/null and b/assets/images/otp_image.png differ diff --git a/assets/images/splash.png b/assets/images/splash.png new file mode 100644 index 0000000..de19deb Binary files /dev/null and b/assets/images/splash.png differ diff --git a/assets/images/splash_background1.png b/assets/images/splash_background1.png new file mode 100644 index 0000000..752c586 Binary files /dev/null and b/assets/images/splash_background1.png differ diff --git a/assets/success.json b/assets/success.json new file mode 100644 index 0000000..59f58fa --- /dev/null +++ b/assets/success.json @@ -0,0 +1 @@ +{"v":"5.1.7","fr":30,"ip":25,"op":69,"w":600,"h":600,"nm":"success","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[115.68,468.673,0],"ix":2},"a":{"a":0,"k":[26.859,26.86,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-20.859,20.86],[20.859,-20.86]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[26.859,26.86],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[100],"e":[0]},{"t":22}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[467.82,115.827,0],"ix":2},"a":{"a":0,"k":[26.86,26.859,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-20.86,20.859],[20.86,-20.859]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[26.86,26.859],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[0],"e":[100]},{"t":22}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[115.327,116.18,0],"ix":2},"a":{"a":0,"k":[26.859,26.859,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-20.859,-20.86],[20.859,20.86]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[26.859,26.86],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[100],"e":[0]},{"t":22}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[468.174,468.32,0],"ix":2},"a":{"a":0,"k":[26.86,26.86,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-20.86,-20.86],[20.86,20.86]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[26.86,26.86],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[0],"e":[100]},{"t":22}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[42.5,292.5,0],"ix":2},"a":{"a":0,"k":[35.5,6,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6,6],[65,6]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[100],"e":[0]},{"t":22}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 9 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[541,292,0],"ix":2},"a":{"a":0,"k":[35.5,6,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6,6],[65,6]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[0],"e":[100]},{"t":22}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[292,541.5,0],"ix":2},"a":{"a":0,"k":[6,35.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6,65],[6,6]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[100],"e":[0]},{"t":22}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 11 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[291.5,43,0],"ix":2},"a":{"a":0,"k":[6,35.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[6,65],[6,6]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":4,"s":[0],"e":[100]},{"t":22}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":28,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[367.859,367.859],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":25,"s":[0],"e":[0]},{"i":{"x":[0.089],"y":[1]},"o":{"x":[0.655],"y":[0]},"n":["0p089_1_0p655_0"],"t":36,"s":[0],"e":[100]},{"t":50}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.333],"y":[1]},"o":{"x":[0.829],"y":[0]},"n":["0p333_1_0p829_0"],"t":25,"s":[0],"e":[100]},{"t":39}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.893382352941,0.893382352941,0.893382352941,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[1.93,-10.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":25,"op":50,"st":25,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,300,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[367.859,367.859],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0_1_0p333_0"],"t":0,"s":[0],"e":[0]},{"i":{"x":[0.089],"y":[1]},"o":{"x":[0.655],"y":[0]},"n":["0p089_1_0p655_0"],"t":11,"s":[0],"e":[100]},{"t":25}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.333],"y":[1]},"o":{"x":[0.829],"y":[0]},"n":["0p333_1_0p829_0"],"t":0,"s":[0],"e":[100]},{"t":14}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.893382352941,0.893382352941,0.893382352941,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[1.93,-10.07],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":25,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Pre-comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":54,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":56,"s":[100],"e":[100]},{"t":62}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,300,0],"ix":2},"a":{"a":0,"k":[300,300,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":54,"s":[86,86,100],"e":[94,94,100]},{"t":62}],"ix":6}},"ao":0,"w":600,"h":600,"ip":54,"op":354,"st":54,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[300,300,0],"ix":2},"a":{"a":0,"k":[137.378,109.309,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-84.878,0.669],[-28.738,56.809],[84.878,-56.809]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":21,"ix":5},"lc":1,"lj":1,"ml":10,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[137.378,109.308],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.185],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p185_1_0p333_0"],"t":59,"s":[0],"e":[6]},{"i":{"x":[0.306],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p306_1_0p333_0"],"t":62,"s":[6],"e":[0]},{"t":66}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.35],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p35_1_0p333_0"],"t":54,"s":[0],"e":[100]},{"i":{"x":[0.032],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p032_1_0p333_0"],"t":62,"s":[100],"e":[94]},{"t":66}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54,"op":354,"st":54,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[299.988,299.91,0],"ix":2},"a":{"a":0,"k":[190.878,189.014,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.046,0.046,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p046_1_0p333_0","0p046_1_0p333_0","0p667_1_0p333_0"],"t":50,"s":[0,0,100],"e":[116,116,100]},{"i":{"x":[0.019,0.019,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0.032,0.032,0]},"n":["0p019_1_0p333_0p032","0p019_1_0p333_0p032","0p667_1_0p333_0"],"t":61,"s":[116,116,100],"e":[100,100,100]},{"t":67}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.067,-3.573],[0,0],[-2.665,-0.588],[0,0],[-1.937,-5.043],[0,0],[-2.087,-1.753],[0,0],[0.635,-5.357],[0,0],[-1.033,-2.517],[0,0],[3.063,-4.444],[0,0],[0.259,-2.704],[0,0],[4.789,-2.513],[0,0],[1.492,-2.273],[0,0],[5.418,-0.007],[0,0],[2.383,-1.32],[0,0],[4.806,2.501],[0,0],[2.727,-0.064],[0,0],[3.093,4.437],[0,0],[2.448,1.205],[0,0],[0.67,5.356],[0,0],[1.607,2.198],[0,0],[-1.904,5.047],[0,0],[0.399,2.689],[0,0],[-4.043,3.583],[0,0],[-0.901,2.564],[0,0],[-5.257,1.298],[0,0],[-1.995,1.85],[0,0],[-5.265,-1.284],[0,0],[-2.632,0.713],[0,0]],"o":[[0,0],[2.049,1.8],[0,0],[5.292,1.166],[0,0],[0.976,2.539],[0,0],[4.146,3.481],[0,0],[-0.32,2.698],[0,0],[2.05,4.998],[0,0],[-1.542,2.239],[0,0],[-0.514,5.372],[0,0],[-2.412,1.266],[0,0],[-2.961,4.512],[0,0],[-2.728,0.003],[0,0],[-4.73,2.62],[0,0],[-2.42,-1.26],[0,0],[-5.416,0.129],[0,0],[-1.557,-2.233],[0,0],[-4.861,-2.393],[0,0],[-0.338,-2.697],[0,0],[-3.192,-4.367],[0,0],[0.959,-2.542],[0,0],[-0.792,-5.339],[0,0],[2.036,-1.805],[0,0],[1.789,-5.09],[0,0],[2.647,-0.653],[0,0],[3.961,-3.674],[0,0],[2.651,0.646],[0,0],[5.226,-1.416]],"v":[[49.728,-183.893],[75.948,-160.861],[83.134,-157.221],[117.251,-149.704],[128.834,-139.758],[141.329,-107.249],[146,-100.704],[172.734,-78.264],[178.36,-64.104],[174.265,-29.568],[175.352,-21.617],[188.578,10.606],[186.957,25.734],[167.211,54.389],[164.465,61.924],[161.152,96.546],[152.657,109.178],[121.785,125.385],[115.833,130.78],[96.742,159.871],[83.317,167.112],[48.39,167.159],[40.598,169.176],[10.101,186.072],[-5.177,186.263],[-36.157,170.138],[-44.005,168.317],[-78.921,169.146],[-92.553,162.244],[-112.489,133.642],[-118.596,128.399],[-149.931,112.972],[-158.793,100.558],[-163.119,66.033],[-166.084,58.567],[-186.661,30.418],[-188.724,15.336],[-176.447,-17.206],[-175.593,-25.182],[-180.697,-59.604],[-175.488,-73.898],[-149.422,-97.001],[-144.943,-103.66],[-133.405,-136.47],[-122.117,-146.703],[-88.233,-155.074],[-81.156,-158.891],[-55.62,-182.572],[-40.839,-186.4],[-6.899,-178.12],[1.156,-178.22],[34.84,-187.349]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.788000009574,0.522000002394,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.878,189.015],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":50,"op":350,"st":50,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/assets/successfull_anim.json b/assets/successfull_anim.json new file mode 100644 index 0000000..70f4742 --- /dev/null +++ b/assets/successfull_anim.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.1.0","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":60,"w":80,"h":80,"nm":"Tick","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Tick","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,40,0],"ix":2},"a":{"a":0,"k":[1.5,-3.125,0],"ix":1},"s":{"a":0,"k":[64.51612903225806,64.51612903225806,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-30.75,-1.5],[-8.75,19],[33.75,-25.25]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"t":25.0000010182709,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.872],"y":[0]},"t":10,"s":[0]},{"t":25.0000010182709,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Main Circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,40,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.833],"y":[1,1,1]},"o":{"x":[0.513,0.513,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":10.0000004073083,"s":[64.51612903225806,64.51612903225806,100]}],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5490196078431373,0.3607843137254902,0.6705882352941176,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Opaque Circle","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[100]},{"t":31.0000012626559,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,40,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":25,"s":[64.51612903225806,64.51612903225806,100]},{"t":31.0000012626559,"s":[81.93548387096774,81.93548387096774,100]}],"ix":6}},"ao":0,"shapes":[{"d":1,"ty":"el","s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8117647058823529,0.592156862745098,0.9176470588235294,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/fonts/Lato-Regular.ttf b/fonts/Lato-Regular.ttf new file mode 100644 index 0000000..33eba8b Binary files /dev/null and b/fonts/Lato-Regular.ttf differ diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100755 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100755 index 0000000..1dc6cf7 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 13.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100755 index 0000000..ec97fc6 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100755 index 0000000..c4855bf --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100755 index 0000000..3076416 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,43 @@ +# Uncomment this line to define a global platform for your project + platform :ios, '15.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..4d46cb5 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,302 @@ +PODS: + - connectivity_plus (0.0.1): + - Flutter + - Firebase/Auth (11.15.0): + - Firebase/CoreOnly + - FirebaseAuth (~> 11.15.0) + - Firebase/CoreOnly (11.15.0): + - FirebaseCore (~> 11.15.0) + - Firebase/InAppMessaging (11.15.0): + - Firebase/CoreOnly + - FirebaseInAppMessaging (~> 11.15.0-beta) + - Firebase/Messaging (11.15.0): + - Firebase/CoreOnly + - FirebaseMessaging (~> 11.15.0) + - firebase_auth (5.7.0): + - Firebase/Auth (= 11.15.0) + - firebase_core + - Flutter + - firebase_core (3.15.2): + - Firebase/CoreOnly (= 11.15.0) + - Flutter + - firebase_in_app_messaging (0.8.1-10): + - Firebase/InAppMessaging (= 11.15.0) + - firebase_core + - Flutter + - firebase_messaging (15.2.10): + - Firebase/Messaging (= 11.15.0) + - firebase_core + - Flutter + - FirebaseABTesting (11.15.0): + - FirebaseCore (~> 11.15.0) + - FirebaseAppCheckInterop (11.15.0) + - FirebaseAuth (11.15.0): + - FirebaseAppCheckInterop (~> 11.0) + - FirebaseAuthInterop (~> 11.0) + - FirebaseCore (~> 11.15.0) + - FirebaseCoreExtension (~> 11.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GTMSessionFetcher/Core (< 5.0, >= 3.4) + - RecaptchaInterop (~> 101.0) + - FirebaseAuthInterop (11.15.0) + - FirebaseCore (11.15.0): + - FirebaseCoreInternal (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreExtension (11.15.0): + - FirebaseCore (~> 11.15.0) + - FirebaseCoreInternal (11.15.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseInAppMessaging (11.15.0-beta): + - FirebaseABTesting (~> 11.0) + - FirebaseCore (~> 11.15.0) + - FirebaseInstallations (~> 11.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) + - nanopb (~> 3.30910.0) + - FirebaseInstallations (11.15.0): + - FirebaseCore (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) + - PromisesObjC (~> 2.4) + - FirebaseMessaging (11.15.0): + - FirebaseCore (~> 11.15.0) + - FirebaseInstallations (~> 11.0) + - GoogleDataTransport (~> 10.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Reachability (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) + - nanopb (~> 3.30910.0) + - Flutter (1.0.0) + - flutter_keyboard_visibility (0.0.1): + - Flutter + - flutter_local_notifications (0.0.1): + - Flutter + - fluttertoast (0.0.2): + - Flutter + - geocoding_ios (1.0.5): + - Flutter + - geolocator_apple (1.2.0): + - Flutter + - FlutterMacOS + - Google-Maps-iOS-Utils (6.1.0): + - GoogleMaps (~> 9.0) + - google_maps_flutter_ios (0.0.1): + - Flutter + - Google-Maps-iOS-Utils (< 7.0, >= 5.0) + - GoogleMaps (< 10.0, >= 8.4) + - GoogleDataTransport (10.1.0): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleMaps (9.4.0): + - GoogleMaps/Maps (= 9.4.0) + - GoogleMaps/Maps (9.4.0) + - GoogleUtilities/AppDelegateSwizzler (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (8.1.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Network (8.1.0): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (8.1.0)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/Reachability (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMSessionFetcher/Core (4.5.0) + - image_picker_ios (0.0.1): + - Flutter + - location (0.0.1): + - Flutter + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) + - package_info_plus (0.4.5): + - Flutter + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - permission_handler_apple (9.3.0): + - Flutter + - PromisesObjC (2.4.0) + - RecaptchaInterop (101.0.0) + - rive_native (0.0.1): + - Flutter + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - smart_auth (0.0.1): + - Flutter + - sms_autofill (0.0.1): + - Flutter + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - url_launcher_ios (0.0.1): + - Flutter + - webview_flutter_wkwebview (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) + - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) + - firebase_core (from `.symlinks/plugins/firebase_core/ios`) + - firebase_in_app_messaging (from `.symlinks/plugins/firebase_in_app_messaging/ios`) + - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) + - Flutter (from `Flutter`) + - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) + - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - geocoding_ios (from `.symlinks/plugins/geocoding_ios/ios`) + - geolocator_apple (from `.symlinks/plugins/geolocator_apple/darwin`) + - google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) + - location (from `.symlinks/plugins/location/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - rive_native (from `.symlinks/plugins/rive_native/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - smart_auth (from `.symlinks/plugins/smart_auth/ios`) + - sms_autofill (from `.symlinks/plugins/sms_autofill/ios`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) + +SPEC REPOS: + trunk: + - Firebase + - FirebaseABTesting + - FirebaseAppCheckInterop + - FirebaseAuth + - FirebaseAuthInterop + - FirebaseCore + - FirebaseCoreExtension + - FirebaseCoreInternal + - FirebaseInAppMessaging + - FirebaseInstallations + - FirebaseMessaging + - Google-Maps-iOS-Utils + - GoogleDataTransport + - GoogleMaps + - GoogleUtilities + - GTMSessionFetcher + - nanopb + - PromisesObjC + - RecaptchaInterop + +EXTERNAL SOURCES: + connectivity_plus: + :path: ".symlinks/plugins/connectivity_plus/ios" + firebase_auth: + :path: ".symlinks/plugins/firebase_auth/ios" + firebase_core: + :path: ".symlinks/plugins/firebase_core/ios" + firebase_in_app_messaging: + :path: ".symlinks/plugins/firebase_in_app_messaging/ios" + firebase_messaging: + :path: ".symlinks/plugins/firebase_messaging/ios" + Flutter: + :path: Flutter + flutter_keyboard_visibility: + :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" + flutter_local_notifications: + :path: ".symlinks/plugins/flutter_local_notifications/ios" + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" + geocoding_ios: + :path: ".symlinks/plugins/geocoding_ios/ios" + geolocator_apple: + :path: ".symlinks/plugins/geolocator_apple/darwin" + google_maps_flutter_ios: + :path: ".symlinks/plugins/google_maps_flutter_ios/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" + location: + :path: ".symlinks/plugins/location/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + permission_handler_apple: + :path: ".symlinks/plugins/permission_handler_apple/ios" + rive_native: + :path: ".symlinks/plugins/rive_native/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + smart_auth: + :path: ".symlinks/plugins/smart_auth/ios" + sms_autofill: + :path: ".symlinks/plugins/sms_autofill/ios" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + webview_flutter_wkwebview: + :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" + +SPEC CHECKSUMS: + connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd + Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e + firebase_auth: 50af8366c87bb88c80ebeae62eb60189c7246b9b + firebase_core: 995454a784ff288be5689b796deb9e9fa3601818 + firebase_in_app_messaging: 903a0e11af637c36216b4ab12fbef2af94ead656 + firebase_messaging: f4a41dd102ac18b840eba3f39d67e77922d3f707 + FirebaseABTesting: 5e9d432834aebf27ab72100d37af44dfbe8d82f7 + FirebaseAppCheckInterop: 06fe5a3799278ae4667e6c432edd86b1030fa3df + FirebaseAuth: a6575e5fbf46b046c58dc211a28a5fbdd8d4c83b + FirebaseAuthInterop: 7087d7a4ee4bc4de019b2d0c240974ed5d89e2fd + FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e + FirebaseCoreExtension: edbd30474b5ccf04e5f001470bdf6ea616af2435 + FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 + FirebaseInAppMessaging: 684b346d8cea49531b9dcaca2c1dbbfa82516fb5 + FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 + FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 + Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + flutter_keyboard_visibility: 4625131e43015dbbe759d9b20daaf77e0e3f6619 + flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb + fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1 + geocoding_ios: 33776c9ebb98d037b5e025bb0e7537f6dd19646e + geolocator_apple: ab36aa0e8b7d7a2d7639b3b4e48308394e8cef5e + Google-Maps-iOS-Utils: 0a484b05ed21d88c9f9ebbacb007956edd508a96 + google_maps_flutter_ios: 0291eb2aa252298a769b04d075e4a9d747ff7264 + GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 + GoogleMaps: 0608099d4870cac8754bdba9b6953db543432438 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 + GTMSessionFetcher: fc75fc972958dceedee61cb662ae1da7a83a91cf + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a + location: 155caecf9da4f280ab5fe4a55f94ceccfab838f8 + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba + rive_native: a57df296c558867395bfe82fafe857ec67640f58 + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + smart_auth: 33668081c5f646af84f10492a067d25fdcd16951 + sms_autofill: b36b2147535657fea83d7f3898d7831de70bd8e4 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 + +PODFILE CHECKSUM: 3d68f7cb47d5f2fb7765407f663653c9b51100f3 + +COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..ed54175 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,749 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 971EA2AF4AC122A519809D90 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EF824F5221B340AEBA137A2 /* Pods_RunnerTests.framework */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + E528E52F33DFD1C1A9F2E441 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16753500D6FD1C32E5177F5F /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 16753500D6FD1C32E5177F5F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 43E81F2ED100670A12D75134 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 564D235B906F778A22C3AEF8 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 6EF824F5221B340AEBA137A2 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 8F99B4F22060F515BA52E3D8 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 91CFB7925BF279F6EA4C3747 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A1C794C147B457DEFA7DD889 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + DE59447B504A4739C032D42D /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 79C0B0534106CBF21A1E486E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 971EA2AF4AC122A519809D90 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E528E52F33DFD1C1A9F2E441 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0FF80314460E66C5EEE41FAA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 16753500D6FD1C32E5177F5F /* Pods_Runner.framework */, + 6EF824F5221B340AEBA137A2 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 5152E48006BD6DD927A1E551 /* Pods */ = { + isa = PBXGroup; + children = ( + 43E81F2ED100670A12D75134 /* Pods-Runner.debug.xcconfig */, + DE59447B504A4739C032D42D /* Pods-Runner.release.xcconfig */, + 91CFB7925BF279F6EA4C3747 /* Pods-Runner.profile.xcconfig */, + 8F99B4F22060F515BA52E3D8 /* Pods-RunnerTests.debug.xcconfig */, + 564D235B906F778A22C3AEF8 /* Pods-RunnerTests.release.xcconfig */, + A1C794C147B457DEFA7DD889 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + 5152E48006BD6DD927A1E551 /* Pods */, + 0FF80314460E66C5EEE41FAA /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 7E1A200A49014490EAF8B89B /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + 79C0B0534106CBF21A1E486E /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 5B003DD7DB196BA95736AA2A /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 91B0E78D48C80FC3EA3593FC /* [CP] Embed Pods Frameworks */, + FF5F1B594EDA7145EBAC7A55 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 5B003DD7DB196BA95736AA2A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 7E1A200A49014490EAF8B89B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 91B0E78D48C80FC3EA3593FC /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + FF5F1B594EDA7145EBAC7A55 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = J2BT75GBL7; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8F99B4F22060F515BA52E3D8 /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 564D235B906F778A22C3AEF8 /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A1C794C147B457DEFA7DD889 /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = J2BT75GBL7; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = J2BT75GBL7; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100755 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100755 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e3773d4 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000..21a3cc1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100755 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100755 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100755 index 0000000..6266644 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@main +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000..4124c18 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000..83dce7e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000..3f3a2dd Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000..750c712 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000..28d07e6 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000..ca57f5f Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000..46ccd28 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000..3f3a2dd Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000..a7c3f49 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000..43b9d5e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png new file mode 100644 index 0000000..285dab0 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png new file mode 100644 index 0000000..e930ac2 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000..7f6ab55 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000..dc5dc34 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000..43b9d5e Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000..43c79c0 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000..2e331f2 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png new file mode 100644 index 0000000..47e0fd3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000..650e3ac Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000..5c3d500 Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000..0a1789a Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100755 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100755 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100755 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100755 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..56de6f6 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Businessv1 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + businessv1 + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100755 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/Controller/Authentication/Authcontroller.dart b/lib/Controller/Authentication/Authcontroller.dart new file mode 100644 index 0000000..9739375 --- /dev/null +++ b/lib/Controller/Authentication/Authcontroller.dart @@ -0,0 +1,391 @@ +import 'dart:async'; +import 'dart:io'; +import 'dart:math'; +import 'package:country_currency_pickers/country.dart'; +import 'package:country_currency_pickers/utils/utils.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:http/http.dart'; +import 'package:http/http.dart' as dio1; +import 'package:http/http.dart' as http; +import 'package:intl/intl.dart'; +import 'package:otp_timer_button/otp_timer_button.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:sms_autofill/sms_autofill.dart'; +import '../../Data/Repository/Authentication/loginrepository.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/toast.dart'; +import '../../Model/Request/Authentication/Loginrequest.dart'; +import '../../Model/Response/Authentication/Loginresponse.dart'; +import '../../View/Authentication/Otpverification.dart'; +import '../../View/Authentication/Usercreate/Usercreateview.dart'; + + +class AuthController extends GetxController with CodeAutoFill{ + + String? formatter; + String? currencyCode; + String? fcmEntryToken; + + String? resendOtp; + + + String? userFcmToken; + String? contactNo; + + + //Otp + String? smsOtp; + String verifyId = ""; + + int authmode = 0; + + bool termsChecking =false; + + //Otp + bool codeSent = false; + + var loginStatus; + + String? contactLength; + + + // FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance; + FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance; + + + Country selectedDialogCountry = CountryPickerUtils.getCountryByIsoCode('IN'); + + + // final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + final RoundedLoadingButtonController loginController = RoundedLoadingButtonController(); + + //Otp + OtpTimerButtonController otpTimerController = OtpTimerButtonController(); + + + TextEditingController loginPhoneNumberController = TextEditingController(); + TextEditingController otpController = TextEditingController(); + TextEditingController textEditingController = TextEditingController(); + + LoginRepository loginRepository = LoginRepository(); + + + @override + void onInit() { + getId(); + fcmToken(); + listenForCode(); + super.onInit(); + } + + @override + void onClose() { + cancel(); /// Stop listening for the OTP code + super.onClose(); + } + + @override + void codeUpdated() { + otpController.text = code ?? ''; + logger.i("OTP Code Received: ${otpController.text}"); + } + + @override + void dispose() { + // TODO: implement dispose + SmsAutoFill().unregisterListener(); + loginPhoneNumberController.dispose(); + otpController.dispose(); + super.dispose(); + } + + + + fcmToken() async { + + SharedPreferences prefs = await SharedPreferences.getInstance(); + var token = await firebaseMessaging.getToken(); + logger.i("firebase token======$token"); + fcmEntryToken = token; + prefs.setString('fcmToken', token!); + logger.i("tenanttokensetstring ${prefs.getString('fcmToken')}"); + + } + + + + + void currency() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + currencyCode = prefs.getString('Code_Currency')!; + final formats = NumberFormat(); + formatter = formats.simpleCurrencySymbol("$currencyCode"); + prefs.setString('Currency_Symbol', formatter!); + } + + void loginTenant(context) async { + Timer(const Duration(seconds: 1), () { + // btnController.success(); + profileValidation(context); + }); + } + + profileValidation(context)async{ + if (loginPhoneNumberController.text.isEmpty) { + loginController.reset(); + Toast.showToast("Please Enter Mobile Number"); + } else if (!RegExp( + r'^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$') + .hasMatch(loginPhoneNumberController.text)) { + loginController.reset(); + Toast.showToast("Please Enter a Valid Phone Number"); + } else if(termsChecking==false){ + loginController.reset(); + Toast.showToast("Please Select Terms of Service"); + + } + else { + signIn(context); + } + } + + String? uniqueDeviceId; + String? deviceId; + var iosDeviceInfo; + var androidDeviceInfo; + Future getId() async { + // var deviceInfo = DeviceInfoPlugin(); + SharedPreferences prefs = await SharedPreferences.getInstance(); + if (Platform.isIOS) { // import 'dart:io' + // iosDeviceInfo = await deviceInfo.iosInfo; + deviceId = iosDeviceInfo.toMap().toString(); + uniqueDeviceId = iosDeviceInfo.id; + prefs.setString('deviceId',uniqueDeviceId!); + print('iosDeviceInfodeviceId$deviceId'); + print('uniqueDeviceId${prefs.getString('deviceId')}'); + return iosDeviceInfo.identifierForVendor; // Unique ID on iOS + } else { + // androidDeviceInfo = await deviceInfo.androidInfo; + deviceId = androidDeviceInfo.toMap().toString(); + uniqueDeviceId = androidDeviceInfo.id; + prefs.setString('deviceId',uniqueDeviceId!); + print('androidDeviceInfodeviceId$deviceId'); + print('uniqueDeviceId${prefs.getString('deviceId')}'); + return androidDeviceInfo.androidId; // Unique ID on Android + } + print('${deviceId =androidDeviceInfo.androidId}'); + } + + + + //Authentication + + signIn(context) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + // ✅ Ensure FCM token is ready before calling API + if (fcmEntryToken == null) { + await fcmToken(); + } + + // Prepare data + final contactNo = loginPhoneNumberController.text; + final configId = 1; + final deviceType = Platform.operatingSystem; + final fcmTokenValue = fcmEntryToken ?? ''; + final deviceId1 = deviceId ?? ''; + + // ✅ Print all values before sending + print("========= LOGIN REQUEST DATA ========="); + print("📱 Contact No : $contactNo"); + print("⚙️ Config ID : $configId"); + print("💻 Device Type : $deviceType"); + print("🔑 FCM Token : $fcmTokenValue"); + print("🆔 Device ID : $deviceId1"); + print("======================================"); + + // Call login API + loginApi( + LoginRequest( + contactno: contactNo, + configid: configId, + devicetype: deviceType, + userfcmtoken: fcmTokenValue, + deviceid: deviceId1, + ), + context, + ); + } + + + loginApi(LoginRequest data,context) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + LoginResponse? result = await loginRepository.signIn(data); + if (result?.status == true) { + + loginStatus = result?.status; + authmode = result?.details?.authmode??0; + userFcmToken = result?.details?.userfcmtoken; + contactNo = result?.details?.contactno; + + + logger.i('loginApilocationname ${result?.details?.locationname}'); + + + prefs.setInt('userId', result?.details?.userid ?? 0); + prefs.setString('authName', result?.details?.authname ?? ''); + prefs.setInt('configId', result?.details?.configid ?? 0); + prefs.setInt('authMode', result?.details?.authmode ?? 0); + prefs.setInt('roleId', result?.details?.roleid ?? 0); + prefs.setString('userFirstName', result?.details?.firstname ?? ''); + prefs.setString('userLastName', result?.details?.lastname ?? ''); + prefs.setString('userPassword', result?.details?.password ?? ''); + prefs.setString('userEmail', result?.details?.email ?? ''); + // prefs.setString('tenantContactNo', result?.details?.contactno ?? ''); + prefs.setString('address', result?.details?.address ?? ''); + prefs.setString('userSuburb', result?.details?.suburb ?? ''); + prefs.setString('userCity', result?.details?.city ?? ''); + prefs.setString('userState', result?.details?.state ?? ''); + prefs.setString('userPostcode', result?.details?.postcode ?? ''); + // prefs.setString('tenantFcmToken', result?.details?.userfcmtoken ?? ''); + prefs.setInt('userPin', result?.details?.pin ?? 0); + prefs.setInt('partnerId', result?.details?.partnerid ?? 0); + prefs.setInt('tenantId', result?.details?.tenantid ?? 0); + prefs.setString('userName', result?.details?.fullname ?? ''); + prefs.setString('tenantName', result?.details?.tenantname ?? ''); + prefs.setString('tenantAddress', result?.details?.tenantaddress ?? ''); + prefs.setString('tenantCity', result?.details?.tenantcity ?? ''); + prefs.setString('tenantPostcode', result?.details?.tenantpostcode ?? ''); + prefs.setString('tenantLatitude', result?.details?.tenantlat ?? ''); + prefs.setString('tenantLongitude', result?.details?.tenantlong ?? ''); + prefs.setInt('locationId', result?.details?.locationid ?? 0); + prefs.setString('locationName', result?.details?.locationname ?? ''); + prefs.setString('appLocation', result?.details?.applocation ?? ''); + prefs.setString('appLatitude', result?.details?.applatitude ?? ''); + prefs.setString('appLongitude', result?.details?.applongitude ?? ''); + prefs.setInt('appRadius', result?.details?.appradius ?? 0); + prefs.setInt('appLocationId', result?.details?.applocationid ?? 0); + prefs.setInt('moduleId', result?.details?.moduleid ?? 0); + logger.i('App location Id from login : ${prefs.getInt('appLocationId')}'); + logger.i('location Id from login : ${prefs.getInt('locationId')}'); + update(); + } + + if(authmode !=1) { + sendSmsOtp('${loginPhoneNumberController.text.trim()}', + authmode: result?.details?.authmode ?? 0); + } + else{ + otpController.clear(); + resendOtp = '123456'; + if(authmode==1){ + var snackBar = SnackBar( + backgroundColor: ColorConstants.primaryColor, + duration: const Duration(seconds: 5), + content: Text('Please enter your 6 digit verification code provided by Nearlexpress Business',style: TextStyle(color: ColorConstants.secondaryColor),) + ); + ScaffoldMessenger.of(context).showSnackBar(snackBar); + } + Get.to(()=>OTPVerification(otp: '$resendOtp' ,authmode: authmode,logInStatus:loginStatus ,)); + } + loginController.reset(); + } + + //Otp + + sendSmsOtp(String mobile, {authmode=0}) async { + int otpInput = await otpGenerator(); + smsOtp = otpInput.toString(); + if(authmode==1) + { + onNavigateToProfileNumberVerification(otp: "123456",authmode: authmode); + } + + else { + receiveSmsOtp(mobile,smsOtp.toString(), Get.context); + } + } + + Future receiveSmsOtp(String phoneNumber, String otp, context) async { + final appSignature = await SmsAutoFill().getAppSignature; + + final message = "<#> Dear customer, use OTP $otp to sign in to Nearle App.\n$appSignature"; + final encodedMessage = Uri.encodeComponent(message); + + final url = Uri.parse( + 'https://msg.lionsms.com/api/smsapi?' + 'key=e57f5c9679af26077be1a7eadabb1b2a' + '&route=7' + '&sender=NEARLE' + '&number=$phoneNumber' + '&sms=$encodedMessage' + '&templateid=1107174712357438611', + ); + + logger.i('urlsendOtp $url'); + logger.i('appSignaturereceiveSmsOtp $appSignature'); + + try { + final response = await http.get(url); + if (response.statusCode == 200) { + logger.i("SMS sent successfully"); + receiveOtp(response, otp); + } else { + logger.i("Failed to send SMS: ${response.body}"); + } + } catch (e) { + logger.i("Error sending SMS: $e"); + } + } + + receiveOtp(model,otp) async{ + onNavigateToProfileNumberVerification(otp: otp); + } + + onNavigateToProfileNumberVerification({String? otp,authmode=0}){ + otpController.clear(); + print('onNavigateToProfileNumberVerification $otp'); + resendOtp = otp; + Get.to(()=>OTPVerification(otp: resendOtp??'' ,authmode: authmode,logInStatus: loginStatus,)); + } + + + otpGenerator(){ + var rng = Random(); + var next = rng.nextDouble() * 1000000; + while (next < 100000) { + next *= 10; + } + print(next.toInt()); + print("random${next.toInt()}"); + return next.toInt(); + } + + + Future getHintPhoneNumber(context) async { + try { + final phoneNumber = await SmsAutoFill().hint; + if (phoneNumber != null) { + // Remove +91 from the phone number + String cleanedPhoneNumber = phoneNumber.startsWith('+91') + ? phoneNumber.substring(3) + : phoneNumber; + + loginPhoneNumberController.text = cleanedPhoneNumber; + contactLength = cleanedPhoneNumber; + // doSomething(context); + update(); + + logger.i("Phone number retrieved: ${loginPhoneNumberController.text}"); + } + } catch (e) { + logger.i("Failed to retrieve phone number hint: $e"); + } + } + +} \ No newline at end of file diff --git a/lib/Controller/Authentication/Createtenantusercontroller.dart b/lib/Controller/Authentication/Createtenantusercontroller.dart new file mode 100644 index 0000000..a41927f --- /dev/null +++ b/lib/Controller/Authentication/Createtenantusercontroller.dart @@ -0,0 +1,599 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; + +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:geolocator/geolocator.dart' as LocationAccuracy; +import 'package:flutter/cupertino.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:geolocator/geolocator.dart'; +import 'package:get/get.dart'; +import 'package:http/http.dart' as http; +import 'package:minio/io.dart'; +import 'package:minio/minio.dart'; +import 'package:path/path.dart' as path; +import 'package:image_picker/image_picker.dart'; +import 'package:intl/intl.dart'; +import 'dart:io'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../Data/Provider/Appcategory/Appcategoryprovider.dart'; +import '../../Data/Repository/Appcategory/Appcategoryrepository.dart'; +import '../../Data/Repository/Applocation/Applocationrepository.dart'; +import '../../Data/Repository/Authentication/Createtenantuser/Createtenantuserrepository.dart'; +import '../../Data/Repository/TenantPartner/Tenantpartnerrepository.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/location_service.dart'; +import '../../Helper/toast.dart'; +import '../../Model/Request/Authentication/Createuser/Createuserresponse.dart'; +import '../../Model/Response/Appcategory/app_category_response.dart'; +import '../../Model/Response/Applocations/Applocationresponse.dart'; +import '../../Model/Response/Authentication/Createtenantuser/Createtenantuserresponse.dart'; +import '../../Model/Response/Partners/Getpartnerinforequest.dart'; +import '../../View/Success/Successview.dart'; + +class CreateUserController extends GetxController { + String appLocationName = ''; + String appCategoryName = ''; + String partnerName = ''; + String? latitude; + String? longitude; + String? catName; + int? moduleIdByCategory = 0; + String? subCatName; + String? fcmEntryToken; + + String? todayDate; + String? validityDate; + String? url; // This will hold the uploaded image URL + + int selectedIndex = 0; + int? catId; + int? subCatId; + + String? deviceId; + + int appLocationId = 0; + int partnerSelectedIndex = -1; + int? partnerId; + + List locations = []; + List getPartners = []; + List appCategory = []; + + Position? resultPosition; + + List subCategories = []; + + Future getFcmToken() async { + try { + await FirebaseMessaging.instance.requestPermission(); + + fcmEntryToken = await FirebaseMessaging.instance.getToken(); + print('FCM Token: $fcmEntryToken'); + + FirebaseMessaging.instance.onTokenRefresh.listen((newToken) { + fcmEntryToken = newToken; + print('FCM Token Refreshed: $fcmEntryToken'); + }); + } catch (e) { + print('Error getting FCM token: $e'); + } + } + + Future getSubCategories() async { + final provider = SubCategoryProvider(); + final List fetched = await provider.fetchSubCategories(); + subCategories.assignAll(fetched); + update(); + } + + final String apiUrl = "https://fiesta.nearle.app/live/api/v1/mob/utils/getsubcategories"; + + Future fetchSubCategories() async { + try { + final response = await http.get(Uri.parse(apiUrl)); + if (response.statusCode == 200) { + final jsonData = json.decode(response.body); + return GetSubCategoriesResponse.fromJson(jsonData); + } else { + print("Failed to load subcategories: ${response.statusCode}"); + } + } catch (e) { + print("Error fetching subcategories: $e"); + } + return null; + } + + bool shimmer = true; + bool categoryShimmer = true; + bool isEnterAddress = false; + String selectedCategoryName = ''; + var currentLat; + var currentLong; + + TextEditingController firstnameController = TextEditingController(); + TextEditingController lastnameController = TextEditingController(); + TextEditingController companyNameController = TextEditingController(); + TextEditingController emailController = TextEditingController(); + TextEditingController gstinNumberController = TextEditingController(); + TextEditingController contactNoController = TextEditingController(); + TextEditingController addressController = TextEditingController(); + TextEditingController stateController = TextEditingController(); + TextEditingController cityController = TextEditingController(); + TextEditingController suburbController = TextEditingController(); + TextEditingController postcodeController = TextEditingController(); + + final searchText = ''.obs; + final predictions = >[].obs; + final selectedPlace = {}.obs; + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + AppLocationRepository appLocationRepository = AppLocationRepository(); + GetPartnersRepository getPartnersRepository = GetPartnersRepository(); + AppCategoryRepository appCategoryRepository = AppCategoryRepository(); + CreateTenantUserRepository createTenantUserRepository = CreateTenantUserRepository(); + + final GooglePlacesService placesService = GooglePlacesService(); + + getAppLocations() async { + GetAppLocations? result = await appLocationRepository.getAppLocations(); + if (result?.code == 200) { + locations = result?.details ?? []; + shimmer = false; + update(); + } else { + Toast.showToast("${result?.message}"); + } + } + + getCurrentLocation() async { + resultPosition = await Geolocator.getCurrentPosition( + desiredAccuracy: LocationAccuracy.LocationAccuracy.high); + currentLat = resultPosition?.latitude.toString(); + currentLong = resultPosition?.longitude.toString(); + print('currentLatinlocation $currentLat'); + print('currentLonglocation $currentLong'); + getAddressFromLatLongs(double.parse(currentLat), double.parse(currentLong)); + } + + getAppCategory() async { + categoryShimmer = true; + update(); + + try { + final provider = SubCategoryProvider(); + final List subCats = await provider.fetchSubCategories(); + + final Map uniqueCats = {}; + + for (var sub in subCats) { + if (sub.categoryid != null && sub.catgeoryname != null) { + uniqueCats[sub.categoryid!] = AppCategoryDetails( + categoryid: sub.categoryid, + categoryname: sub.catgeoryname, + moduleid: sub.moduleid, + ); + } + } + + appCategory = uniqueCats.values.toList(); + logger.i('Loaded ${appCategory.length} categories'); + + if (appCategory.isNotEmpty) { + catId = appCategory[0].categoryid; + catName = appCategory[0].categoryname; + moduleIdByCategory = appCategory[0].moduleid; + } + } catch (e) { + logger.e('Error loading categories: $e'); + Toast.showToast("Failed to load categories"); + } + + categoryShimmer = false; + update(); + } + + Future getAddressFromLatLongs(double latitudes, double longitudes) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + cityController.text = place.locality ?? ''; + stateController.text = place.administrativeArea ?? ''; + suburbController.text = '${place.subLocality ?? place.street}'; + postcodeController.text = place.postalCode ?? ''; + latitude = latitudes.toString(); + longitude = longitudes.toString(); + addressController.text = + '${place.street}, ${place.subLocality}, ${place.locality}, ${place.administrativeArea} ${place.subAdministrativeArea}, ${place.country}, ${place.postalCode}.'; + update(); + }).catchError((e) { + debugPrint(e); + }); + } + + getPartnersInfo(locationId) async { + GetPartnersInfo? result = await getPartnersRepository.getPartners(locationId); + getPartners = result?.details ?? []; + partnerId = getPartners.isNotEmpty ? getPartners[0].partnerid : null; + print('getPartnerslengthss${getPartners.length}'); + print('getpartnerId$partnerId'); + } + + onSearchTextChanged(String text) async { + searchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + predictions.assignAll(places); + update(); + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + predictions.clear(); + update(); + } + } + + getPlaceDetails(String placeId, locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + selectedPlace.value = details; + getAddressFromLatLng( + selectedPlace['geometry']['location']['lat'], + selectedPlace['geometry']['location']['lng'], + locationAddress, + ); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + getAddressFromLatLng(double latitudes, double longitudes, locationAddress) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + cityController.text = place.locality ?? ''; + stateController.text = place.administrativeArea ?? ''; + suburbController.text = (place.subLocality?.isNotEmpty == true) ? place.subLocality! : place.street!; + postcodeController.text = place.postalCode ?? ''; + addressController.text = locationAddress; + latitude = latitudes.toString(); + longitude = longitudes.toString(); + predictions.clear(); + update(); + }).catchError((e) { + debugPrint(e); + }); + } + + void doSomething() async { + Timer(const Duration(seconds: 1), () { + profileValidation(); + }); + } + + profileValidation() async { + if (firstnameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Firstname"); + return; + } + if (companyNameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Companyname"); + return; + } + if (emailController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Email"); + return; + } + if (addressController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Address"); + return; + } + if (suburbController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Suburb"); + return; + } + if (cityController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter City"); + return; + } + if (stateController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter State"); + return; + } + if (postcodeController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Postcode"); + return; + } + + // Handle image upload if selected + if (profileImage != null) { + btnController.start(); + final uploadedUrl = await uploadImageAndSave(File(profileImage!.path)); + if (uploadedUrl == null) { + btnController.reset(); + Toast.showToast("Image upload failed. Please try again."); + return; + } + url = uploadedUrl; + } else { + url = null; // Optional: send empty or placeholder + } + + // Now safe to create tenant + createTenantUser(); + } + + createTenantUser() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + DateTime now = DateTime.now(); + + todayDate = DateFormat("yyyy-MM-dd").format(now); + validityDate = DateTime(now.year + 1, now.month, now.day).toString(); + + deviceId = prefs.getString('deviceId'); + + final request = CreateTenantUser( + tenantimage: url, // Now correctly set + + configid: 1, + allocationid: 2, + roleid: 1, + tenantname: companyNameController.text, + tenanttype: "D", + registrationno: gstinNumberController.text, + devicetype: Platform.isAndroid ? "android" : "ios", + deviceid: deviceId ?? '', + tenanttoken: fcmEntryToken ?? '', + companyname: companyNameController.text, + firstname: firstnameController.text, + primaryemail: emailController.text, + primarycontact: contactNoController.text, + categoryid: catId, + subcategoryid: subCatId, + moduleid: 2, + address: addressController.text, + suburb: suburbController.text, + state: stateController.text, + city: cityController.text, + postcode: postcodeController.text, + latitude: latitude, + longitude: longitude, + applocationid: 1, + approved: 0, + + tenantlocations: Tenantlocations( + locationid: 0, + applocationid: appLocationId, + tenantid: 0, + moduleid: 2, + locationname: companyNameController.text, + email: emailController.text, + contactno: contactNoController.text, + address: addressController.text, + suburb: suburbController.text, + state: stateController.text, + city: cityController.text, + postcode: postcodeController.text, + latitude: latitude, + longitude: longitude, + partnerid: partnerId, + opentime: "09:00", + closetime: "21:00", + deliverytype: 0, + deliverymins: 60, + cancelsecs: 20, + ), + + tenantsubscriptions: Tenantsubscriptions( + subscriptionid: 0, + tenantid: 0, + transactiondate: todayDate, + moduleid: 2, + applocationid: appLocationId, + categoryid: catId, + subcategoryid: subCatId, + validitydate: validityDate?.split(' ')[0] ?? '', + subscriptionprice: 300.00, + quantity: 1, + taxamount: 0.00, + taxpercent: 18, + totalamount: 300.00, + paymentstatus: 1, + ), + ); + + createTenantUserResult(request); + } + + createTenantUserResult(CreateTenantUser data) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + CreateTenantUserResponse? result = await createTenantUserRepository.createTenantUser(data); + if (result?.status == true) { + await Future.wait([ + prefs.setInt('userId', result?.details?.userid ?? 0), + prefs.setInt('configId', result?.details?.configid ?? 0), + prefs.setString('userEmail', result?.details?.authname ?? ''), + prefs.setInt('authMode', result?.details?.authmode ?? 0), + prefs.setInt('roleId', result?.details?.roleid ?? 0), + prefs.setString('userFirstname', result?.details?.firstname ?? ''), + prefs.setString('userLastname', result?.details?.lastname ?? ''), + prefs.setString('userName', result?.details?.fullname ?? ''), + prefs.setString('password', result?.details?.password ?? ''), + prefs.setString('userEmail', result?.details?.email ?? ''), + prefs.setString('tenantContactNo', result?.details?.contactno ?? ''), + prefs.setString('userAddress', result?.details?.address ?? ''), + prefs.setString('userSuburb', result?.details?.suburb ?? ''), + prefs.setString('userCity', result?.details?.city ?? ''), + prefs.setString('userState', result?.details?.state ?? ''), + prefs.setString('userPostcode', result?.details?.postcode ?? ''), + prefs.setString('userFcmToken', result?.details?.userfcmtoken ?? ''), + prefs.setInt('userPin', result?.details?.pin ?? 0), + prefs.setInt('partnerId', result?.details?.partnerid ?? 0), + prefs.setInt('locationId', result?.details?.locationid ?? 0), + prefs.setInt('tenantId', result?.details?.tenantid ?? 0), + prefs.setString('tenantName', result?.details?.tenantname ?? ''), + prefs.setString('tenantAddress', result?.details?.address ?? ''), + prefs.setString('tenantSuburb', result?.details?.suburb ?? ''), + prefs.setString('tenantCity', result?.details?.city ?? ''), + prefs.setString('tenantState', result?.details?.state ?? ''), + prefs.setString('tenantPostcode', result?.details?.postcode ?? ''), + prefs.setInt('moduleId', result?.details?.moduleid ?? 0), + prefs.setString('locationName', result?.details?.locationname ?? ''), + prefs.setInt('categoryId', result?.details?.categoryid ?? 0), + prefs.setInt('subcategoryId', result?.details?.subcategoryid ?? 0), + prefs.setInt('appLocationId', result?.details?.applocationid ?? 0), + ]); + + logger.i('TenantId From Create Tenant Response: ${prefs.getInt('tenantId')}'); + + // Clear fields + firstnameController.clear(); + companyNameController.clear(); + emailController.clear(); + addressController.clear(); + suburbController.clear(); + cityController.clear(); + stateController.clear(); + postcodeController.clear(); + profileImage = null; + url = null; + + btnController.reset(); + update(); + await Future.delayed(Duration(milliseconds: 100)); + Get.to(() => AccountCreatedScreen()); + } else { + btnController.reset(); + Toast.showToast("${result?.message}"); + } + } + + Future getLocation() async { + LocationPermission permission = await Geolocator.checkPermission(); + if (permission == LocationPermission.denied) { + permission = await Geolocator.requestPermission(); + if (permission == LocationPermission.denied) { + return Future.error('Location permissions are denied'); + } + } + if (permission == LocationPermission.deniedForever) { + await Geolocator.openLocationSettings(); + return Future.error('Location permissions are permanently denied'); + } + Position position = await Geolocator.getCurrentPosition(); + await getAddressFromLatLongs(position.latitude, position.longitude); + logger.i(position); + return position; + } + + XFile? profileImage; + final _picker = ImagePicker(); + RxString uploadedFileUrl = ''.obs; + + // Only pick image — upload later + Future getProfileImage() async { + final XFile? selectedImage = await _picker.pickImage(source: ImageSource.gallery); + if (selectedImage != null) { + profileImage = selectedImage; + update(); + } else { + Toast.showToast('Image Not Selected'); + } + } + + // Upload image and return public URL + Future uploadImageAndSave(File selectedImage) async { + try { + var rng = Random(); + const String region = "sgp1"; + const String accessKey = "DO00NQER7N2FRYZAB2HR"; + const String secretKey = "nMDewX25IBEu1FM5dakK+v28/WbW3TzBAwq913+dxP0"; + const String bucketName = "nearle"; + const String folderName = "deals"; + + String fileName = 'profile-${rng.nextInt(1000)}-1234.jpg'; + String endpointUrl = "https://$bucketName.$region.digitaloceanspaces.com/$folderName/$fileName"; + + final minio = Minio( + endPoint: '$region.digitaloceanspaces.com', // ✅ FIXED HERE + accessKey: accessKey, + secretKey: secretKey, + region: region, + useSSL: true, + ); + + await minio.fPutObject( + bucketName, + '$folderName/$fileName', + selectedImage.path, + metadata: { + 'Content-Type': 'image/jpeg', + 'x-amz-acl': 'public-read', + }, + ); + + print("File uploaded successfully: $endpointUrl"); + return endpointUrl; + } catch (e) { + Get.snackbar("Error", "Image upload failed: $e"); + print("Upload error: $e"); + return null; + } + } + + @override + void onInit() { + getFcmToken(); + getLocation(); + getSubCategories(); + getAppCategory(); + super.onInit(); + } + + @override + void dispose() { + firstnameController.dispose(); + lastnameController.dispose(); + companyNameController.dispose(); + emailController.dispose(); + gstinNumberController.dispose(); + contactNoController.dispose(); + addressController.dispose(); + stateController.dispose(); + cityController.dispose(); + suburbController.dispose(); + postcodeController.dispose(); + super.dispose(); + } +} + +class SubCategoryService { + final String apiUrl = "https://fiesta.nearle.app/live/api/v1/mob/utils/getsubcategories"; + + Future fetchSubCategories() async { + try { + final response = await http.get(Uri.parse(apiUrl)); + if (response.statusCode == 200) { + final jsonData = json.decode(response.body); + print(response.body); + return GetSubCategoriesResponse.fromJson(jsonData); + } else { + print("Failed to load subcategories: ${response.statusCode}"); + } + } catch (e) { + print("Error fetching subcategories: $e"); + } + return null; + } +} \ No newline at end of file diff --git a/lib/Controller/Createorder/Createordercontroller.dart b/lib/Controller/Createorder/Createordercontroller.dart new file mode 100644 index 0000000..d285404 --- /dev/null +++ b/lib/Controller/Createorder/Createordercontroller.dart @@ -0,0 +1,1277 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; +import 'package:awesome_dialog/awesome_dialog.dart'; +import 'package:flutter_expanded_tile/flutter_expanded_tile.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:geolocator/geolocator.dart'; +import 'package:get/get.dart'hide Response; +import 'package:flutter/material.dart' hide Notification; +import 'package:get/get.dart'; +import 'package:gmaps_by_road_distance_calculator/gmaps_by_road_distance_calculator.dart'; +import 'package:intl/intl.dart'; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../Data/Repository/Admintoken/Getadmintokenrepository.dart'; +import '../../Data/Repository/CreateOrder/CreateOrderRepository.dart'; +import '../../Data/Repository/Notification/Notificationrepository.dart'; +import '../../Data/Repository/Tenantlocation/Getlocationrepository.dart'; +import '../../Data/Repository/Tenantmodulecategory/Categoryrepository.dart'; +import '../../Data/Repository/Tenantpricing/Tenantchargesrepository.dart'; +import '../../Data/Repository/Tenants/Tenantsrepository.dart'; +import '../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Locationservice/app_config_service.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/customDio.dart'; +import '../../Helper/location_service.dart'; +import '../../Helper/toast.dart'; +import '../../Model/Request/Createorder/Createorderrequest.dart'; +import '../../Model/Request/Notification/Notificationrequest.dart'; +import '../../Model/Response/Admintoken/Admintokenresponse.dart'; +import '../../Model/Response/Appcategory/Appcategoryresponse.dart'; +import '../../Model/Response/Createorder/CreateOrderResponsemodel.dart'; +import '../../Model/Response/Notification/Notificationresponse.dart'; +import '../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../Model/Response/Tenantlocation/Locationbyid/Locationidresponse.dart'; +import '../../Model/Response/Tenantpricing/Tenantpricingresponse.dart'; +import '../../Model/Response/Tenants/Tenantinforesponse.dart'; +import '../../View/Createorder/Createorderview.dart'; +import '../../View/Createorder/Ordersuccess/Ordersuccessview.dart'; +import '../../View/Home/Homeview.dart'; +import '../Dashboard/Pickup/Tabs/Pickupcustomertabscontroller.dart'; +import '../Tenantlocation/Tenantlocationcontroller.dart'; +import 'package:intl_phone_number_input/intl_phone_number_input.dart'; +import '../../../Data/Repository/Location/GetLocation/getlocationrepository.dart' as TenantLocation; + + +class CreateOrderController extends GetxController{ + + String? businessName; + + String tenantLocationName = ""; + // String? tLatitude; + // String? tLongitude; + // String? tAddress; + + String? tenantToken; + String? notificationDate; + + + String? subcategoryName = ""; + String? subCatName; + + + String? pickUpCustomerName; + String? pickUpCustomerContactNo; + String? pickUpLandMark; + String? pickUpDoorNo; + + String? pickUpCustomerContactNoCheck; + String? dropCustomerContactNoCheck; + + + FocusNode pickupFocusNode = FocusNode(); + + + String? dropCustomerName; + String? dropCustomerContactNo; + String? dropLandMark; + String? dropDoorNo; + + TenantLocationDetails? selectedValue; + + + + + List adminToken = []; + String? openTime; + String? closeTime; + + String? fromAddress; + String? toAddress; + + String? fromLatitude; + String? fromLongitude; + + String? toLatitude; + String? toLongitude; + + String? city; + + int? tenantId; + int? moduleId; + int? locationId; + int? roleId; + int? partnerId; + int? appLocationId; + int? configId; + int? userId; + int? appRadius; + + int? subCatId; + int? subcategoryId; + + int? paymentType; + + int? pickupCustomerId; + int? dropCustomerId; + + int? pickupLocationId; + int? dropLocationId; + + int? pickupTenantLocationId; + int? dropTenantLocationId; + + int catSelectedIndex = 0; + + int timeSelectIndex = -1; + + int paymentSelectedIndex = -1; + + int weightSelectedIndex = -1; + + int scheduleIndex = -1; + + bool pickupSaveAddress = false; + bool dropSaveAddress = false; + + bool pikUpSaveChecking =false; + bool dropSaveChecking =false; + + + List adminDetails = []; + + List tenantLocations = []; + + List timeSlots = []; + List timeSlotsnew = []; + + // List subCategoryLists = []; + + ByRoadDistanceCalculator byRoadDistanceCalculator = ByRoadDistanceCalculator(); + + + OrderResponseDetails deliveryDetails = OrderResponseDetails(); + + PhoneNumber number = PhoneNumber(isoCode: 'IN',); + + + final List weightRange = [ + {"weight":"1 - 10 Kg"}, + {"weight":"11 - 20 Kg"}, + {"weight":"21 - 30 Kg"}, + ]; + + final List schedule = [ + {"scheduleType": "Now"}, + {"scheduleType": "Scheduled"} + ]; + + final List paymentMethod = [ + // {"Paymentmethod":"Pay now","icon":Icon(Icons.mobile_friendly,size: 35,color: ColorConstants.secondaryColor,)}, + {"Paymentmethod":"Pay on delivery","icon":Icon(Icons.currency_rupee,size: 35,color: ColorConstants.secondaryColor,)}, + {"Paymentmethod":"Pay later","icon":Icon(Icons.wallet,size: 35,color: ColorConstants.secondaryColor,)}, + ]; + + TextEditingController tecNotes = TextEditingController(); + + TextEditingController pickupContactNameController = TextEditingController(); + TextEditingController pickupContactNoController = TextEditingController(); + TextEditingController pickupDoorNoController = TextEditingController(); + TextEditingController pickupLandMarkController = TextEditingController(); + TextEditingController pickupAddressController = TextEditingController(); + TextEditingController pickupStateController = TextEditingController(); + TextEditingController pickupCityController = TextEditingController(); + TextEditingController pickupSuburbController = TextEditingController(); + TextEditingController pickupPostcodeController = TextEditingController(); + + + TextEditingController dropContactNameController = TextEditingController(); + TextEditingController dropContactNoController = TextEditingController(); + TextEditingController dropLandMarkController = TextEditingController(); + TextEditingController dropDoorNoController = TextEditingController(); + TextEditingController dropAddressController = TextEditingController(); + TextEditingController dropStateController = TextEditingController(); + TextEditingController dropCityController = TextEditingController(); + TextEditingController dropSuburbController = TextEditingController(); + TextEditingController dropPostcodeController = TextEditingController(); + + + TenantDetails tenantInfo = TenantDetails(); + + + bool loader = true; + bool isNotes = false; + bool smsSelected = false; + + + + + double totalDeliveryAmount = 0.0; + + RxDouble distance = 0.0.obs; + + + CustomDio mCustomDio = CustomDio(); + + + late Timer timer; + + + var currentTime = DateTime.now().obs; + var amPm = ''.obs; + + DateTime selectedDate = DateTime.now(); + DateTime datetime = DateTime.now(); + TimeOfDay selectedTime = TimeOfDay.now(); + + DateTime? now; + + var orderId; + + var pickUpData; + var dropData; + + var weight; + var payment; + + + var distanceKm; + RxDouble distanceKms = 0.0.obs; + + var minKm; + var basePrice; + var pricePerKm; + + + var scheduleType; + + //Current Location + + Position? resultPosition; + + var currentLat; + var currentLong; + + var timers; + + //Autocomplete + + final pickupSearchText = ''.obs; + final dropSearchText = ''.obs; + final pickupPredictions = >[].obs; + final pickupSelectedPlace = {}.obs; + final dropPredictions = >[].obs; + final dropSelectedPlace = {}.obs; + final GooglePlacesService placesService = GooglePlacesService(); + + final TextEditingController textEditingController = TextEditingController(); + + + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + final RoundedLoadingButtonController createBtnController = RoundedLoadingButtonController(); + + + GetLocationsRepository getLocationsRepository= GetLocationsRepository(); + TenantLocation.GetLocationsRepository getTenantLocationsRepository= TenantLocation.GetLocationsRepository(); + TenantRepository tenantInfoRepository = TenantRepository(); + GetTenantCategoriesRepository getTenantCategoriesRepository= GetTenantCategoriesRepository(); + GetAdminTokenRepository getAdminTokenRepository = GetAdminTokenRepository(); + TenantPricingRepository tenantPricingRepository= TenantPricingRepository(); + CreateOrderRepository createOrderRepository = CreateOrderRepository(); + NotificationRepository notificationRepository = NotificationRepository(); + AppConfigurationService appConfigurationService = AppConfigurationService(); + + + ExpandedTileController pickupExpandedTileController = ExpandedTileController(); + ExpandedTileController dropExpandedTileController = ExpandedTileController(); + + + TenantLocationController tenantLocationController = Get.put(TenantLocationController()); + PickupCustomerTabController pickupCustomerTabController = Get.put(PickupCustomerTabController()); + + get subCategoryLists => null; + // PickupCustomerAddressController pickupCustomerAddressController = Get.put(PickupCustomerAddressController()); + + + getDetails()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + locationId = prefs.getInt('locationId'); + print('getDetailslocationId $locationId'); + } + + void startTimer() { + timer = Timer.periodic(Duration(seconds: 1), (_) { + currentTime.value = DateTime.now(); + updateAmPm(); + update(); + }); + } + + void updateAmPm() { + if (currentTime.value.hour >= 12) { + amPm.value = 'PM'; + } else { + amPm.value = 'AM'; + } + } + + void main() { + var min = 30; + var currentDate = selectedDate; + String fromdate = DateFormat('yyyy-MM-dd').format(currentDate); + print('fromdatesssssssss$fromdate'); + timeSlots.clear(); + var format = DateFormat("yyyy-MM-dd HH:mm:ss"); + var start = format.parse("$fromdate $openTime"); + var end = format.parse("$fromdate $closeTime"); + print('starttimesssssssssss$start'); + print('endtimesssssssssss$end'); + Duration step = Duration(minutes: int.parse(min.toString())); + + while(start.isBefore(end)) { + var timeIncrement = start.add(step); + timeSlots.add(DateFormat("yyyy-MM-dd HH:mm:ss").format(timeIncrement)); + start = timeIncrement; + } + + timeSlotsnew.clear(); + for(int i=0;i 2) { + try { + final places = await placesService.getPlacesPredictions(text); + pickupPredictions.assignAll(places); + update(); + + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + pickupPredictions.clear(); + update(); + + } + } + + + + onSearchDropTextChanged(String text) async { + dropSearchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + // final places = await autocompletePlaces(text); + dropPredictions.assignAll(places); + update(); + + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + dropPredictions.clear(); + update(); + + } + } + + getPickupPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + pickupSelectedPlace.value = details; + print('getPlaceDetailslatitude ${pickupSelectedPlace['geometry']['location']['lat']}'); + print('getPlaceDetailslongitude ${pickupSelectedPlace['geometry']['location']['lng']}'); + getPickupAddressFromLatLng(pickupSelectedPlace['geometry']['location']['lat'],pickupSelectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + getPickupAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + pickupCityController.text = '${place.locality}' ?? ''; + pickupStateController.text = '${place.administrativeArea}' ?? ''; + pickupSuburbController.text = '${place.subLocality!.isNotEmpty?place.subLocality:place.street}'; + pickupPostcodeController.text ='${place.postalCode}' ?? ''; + pickupAddressController.text = locationAddress ?? ''; + fromAddress = pickupAddressController.text; + fromLatitude = double.parse(latitudes.toString()).toString(); + fromLongitude = double.parse(longitudes.toString()).toString(); + pickupPredictions.clear(); + + if(fromLatitude!= null&&fromLongitude!= null&&toLatitude!= null&&toLongitude != null){ + + var distanceInMeters = calculateDistance( + double.parse(toLatitude.toString()), + double.parse(toLongitude.toString()), + double.parse(fromLatitude.toString()), + double.parse(fromLongitude.toString()), + ); + + distanceKm = distanceInMeters.round(); + + print('distanceKmInPickupAppRadius $distanceKm'); + + appRadius = prefs.getInt('appRadius')??0; + logger.i(appRadius); + if(appRadius != null &&distanceKm != null) { + try { + int appRadiusInt = int.parse(appRadius.toString()); + int distanceKmInt = int.parse(distanceKm); + + if(appRadiusInt <= distanceKmInt) { + AwesomeDialog( + context: Get.context!, + dialogType: DialogType.warning, + // animType: AnimType.BOTTOMSLIDE, + descTextStyle: const TextStyle(fontSize: 16,), + desc: 'Service not available at this location.', + dismissOnTouchOutside: false, + btnOkText: 'Ok', + // btnCancelOnPress: () { + // Get.to(OrderDetails(data: data)); + // }, + btnOkOnPress: () async{ + Get.to(()=>CreateOrderView(isDashboard: false,)); + }, + ).show(); + } + } catch (e) { + print("Error parsing integers: $e"); + } + } else { + print("One or both of the values are null."); + } + } + + update(); + + + print('latitude $fromLatitude'); + print('longitude $fromLongitude'); + + }).catchError((e) { + debugPrint(e); + }); + } + + + getDropPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + dropSelectedPlace.value = details; + print('getDropPlaceDetailslatitude ${dropSelectedPlace['geometry']['location']['lat']}'); + print('getDropPlaceDetailslongitude ${dropSelectedPlace['geometry']['location']['lng']}'); + getDropAddressFromLatLng(dropSelectedPlace['geometry']['location']['lat'],dropSelectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + getDropAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + dropCityController.text = '${place.locality}' ?? ''; + dropStateController.text = '${place.administrativeArea}' ?? ''; + dropSuburbController.text = '${place.subLocality!.isNotEmpty?place.subLocality:place.street}'; + dropPostcodeController.text ='${place.postalCode}' ?? ''; + dropAddressController.text = locationAddress ?? ''; + toAddress = dropAddressController.text; + toLatitude = double.parse(latitudes.toString()).toString(); + toLongitude = double.parse(longitudes.toString()).toString(); + dropPredictions.clear(); + if(fromLatitude!= null&&fromLongitude!= null&&toLatitude!= null&&toLongitude != null){ + + var distanceInMeters = calculateDistance( + double.parse(toLatitude.toString()), + double.parse(toLongitude.toString()), + double.parse(fromLatitude.toString()), + double.parse(fromLongitude.toString()), + ); + + distanceKm = distanceInMeters.round(); + + print('distanceKmInAppRadius $distanceKm'); + + + appRadius = prefs.getInt('appRadius')??0; + logger.i(appRadius); + if(appRadius != 0 &&distanceKm != null) { + try { + int appRadiusInt = int.parse(appRadius.toString()); + int distanceKmInt = int.parse(distanceKm.toString()); + + if(appRadiusInt <= distanceKmInt) { + AwesomeDialog( + context: Get.context!, + dialogType: DialogType.warning, + // animType: AnimType.BOTTOMSLIDE, + descTextStyle: const TextStyle(fontSize: 16,), + desc: 'Service not available at this location.', + dismissOnTouchOutside: false, + btnOkText: 'Ok', + // btnCancelOnPress: () { + // Get.to(OrderDetails(data: data)); + // }, + btnOkOnPress: () async{ + Get.to(()=>CreateOrderView(isDashboard: false,)); + }, + ).show(); + } + } catch (e) { + print("Error parsing integers: $e"); + } + } else { + print('appRadiusindrop $appRadius'); + print('distanceKmindrop $distanceKm'); + print("One or both of the values are null."); + } + + } + + + update(); + + + print('latitude $fromLatitude'); + print('longitude $fromLongitude'); + + }).catchError((e) { + debugPrint(e); + }); + } + + getCurrentLocation()async{ + resultPosition = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high); + currentLat = resultPosition?.latitude.toString(); + currentLong = resultPosition?.longitude.toString(); + print('currentLatinlocation $currentLat'); + print('currentLonglocation $currentLong'); + getAddressFromLatLongs(double.parse(currentLat),double.parse(currentLong)); + } + + Future getAddressFromLatLongs(double latitudes, double longitudes) async { + print('getCurrentLocationAddressssssss'); + + await placemarkFromCoordinates( + latitudes, longitudes) + .then((List placemarks) { + Placemark place = placemarks[0]; + pickupCityController.text = place.locality ?? ''; + pickupStateController.text = place.administrativeArea ?? ''; + pickupSuburbController.text = '${place.subLocality??place.street}' ; + pickupPostcodeController.text = place.postalCode ?? ''; + fromLatitude = double.parse(latitudes.toString()).toString(); + fromLongitude = double.parse(longitudes.toString()).toString(); + print('latitudegetAddressFromLatLng$fromLatitude'); + print('longitudegetAddressFromLatLng$fromLongitude'); + pickupAddressController.text = '${place.street}, ${place.subLocality},${place.locality},${place.administrativeArea} ${place.subAdministrativeArea},${place.country},${place.postalCode}.'; + update(); + + }).catchError((e) { + debugPrint(e); + }); + } + + + + getTenantInfo() async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + TenantInfo? result = await tenantInfoRepository.getTenantInfo(); + tenantInfo = result?.details??tenantInfo; + subcategoryName = result?.details?.subcategoryname; + subcategoryId = result?.details?.subcategoryid; + paymentType = result?.details?.paymenttype; + print('subcategoryNamegetTenantInfo $subcategoryName'); + print('paymentTypegetTenantInfo $paymentType'); + prefs.setInt('locationId', result?.details?.locationid ?? 0); + loader = false; + update(); + print('getTenantInfotenantInfo${tenantInfo.toString()}'); + print('getTenantInforesults${result?.toJson()}'); + + } + + getTenantLocation() async{ + GetLocationByTenantId? result = await getTenantLocationsRepository.getLocationById(); + if(result?.status == true){ + tenantLocations = result?.details??[]; + } + } + + // getTenantSubCategories() async{ + // AppCategory? result = await getTenantCategoriesRepository.getTenantCategory(); + // if(result?.status == true) { + // subCategoryLists = result?.details ?? []; + // update(); + // print('subCategoryListssssssss${result?.details}'); + // + // } + // } + + closeHandler() { + Future.delayed(const Duration(milliseconds: 100), () { + if (tecNotes.text.isEmpty) + isNotes = true; + else + isNotes = false; + Get.back(); + update(); + }); + } + + + + + distanceCalculation()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + double tenantLat = double.parse(fromLatitude.toString()); + double tenantLong = double.parse( fromLongitude.toString()); + print('tenantLatsssssss $tenantLat'); + print('tenantLongsssss $tenantLong'); + print('customerlatss $toLatitude'); + print('custometLongsss $toLongitude'); + // var distanceInMeters = calculateDistance( + // double.parse(toLatitude.toString()), + // double.parse(toLongitude.toString()), + // tenantLat, + // tenantLong + // ); + // distanceKm = distanceInMeters.round(); + final pickupLat = double.tryParse(fromLatitude.toString()); + final pickupLong = double.tryParse(fromLongitude.toString()); + final dropLat = double.tryParse(toLatitude.toString()); + final dropLong = double.tryParse(toLongitude.toString()); + if (pickupLat != null && pickupLong != null && dropLat != null && dropLong != null) { + calculateDistanceMatrix(pickupLat, pickupLong, dropLat, dropLong); + } else { + // Handle invalid input + print('Invalid input'); + } + + // (double.parse(distanceInMeters.toInt().toStringAsFixed(0)) / 1000).round(); + print('distanceKmssssssssssssss $distanceKms'); + update(); + } + + void calculateDistanceMatrix(double pickupLat, double pickupLong, double dropLat, double dropLong) async { + try { + final distanceValue = await placesService.getDistance(pickupLat, pickupLong, dropLat, dropLong); + var distanceMatrix = distanceValue.toStringAsFixed(1); + distanceKms.value = double.parse(distanceMatrix.toString()); + print('distancecalculateDistanceMatrix $distanceKms'); + + } catch (e) { + print(e); + } + } + + + double calculateDistance(double startLat, double startLon, double endLat, double endLon) { + const double earthRadius = 6371; // Radius of the Earth in kilometers + + // Convert degrees to radians + startLat = degreesToRadians(startLat); + startLon = degreesToRadians(startLon); + endLat = degreesToRadians(endLat); + endLon = degreesToRadians(endLon); + + // Haversine formula + final double dLat = endLat - startLat; + final double dLon = endLon - startLon; + final double a = pow(sin(dLat / 2), 2) + + cos(startLat) * cos(endLat) * pow(sin(dLon / 2), 2); + final double c = 2 * atan2(sqrt(a), sqrt(1 - a)); + + // Calculate the distance + final double distance = earthRadius * c; + print('distanceinHaversine$distance'); + + return distance; + } + + double degreesToRadians(double degrees) { + return degrees * (pi / 180); + } + + + getAdminToken()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + + GetAdminToken? result = await getAdminTokenRepository.getAdminToken(); + openTime = result?.details?.opentime; + closeTime = result?.details?.closetime; + + prefs.setString('appLatitude', result?.details?.latitude ?? ''); + prefs.setString('appLongitude', result?.details?.longitude ?? ''); + prefs.setString('appLocation', result?.details?.locationname ?? ''); + prefs.setInt('appRadius', result?.details?.radius ?? 0); + + if(result?.status == true) { + adminDetails = result?.details?.applocationadmins??[]; + adminToken.clear(); + for (var adminDetail in adminDetails) { + adminToken.add(adminDetail.userfcmtokem??''); + + } + + + } + + main(); + // List parts = adminToken.split(', '); + // List wrappedParts = adminToken.map((part) => '["$part"]').toList(); + // String results = wrappedParts.join(', '); + print('adminTokenssssssssssscreateorder $adminToken'); + + print('applocationadminssssssssssss ${adminToken.length}'); + print('openTimesssssssssss $openTime'); + print('closeTimessssssssss $closeTime'); + } + + + getTenantPricing()async{ + GetTenantPricing? result = await tenantPricingRepository.getTenantPricing(); + print('getthirdPartyChargesresult${result?.toJson()}'); + getTenantPricingResult(result!); + update(); + } + + getTenantPricingResult(GetTenantPricing data){ + if(data.code == 200){ + basePrice = data.details?.baseprice??0; + pricePerKm = data.details?.priceperkm??0; + minKm = data.details?.minkm??0; + // calculateCharges(); + update(); + print('tenantpricingpriceperkm$pricePerKm'); + print('tenantpricingbaseprice$basePrice'); + print('tenantpricingminKm $minKm'); + } + } + + calculateCharges()async{ + double tenantLat = double.parse(fromLatitude.toString()); + double tenantLong = double.parse( fromLongitude.toString()); + print('tenantLongsssssss $tenantLong'); + // var distanceInMeters = calculateDistance( + // double.parse(toLatitude.toString()), + // double.parse(toLongitude.toString()), + // tenantLat, + // tenantLong + // ); + + final pickupLat = double.tryParse(fromLatitude.toString()); + final pickupLong = double.tryParse(fromLongitude.toString()); + final dropLat = double.tryParse(toLatitude.toString()); + final dropLong = double.tryParse(toLongitude.toString()); + final distanceValue = await placesService.getDistance(pickupLat??0.0, pickupLong??0.0, dropLat??0.0, dropLong??0.0); + var distanceMatrix = distanceValue.toStringAsFixed(1); + distanceKms.value = double.parse(distanceMatrix.toString()); + + // (double.parse(distanceInMeters.toInt().toStringAsFixed(0)) / 1000).round(); + + // var dis = (double.parse(distanceInMeters.toInt().toStringAsFixed(0))); + // var distance = distanceInMeters.round(); + print('distancessssssssssssss ${distanceKms.value}'); + print('minKmssssssssssssss$minKm'); + + // thirdPartyCharges.forEach((element) { + // print('forEachthirdPartyCharges'); + // print(element.priceperkm);}); + if (distanceKms < minKm) { + // double distokm = double.parse(thirdPartyCharges[0].baseprice.toString()); + double distokm = double.parse(basePrice.toString()); + totalDeliveryAmount = double.parse(distokm.round().toString()); + update(); + print("asdfasdfasdfdsaf==0_________$totalDeliveryAmount"); + } else { + double totaldistance = distanceKms.value - double.parse(minKm.toString()); + double distokm = totaldistance * + // double.parse(thirdPartyCharges[0].priceperkm.toString())+ + // double.parse(thirdPartyCharges[0].baseprice.toString()); + double.parse(pricePerKm.toString())+ + double.parse(basePrice.toString()); + totalDeliveryAmount = double.parse(distokm.round().toString()); + update(); + print("oskdoksodksodksokdoskdoskdoskd $totalDeliveryAmount"); + } + } + + + describeValidation() async{ + print('scheduleTypedescribeValidation $scheduleType'); + print('describeValidationlocationId $locationId'); + + if(pickupAddressController.text.isEmpty){ + btnController.reset(); + Toast.showToast('Pickup address should not be empty'); + } + else if(pickupContactNameController.text.isEmpty){ + btnController.reset(); + Toast.showToast('Pickup customer name should not be empty'); + } + // else if(pickupContactNameController.text.length!=3){ + // btnController.reset(); + // Toast.showToast('Pickup customer name should be minimum 3 characters required'); + // } + else if(pickupContactNoController.text.isEmpty){ + btnController.reset(); + Toast.showToast('Pickup customer no should not be empty'); + } + else if(pickupContactNoController.text.length!=10){ + btnController.reset(); + Toast.showToast('Please enter correct pickup customer no'); + } + else if(dropAddressController.text.isEmpty){ + btnController.reset(); + Toast.showToast('Drop address should not be empty'); + } + else if(dropContactNameController.text.isEmpty){ + btnController.reset(); + Toast.showToast('Drop customer name should not be empty'); + } + // else if(dropContactNameController.text.length!=3){ + // btnController.reset(); + // Toast.showToast('Drop customer name should be minimum 3 characters required'); + // } + else if(dropContactNoController.text.isEmpty){ + btnController.reset(); + Toast.showToast('Drop customer no should not be empty'); + } + else if(dropContactNoController.text.length!=10){ + btnController.reset(); + Toast.showToast('Please enter correct drop customer no'); + } + + else if(scheduleType == null){ + btnController.reset(); + Toast.showToast('Pickup time should not be empty'); + } + else if(weight==null){ + btnController.reset(); + // print('eeeeeeeeeeeeee'); + Toast.showToast('Please add weight'); + } + else if(locationId == null){ + btnController.reset(); + Toast.showToast('Please select business location'); + } + // else if(subCatId==null){ + // Toast.showToast('Item should not be empty '); + // } + // else if(payment==null){ + // btnController.reset(); + // Toast.showToast('Please select payment method'); + // } + + + else { + print("OrderSuccessView else"); + btnController.reset(); + + if(fromLatitude!= null&&fromLongitude!= null&&toLatitude!= null&&toLongitude != null){ + + SharedPreferences prefs = await SharedPreferences.getInstance(); + + var distanceInMeters = calculateDistance( + double.parse(toLatitude.toString()), + double.parse(toLongitude.toString()), + double.parse(fromLatitude.toString()), + double.parse(fromLongitude.toString()), + ); + + distanceKm = distanceInMeters.round(); + + print('distanceKmInCreateOrder $distanceKm'); + + + appRadius = prefs.getInt('appRadius')??0; + logger.i(appRadius); + if(appRadius != 0 &&distanceKm != null) { + try { + int appRadiusInt = int.parse(appRadius.toString()); + int distanceKmInt = int.parse(distanceKm.toString()); + + if(appRadiusInt <= distanceKmInt) { + AwesomeDialog( + context: Get.context!, + dialogType: DialogType.warning, + // animType: AnimType.BOTTOMSLIDE, + descTextStyle: const TextStyle(fontSize: 16,), + desc: 'Service not available at this location', + dismissOnTouchOutside: false, + btnOkText: 'Ok', + // btnCancelOnPress: () { + // Get.to(OrderDetails(data: data)); + // }, + btnOkOnPress: () async{ + Get.to(()=>CreateOrderView(isDashboard: false,)); + }, + ).show(); + } + else{ + var orderdate = DateFormat("yyyy-MM-dd HH:mm:ss").format( + DateFormat("yyyy-MM-dd HH:mm:ss").parse(datetime.toString())); + + deliveryDetails = + OrderResponseDetails( + pickuplat: "$fromLatitude", + pickuplong: "$fromLongitude", + deliverylat: "$toLatitude", + deliverylong: "$toLongitude", + orderdate: "$orderdate", + deliverydate: "$orderdate", + pickupcustomer: "$pickUpCustomerName", + pickupsuburb: "${pickupSuburbController.text}", + deliverycustomer: "$dropCustomerName", + deliverysuburb: "${dropSuburbController.text}", + ); + btnController.success(); + Get.to(OrderSuccessView(orderResponseDetails: deliveryDetails,)); + btnController.reset(); + + + // createOrder(); + } + + } catch (e) { + print("Error parsing integers: $e"); + } + } else { + print('appRadiusindrop $appRadius'); + print('distanceKmindrop $distanceKm'); + print("One or both of the values are null."); + } + print("location distance"); + btnController.reset(); + } + + + + // createOrder(); + + } + } + + orderCreateDescribeValidation(){ + if(paymentType !=0) { + if (payment == null) { + createBtnController.reset(); + Toast.showToast('Please select payment method'); + } + else { + createOrder(); + } + } + else { + createOrder(); + } + } + + createOrder()async{ + // var orderdate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + // var deliverydate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + var orderdate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateFormat("yyyy-MM-dd HH:mm:ss").parse(datetime.toString())); + var deliverytime = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateFormat("yyyy-MM-dd HH:mm:ss").parse(datetime.toString())); + print('createOrderorderdate$orderdate'); + print('createOrderdeliverydate$deliverytime'); + print('createOrderdatetime$datetime'); + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + moduleId = prefs.getInt('moduleId'); + roleId = prefs.getInt('roleId'); + partnerId = prefs.getInt('partnerId'); + appLocationId = prefs.getInt('appLocationId'); + configId = prefs.getInt('configId'); + userId = prefs.getInt('userId'); + + print('moduleIdcreateOrder $moduleId'); + print('userIdcreateOrder $userId'); + print('distanceKmssssscreateOrder ${ distanceKm.toString()}'); + print('deviceTypetabIndex ${pickupCustomerTabController.tabIndex}'); + + create( + CreateOrder( + orders:Orders( + orderheaderid: 0, + tenantid: tenantId, + applocationid: appLocationId, + locationid: locationId??0, + // locationid: pickupTenantLocationId==0?dropTenantLocationId??0:pickupTenantLocationId??0, + moduleid: moduleId, + categoryid: 6, + subcategoryid: subcategoryId, + configid: configId, + orderid: "", + orderdate: "$orderdate", + deliverytime: "$deliverytime", + deliverytype:"${pickupTenantLocationId!=0 || dropTenantLocationId != 0 ?'B':'C'}", + orderstatus: "created", + pending: "", + processing: "", + ready: "", + delivered: "", + cancellled: "", + customerid: pikUpSaveChecking?0:pickupCustomerId??0, + pickupcustomer: "${pickupContactNameController.text}", + pickupcontactno: "${pickupContactNoController.text}", + pickuplandmark: "${pickupLandMarkController.text}", + pickuplocation: "${pickupSuburbController.text}", + pickupcity: "${pickupCityController.text}", + pickuplocationid: pickupLocationId??0, + pickupaddress: "${pickupAddressController.text}", + pickuplat: "$fromLatitude", + pickuplong: "$fromLongitude", + deliveryid: dropSaveChecking?0:dropCustomerId??0, + deliverycustomer: "${dropContactNameController.text}", + deliverycontactno: "${dropContactNoController.text}", + deliverylocationid: dropLocationId??0, + deliverylat: "$toLatitude", + deliverylong: "$toLongitude", + deliveryaddress: "${dropAddressController.text}", + deliverylandmark: "${dropLandMarkController.text}", + deliverylocation: "${dropSuburbController.text}", + deliverycity: "${dropCityController.text}", + orderamount: totalDeliveryAmount, + taxamount: 0.0, + ordercharges: 0.0, + ordervalue: totalDeliveryAmount, + itemcount: 1, + paymenttype: paymentSelectedIndex==0?43:64, + paymentstatus: paymentSelectedIndex==0?0:2, + deliverycharge: totalDeliveryAmount, + ordernotes: dropDoorNoController.text.isNotEmpty?"${dropDoorNoController.text} ${tecNotes.text}":tecNotes.text, + kms:distanceKms.toString(), + smsdelivery: smsSelected == true?1:0, + remarks: "", + tenantuserid: userId, + partneruserid: 0, + partnerid: partnerId + ), + pickup: Pickup( + customerid: pikUpSaveChecking?0:pickupCustomerId??0, + configid: configId, + locationid: pickupLocationId??0, + firstname: "${pickupContactNameController.text}", + applocationid: appLocationId, + profileimage: "", + dialcode: "+91", + contactno: "${pickupContactNoController.text}", + devicetype: "", + deviceid: "", + customertoken: "", + address: "${pickupAddressController.text}", + suburb: "${pickupSuburbController.text}", + city: "${pickupCityController.text}", + state: "${pickupStateController.text}", + postcode: "${pickupPostcodeController.text}", + landmark: "${pickupLandMarkController.text}", + doorno: "${pickupDoorNoController.text}", + latitude: "$fromLatitude", + longitude: "$fromLongitude", + tenantid: tenantId, + email: "", + primaryaddress: pickupCustomerId==0?1:0 + ), + drop: Drop( + customerid: dropSaveChecking?0:dropCustomerId??0, + configid: configId, + locationid: dropLocationId??0, + firstname: "${dropContactNameController.text}", + applocationid: appLocationId, + profileimage: "", + dialcode: "+91", + contactno: "${dropContactNoController.text}", + devicetype: "", + deviceid: "", + customertoken: "", + address: "${dropAddressController.text}", + suburb: "${dropSuburbController.text}", + city: "${dropCityController.text}", + state: "${dropStateController.text}", + postcode: "${dropPostcodeController.text}", + landmark: "${dropLandMarkController.text}", + doorno: "${dropDoorNoController.text}", + latitude: "$toLatitude", + longitude: "$toLongitude", + tenantid: tenantId, + email: "", + primaryaddress: dropCustomerId==0?1:0 + ), + ), + ); + } + + create(CreateOrder data) async { + CreateOrderResponse? result = await createOrderRepository.createOrder(data); + print('CreateOrderresultincontroller${result?.toJson()}'); + SharedPreferences prefs = await SharedPreferences.getInstance(); + // orderId = result.details?.orderid; + // prefs.setString('orderId',result?.details?.orderid??''); + // print('orderIdincreate${prefs.getString('orderId')}'); + // orderId = result?.details?.orderid; + print("paymentSelectedIndex$paymentSelectedIndex"); + + // if(paymentSelectedIndex ==0){ + // print("paynow............."); + // paymentSelectedIndex = -1; + // timeSelectIndex = -1; + // btnController.reset(); + // razorPayOrder(result!); + // + // }else{ + if(result?.status == true){ + print("cod.............."); + weightSelectedIndex = -1; + paymentSelectedIndex = -1; + timeSelectIndex = -1; + smsSelected = false; + pickupContactNameController.clear(); + pickupContactNoController.clear(); + pickupAddressController.clear(); + pickupSuburbController.clear(); + pickupLandMarkController.clear(); + pickupCityController.clear(); + pickupStateController.clear(); + pickupPostcodeController.clear(); + pickupDoorNoController.clear(); + pikUpSaveChecking = false; + + dropContactNameController.clear(); + dropContactNoController.clear(); + dropAddressController.clear(); + dropSuburbController.clear(); + dropLandMarkController.clear(); + dropCityController.clear(); + dropStateController.clear(); + dropPostcodeController.clear(); + dropDoorNoController.clear(); + tenantLocationName = ''; + locationId = null; + pickupCustomerId = null; + dropCustomerId = null; + dropSaveChecking = false; + + btnController.reset(); + Get.to(()=>HomeView(selectedIndex: 0)); + // Get.to(OrderSuccessView(orderResponseDetails: result!.details!,)); + } + else{ + Toast.showToast('${result?.message}'); + btnController.reset(); + } + + + // } + + createOrderNotification(result!); + + weight = null; + // datetime = ""; + // subCatName = null; + tecNotes.clear(); + payment =null; + // dashboardController.getCustomerByTenantId(); + update(); + } + + createOrderNotification(CreateOrderResponse datas) async { + print('createOrderNotificationordersssssss'); + print('adminTokencreateOrderNotification$adminToken'); + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantToken = prefs.getString('tenantToken'); + now = DateTime.now(); + + + createOrderNotificationResult( + NotificationRequest( + data: Data( + accessid: 'AAAAILMpCEU:APA91bEavuOllBI6sFgYtxXAgNmAVwNA-MnCMHLGlR4_t7UqpLajAkdn3T0CZr_zaLBknLyim9ytFLMZgbeXmKqTad_PKCbqlYjHpaizVrLXtecxqyEy4UktIacK2UvHVUATHL-7VQQk', + ), + priority: "high", + registrationIds:adminToken, + // sender: 'Nearlexpress Business', + notification: Notification( + title:"Nearlexpress Business", + body:"An order has been created. kindly process the delivery.", + sound:"ring" + ) + ), + ); + } + + createOrderNotificationResult(NotificationRequest data)async{ + NotificationResponse? result = await notificationRepository.createNotification(data); + if(result?.status == true){ + } + } + + + @override + void onInit() { + pickupExpandedTileController = ExpandedTileController(isExpanded:pickupPredictions.isNotEmpty?false:true); + dropExpandedTileController = ExpandedTileController(isExpanded:false); + + // TODO: implement onInit + super.onInit(); + } + @override + void dispose() { + textEditingController.dispose(); + super.dispose(); + } + +} \ No newline at end of file diff --git a/lib/Controller/Createorder/Drop/Googlemap/Googlemapcontroller.dart b/lib/Controller/Createorder/Drop/Googlemap/Googlemapcontroller.dart new file mode 100644 index 0000000..16cf17f --- /dev/null +++ b/lib/Controller/Createorder/Drop/Googlemap/Googlemapcontroller.dart @@ -0,0 +1,218 @@ +import 'dart:async'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../Helper/location_service.dart'; + + + +class DropGoogleMapsController extends GetxController{ + + + String? toAddress; + + + + String? toLatitude; + String? toLongitude; + + + String? country; + String? dialCode; + String? countryCode; + String? googleApiKey; + String? initialCountry; + + + bool? isSuburbTrue = false; + bool? isCity = false; + + List autoCompleteResult = []; + + + List latlng = []; + + var address; + + static LatLng? center; + static double? currentLatitude; + static double? currentLongitude; + + Setmarkers = {}; + Setpolyline={}; + + + //Autocomplete + + final pickupSearchText = ''.obs; + final dropSearchText = ''.obs; + final pickupPredictions = >[].obs; + final pickupSelectedPlace = {}.obs; + final dropPredictions = >[].obs; + final dropSelectedPlace = {}.obs; + final GooglePlacesService placesService = GooglePlacesService(); + + + CameraPosition? kGooglePlex; + + Completer controllers = Completer(); + + late GoogleMapController mapController; + + + // LocationService locationService = LocationService(); + TextEditingController searchController = TextEditingController(); + + + TextEditingController dropAddressController = TextEditingController(); + TextEditingController dropStateController = TextEditingController(); + TextEditingController dropCityController = TextEditingController(); + TextEditingController dropSuburbController = TextEditingController(); + TextEditingController dropPostcodeController = TextEditingController(); + + + Future goToThePosition(cameraPosition) async { + final GoogleMapController controller = await controllers.future; + controller.animateCamera(CameraUpdate.newCameraPosition(cameraPosition)); + } + + onSearchDropTextChanged(String text) async { + dropSearchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + // final places = await autocompletePlaces(text); + dropPredictions.assignAll(places); + update(); + + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + dropPredictions.clear(); + update(); + + } + } + + getDropPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + dropSelectedPlace.value = details; + print('getDropPlaceDetailslatitude ${dropSelectedPlace['geometry']['location']['lat']}'); + print('getDropPlaceDetailslongitude ${dropSelectedPlace['geometry']['location']['lng']}'); + getDropAddressFromLatLng(dropSelectedPlace['geometry']['location']['lat'],dropSelectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + getDropAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + dropCityController.text = '${place.locality}' ?? ''; + dropStateController.text = '${place.administrativeArea}' ?? ''; + dropSuburbController.text = '${place.subLocality!.isNotEmpty?place.subLocality:place.street}'; + dropPostcodeController.text ='${place.postalCode}' ?? ''; + dropAddressController.text = locationAddress ?? ''; + toAddress = dropAddressController.text; + toLatitude = double.parse(latitudes.toString()).toString(); + toLongitude = double.parse(longitudes.toString()).toString(); + + kGooglePlex = CameraPosition( + target: LatLng(double.parse(toLatitude.toString()), double.parse(toLongitude.toString())), + zoom: 14.4746, + ); + goToThePosition(kGooglePlex); + dropPredictions.clear(); + update(); + + + print('latitude $toLatitude'); + print('longitude $toLongitude'); + + }).catchError((e) { + debugPrint(e); + }); + } + + + + + + getCountry() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + dialCode = prefs.getString('dialCode') ?? ''; + print(dialCode); + googleApiKey = prefs.getString('googleApi'); + initialCountry = prefs.getString('location_Country'); + markers.add(Marker( + markerId: MarkerId('Mylocation'), + infoWindow: InfoWindow(title: 'My Location'), + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + center = latLong; + getAddressFromLatLong( + double.parse(latLong.latitude.toString()), double.parse(latLong.longitude.toString())); + print("addressonDragEnd$address"); + update(); + }, + onDrag: (latLong) { + center = latLong; + }, + icon: BitmapDescriptor.defaultMarker, + position: center!, + )); + getAddressFromLatLong( + double.parse(currentLatitude.toString()), double.parse(currentLongitude.toString())); + // number = PhoneNumber(isoCode: initialCountry); + update(); + print('$googleApiKey google'); + + // print(number); + } + + + Future getAddressFromLatLong(double latitudes, double longitudes) async { + print('getCurrentLocationAddressssssss'); + + await placemarkFromCoordinates( + latitudes, longitudes) + .then((List placemarks) { + Placemark place = placemarks[0]; + dropCityController.text = place.locality ?? ''; + dropStateController.text = place.administrativeArea ?? ''; + dropSuburbController.text = '${place.subLocality??place.street}' ; + dropPostcodeController.text = place.postalCode ?? ''; + toLatitude = double.parse(latitudes.toString()).toString(); + toLongitude = double.parse(longitudes.toString()).toString(); + print('latitudegetAddresstoLatitude$toLatitude'); + print('longitudegetAddresstoLongitude$toLongitude'); + dropAddressController.text = '${place.street}, ${place.subLocality},${place.locality},${place.administrativeArea} ${place.subAdministrativeArea},${place.country},${place.postalCode}.'; + + print('dropAddressControllergetAddresstoLongitude ${dropAddressController.text}'); + update(); + + }).catchError((e) { + debugPrint(e); + }); + } + + + + @override + void onInit() { + + // TODO: implement onInit + super.onInit(); + } + +} \ No newline at end of file diff --git a/lib/Controller/Createorder/Pickup/Googlemap/Googlemapcontroller.dart b/lib/Controller/Createorder/Pickup/Googlemap/Googlemapcontroller.dart new file mode 100644 index 0000000..f549ef7 --- /dev/null +++ b/lib/Controller/Createorder/Pickup/Googlemap/Googlemapcontroller.dart @@ -0,0 +1,215 @@ +import 'dart:async'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../Helper/location_service.dart'; + + + +class PickupGoogleMapsController extends GetxController{ + + + String? fromAddress; + + + + String? fromLatitude; + String? fromLongitude; + + + String? country; + String? dialCode; + String? countryCode; + String? googleApiKey; + String? initialCountry; + + + bool? isSuburbTrue = false; + bool? isCity = false; + + List autoCompleteResult = []; + + + List latlng = []; + + var address; + + static LatLng? center; + static double? currentLatitude; + static double? currentLongitude; + + Setmarkers = {}; + Setpolyline={}; + + + //Autocomplete + + final pickupSearchText = ''.obs; + final pickupPredictions = >[].obs; + final pickupSelectedPlace = {}.obs; + final GooglePlacesService placesService = GooglePlacesService(); + + + CameraPosition? kGooglePlex; + + Completer controllers = Completer(); + + late GoogleMapController mapController; + + + // LocationService locationService = LocationService(); + TextEditingController searchController = TextEditingController(); + + + TextEditingController pickupAddressController = TextEditingController(); + TextEditingController pickupStateController = TextEditingController(); + TextEditingController pickupCityController = TextEditingController(); + TextEditingController pickupSuburbController = TextEditingController(); + TextEditingController pickupPostcodeController = TextEditingController(); + + + Future goToThePosition(cameraPosition) async { + final GoogleMapController controller = await controllers.future; + controller.animateCamera(CameraUpdate.newCameraPosition(cameraPosition)); + } + + onSearchPickupTextChanged(String text) async { + pickupSearchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + // final places = await autocompletePlaces(text); + pickupPredictions.assignAll(places); + update(); + + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + pickupPredictions.clear(); + update(); + + } + } + + getPickupPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + pickupSelectedPlace.value = details; + print('getDropPlaceDetailslatitude ${pickupSelectedPlace['geometry']['location']['lat']}'); + print('getDropPlaceDetailslongitude ${pickupSelectedPlace['geometry']['location']['lng']}'); + getPickupAddressFromLatLng(pickupSelectedPlace['geometry']['location']['lat'],pickupSelectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + getPickupAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + pickupCityController.text = '${place.locality}' ?? ''; + pickupStateController.text = '${place.administrativeArea}' ?? ''; + pickupSuburbController.text = '${place.subLocality!.isNotEmpty?place.subLocality:place.street}'; + pickupPostcodeController.text ='${place.postalCode}' ?? ''; + pickupAddressController.text = locationAddress ?? ''; + fromAddress = pickupAddressController.text; + fromLatitude = double.parse(latitudes.toString()).toString(); + fromLongitude = double.parse(longitudes.toString()).toString(); + + kGooglePlex = CameraPosition( + target: LatLng(double.parse(fromLatitude.toString()), double.parse(fromLongitude.toString())), + zoom: 14.4746, + ); + goToThePosition(kGooglePlex); + pickupPredictions.clear(); + update(); + + + print('latitude $fromLatitude'); + print('longitude $fromLongitude'); + + }).catchError((e) { + debugPrint(e); + }); + } + + + + + + getCountry() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + dialCode = prefs.getString('dialCode') ?? ''; + print(dialCode); + googleApiKey = prefs.getString('googleApi'); + initialCountry = prefs.getString('location_Country'); + markers.add(Marker( + markerId: MarkerId('Mylocation'), + infoWindow: InfoWindow(title: 'My Location'), + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + center = latLong; + getAddressFromLatLong( + double.parse(latLong.latitude.toString()), double.parse(latLong.longitude.toString())); + print("addressonDragEnd$address"); + update(); + }, + onDrag: (latLong) { + center = latLong; + }, + icon: BitmapDescriptor.defaultMarker, + position: center!, + )); + getAddressFromLatLong( + double.parse(currentLatitude.toString()), double.parse(currentLongitude.toString())); + // number = PhoneNumber(isoCode: initialCountry); + update(); + print('$googleApiKey google'); + + // print(number); + } + + + Future getAddressFromLatLong(double latitudes, double longitudes) async { + print('getCurrentLocationAddressssssss'); + + await placemarkFromCoordinates( + latitudes, longitudes) + .then((List placemarks) { + Placemark place = placemarks[0]; + pickupCityController.text = place.locality ?? ''; + pickupStateController.text = place.administrativeArea ?? ''; + pickupSuburbController.text = '${place.subLocality??place.street}' ; + pickupPostcodeController.text = place.postalCode ?? ''; + fromLatitude = double.parse(latitudes.toString()).toString(); + fromLongitude = double.parse(longitudes.toString()).toString(); + print('latitudegetAddressfromLatitude $fromLatitude'); + print('longitudegetAddressfromLongitude $fromLongitude'); + pickupAddressController.text = '${place.street}, ${place.subLocality},${place.locality},${place.administrativeArea} ${place.subAdministrativeArea},${place.country},${place.postalCode}.'; + + print('dropAddressControllergetAddresstoLongitude ${pickupAddressController.text}'); + update(); + + }).catchError((e) { + debugPrint(e); + }); + } + + + + @override + void onInit() { + + // TODO: implement onInit + super.onInit(); + } + +} \ No newline at end of file diff --git a/lib/Controller/Customers/Customercontroller.dart b/lib/Controller/Customers/Customercontroller.dart new file mode 100644 index 0000000..acbfaec --- /dev/null +++ b/lib/Controller/Customers/Customercontroller.dart @@ -0,0 +1,43 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; + +import '../../Data/Repository/Customers/getCustomerbytenantidrepository.dart'; +import '../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; + +class CustomerController extends GetxController{ + + RxBool progress = true.obs; + + + List getCustomerBytenantId =[]; + + GetCustomersByTenantIdRepository getCustomersByNumberTenantIdRepository = GetCustomersByTenantIdRepository(); + + TextEditingController searchController = TextEditingController(); + + getCustomerByTenantId()async { + GetCustomerByTenantId? result = await getCustomersByNumberTenantIdRepository.getCustomerByTenantId(); + getCustomerByTenantIdResult(result!); + } + + RxBool hasLoadedCustomerOnce = false.obs; + + getCustomerByTenantIdResult(GetCustomerByTenantId data) { + if (!hasLoadedCustomerOnce.value) { + progress.value = true; + update(); + } + + getCustomerBytenantId = data.details ?? []; + progress.value = false; + hasLoadedCustomerOnce.value = true; + update(); + } + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Dashboardcontroller.dart b/lib/Controller/Dashboard/Dashboardcontroller.dart new file mode 100644 index 0000000..d3f4625 --- /dev/null +++ b/lib/Controller/Dashboard/Dashboardcontroller.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart' hide Notification; +import 'package:get/get.dart' hide Response; +import 'package:intl/intl.dart'; + +import 'package:shared_preferences/shared_preferences.dart'; +import '../../Data/Repository/Notification/Notificationrepository.dart'; +import '../../Data/Repository/Rider/get_rider_repo.dart'; +import '../../Data/Repository/Summary/ordersrepository.dart'; +import '../../Data/Repository/Tenants/Tenantsrepository.dart'; +import '../../Data/Repository/update_delivery/update_delivery.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/customDio.dart'; +import '../../Helper/toast.dart'; +import '../../Model/Request/Notification/Notification_request_rider.dart'; +import '../../Model/Request/Notification/Notificationrequest.dart'; +import '../../Model/Request/update_delivery/update_delivery.dart'; +import '../../Model/Response/Notification/Notificationresponse.dart'; +import '../../Model/Response/Riders/get_rider_model.dart'; +import '../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../Model/Response/Tenants/Tenantinforesponse.dart'; +import '../../Model/Response/update_delivery_response/update_delivery_response.dart'; +import '../../View/Home/Homeview.dart'; + +class DashboardController extends GetxController with SingleGetTickerProviderMixin{ + + String? userName; + String? businessName; + String? businessLocation; + String? adminToken; + String? currentTime; + String? notificationDate; + TenantDetails? tenantInfo; + int tenantId = 0; + int moduleId = 0; + int locationId = 0; + int tabIndex = 0; + int? approved; + + var orderId; + var orderHeaderId; + var userId; + + DateTime? now; + + late TabController tabController; + + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + TenantRepository tenantRepository = TenantRepository(); + + List riderDetails = []; + RidersRepository ridersRepository = RidersRepository(); + + + final List tabs = [ + Tab( + text: "Placed", + icon: Icon(Icons.access_time_filled_outlined,color: ColorConstants.primaryColor,size: 25,), + ), + Tab( + text: "OnGoing", + icon: Icon(Icons.rotate_right,color: ColorConstants.primaryColor,size: 25,), + ), + Tab( + text: "Cancelled", + icon: Icon(Icons.cancel,color: ColorConstants.primaryColor,size: 25,), + ), + Tab( + text: "Completed", + icon: Icon(Icons.check_circle,color: ColorConstants.primaryColor,size: 25,), + ), + + + ]; + + getDetails() async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + // userName = prefs.getString('userName')??''; + businessName = prefs.getString('tenantName')??''; + businessLocation = prefs.getString('locationName')??''; + logger.i('Business Name prefs: ${businessName}'); + logger.i('Business Locations prefs: ${businessLocation}'); + update(); + } + + getTenantInfo() async{ + TenantInfo? result = await tenantRepository.getTenantInfo(); + tenantInfo = result?.details; + SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('tenantName', tenantInfo?.tenantname ?? ''); + prefs.setString('locationName', tenantInfo?.applocation ?? ''); + prefs.setInt('tenantId', tenantInfo?.tenantid ?? 0); + prefs.setInt('categoryId', tenantInfo?.categoryid ?? 0); + prefs.setInt('locationId', result?.details?.locationid ?? 0); + logger.i('Business Locations : ${businessLocation}'); + approved = result?.details?.approved; + update(); + } + + + + getOrders()async{ + + } + + + getRiders(appLocationId)async{ + GetRiderPoolsModel? result = await ridersRepository.getRiders(appLocationId); + getRidersResult(result!); + } + + bool isSelectAll = false; + List riderFcmToken = []; + int? riderUserIdList; + int? partnerId; + int? shiftId; + String? riderStatus; + RxBool shimmer = true.obs; + String? assignTime; + bool isIdle = false; + + + getRidersResult(GetRiderPoolsModel data){ + if (data.code == 200) { + logger.i('RiderPool ${data.details}'); + if(data.details!.isNotEmpty) { + for (int i = 0; i < data.details!.length; i++) { + var index = riderDetails.indexWhere( + (element) => + element.userid == data.details![i].userid); + if (index == -1) { + riderDetails.add(data.details![i]); + } + } + } + logger.i('riderDetails $riderDetails'); + if (isSelectAll == true) { + riderFcmToken.clear(); + riderUserIdList = 0; + partnerId = 0; + shiftId =0; + riderStatus = ''; + + for (var riderDetail in riderDetails) { + riderFcmToken.add(riderDetail.userfcmtoken); + riderUserIdList = riderDetail.userid!; + partnerId = riderDetail.partnerid!; + shiftId = riderDetail.shiftid!; + riderStatus = riderDetail.status; + print('shiftId $shiftId'); + } + } else { + riderFcmToken.clear(); + riderUserIdList = 0; + partnerId = 0; + shiftId =0; + riderStatus = ''; + } + logger.i('riderFcmToken $riderFcmToken'); + logger.i('partnerIdinprint $partnerId'); + logger.i('shiftId $shiftId'); + logger.i('riderStatus $riderStatus'); + shimmer.value = false; + update(); + } + else { + shimmer.value = false; + update(); + Toast.showToast("${data.message}"); + } + } + + updateDelivery(DeliveriesDetails data)async{ + assignTime = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + + updateDeliveryResult( + UpdateDeliveryRequest( + deliveryid: data.deliveryid, + userid: riderUserIdList, + orderheaderid: data.orderheaderid, + assigntime:assignTime , + orderstatus: 'pending', + ), + ); + + } + + UpdateDeliveryRepository updateDeliveryRepository = UpdateDeliveryRepository(); + + updateDeliveryResult(UpdateDeliveryRequest data)async{ + UpdateDeliveryResponse? result = await updateDeliveryRepository.updateDelivery(data); + if(result?.status == true){ + Get.to(()=>HomeView(selectedIndex: 1)); + // sendRiderNotification(); + } + } + + + sendRiderNotification() async { + sendRiderNotificationResult( + RiderNotificationRequest( + notification: NotificationRider( + title: "NearleXpress", + image: "", + body: "Order have been placed for delivery", + sound: "ring", + ), + token: riderFcmToken.join(','), + ) + ); + } + + final NotificationRepository notificationRepository = NotificationRepository(); + + // + sendRiderNotificationResult(RiderNotificationRequest data)async{ + NotificationResponse? result = await notificationRepository.notifyRider(data); + if(result?.status == true){ + Toast.showToast('Notified Rider Successfully'); + } + } + + + + @override + void onInit() { + tabController = TabController(vsync: this, length: tabs.length); + // TODO: implement onInit + super.onInit(); + WidgetsBinding.instance.addPostFrameCallback((_) { + getDetails(); // Runs after first frame is rendered + }); + logger.i('controller Init state called : '); + //getTenantInfo(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Drop/Tabs/Dropcustomertabscontroller.dart b/lib/Controller/Dashboard/Drop/Tabs/Dropcustomertabscontroller.dart new file mode 100644 index 0000000..373b1bb --- /dev/null +++ b/lib/Controller/Dashboard/Drop/Tabs/Dropcustomertabscontroller.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../Helper/Constants/Colorconstants.dart'; + +class DropCustomerTabController extends GetxController with SingleGetTickerProviderMixin{ + + + late TabController tabController; + int tabIndex = 0; + + final List tabs = [ + Tab( + icon:Icon( + Icons.person, + color: ColorConstants.primaryColor, + size: 25, + ), + text: "From Customer", + ), + // // Tab(text: "Yesterday",), + Tab( + text: "From Business", + icon: Icon( + Icons.business, + color: ColorConstants.primaryColor, + size: 25, + ), + ), + + ]; + + @override + void onInit() { + tabController = TabController(vsync: this, length: tabs.length); + + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart b/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart new file mode 100644 index 0000000..5bcc5f7 --- /dev/null +++ b/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart @@ -0,0 +1,239 @@ +import 'package:country_currency_pickers/country.dart'; +import 'package:country_currency_pickers/utils/utils.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:geolocator/geolocator.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'dart:io'; +import '../../../../../../../Data/Repository/Createcustomer/Createcustomerrepository.dart'; +import '../../../../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../../../../Helper/Locationservice/Locationservice.dart'; +import '../../../../../../../Helper/location_service.dart'; +import '../../../../../../../Helper/toast.dart'; +import '../../../../../../../Model/Request/Createcustomer/Createcustomerrequest.dart'; +import '../../../../../../../Model/Response/Createcustomer/Createcustomerresponse.dart'; +import '../../../../../../../View/Createorder/Createorderview.dart'; +import '../../../../../../Createorder/Createordercontroller.dart'; +import '../../Tenantcustomercontroller.dart'; + + +class AddDropCustomerController extends GetxController{ + + String? latitude; + String? longitude; + + String? suburb; + String? city; + String? state; + String? postCode; + + int? tenantId; + int? appLocationId; + + + + bool progress = true; + + TextEditingController customerFirstNameController = TextEditingController(); + TextEditingController customerLastNameController = TextEditingController(); + TextEditingController customerPhoneController = TextEditingController(); + TextEditingController addressController = TextEditingController(); + TextEditingController doorNoController = TextEditingController(); + TextEditingController landMarkController = TextEditingController(); + + + Position? resultPosition; + + final searchText = ''.obs; + final predictions = >[].obs; + final selectedPlace = {}.obs; + + Country selectedDialogCountry = CountryPickerUtils.getCountryByIsoCode('IN'); + + final GooglePlacesService placesService = GooglePlacesService(); + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + CreateCustomerRepository createCustomerRepository = CreateCustomerRepository(); + + TenantDropCustomerController tenantDropCustomerController = Get.put(TenantDropCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + + + LocationService locationService = LocationService(); + + + + getLocation() async { + resultPosition = await locationService.getLocation(); + progress =false; + update(); + } + + + void onSearchTextChanged(String text) async { + searchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + predictions.assignAll(places); + update(); + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + predictions.clear(); + update(); + } + } + + Future getPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + selectedPlace.value = details; + print('getPlaceDetailslatitude ${selectedPlace['geometry']['location']['lat']}'); + print('getPlaceDetailslongitude ${selectedPlace['geometry']['location']['lng']}'); + getAddressFromLatLng(selectedPlace['geometry']['location']['lat'],selectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + Future getAddressFromLatLng(double latitudes, double longitudes,address) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + latitude = double.parse(latitudes.toString()).toString(); + longitude = double.parse(longitudes.toString()).toString(); + city = '${place.locality}'; + state = '${place.administrativeArea}'; + suburb = place.subLocality!.isNotEmpty?place.subLocality:place.street; + postCode = '${place.postalCode}'; + addressController.text = address; + predictions.clear(); + update(); + print('latitude $latitude'); + print('longitude $longitude'); + print('eng $suburb'); + print('city $city'); + print('state $state'); + print('postalCode $postCode'); + print('subAdministrativeArea ${place.subAdministrativeArea}'); + print('subThoroughfare ${place.subThoroughfare}'); + print('currentLocationAddress ${addressController.text}'); + print('streetss ${place.street}'); + + }).catchError((e) { + debugPrint(e); + }); + } + + describeValidation(){ + if(customerFirstNameController.text.isEmpty){ + btnController.reset(); + Toast.showToast("Please enter your first name"); + } + // else if(customerLastNameController.text.isEmpty){ + // Toast.showToast("Please enter your last name"); + // } + else if(customerPhoneController.text.isEmpty){ + btnController.reset(); + + Toast.showToast("Please enter your phone number"); + }else if(addressController.text.isEmpty){ + btnController.reset(); + + Toast.showToast("Please enter your address"); + } + else if(latitude == null &&longitude == null){ + btnController.reset(); + Toast.showToast("Please enter correct address"); + } + // else if(doorNoController.text.isEmpty){ + // Toast.showToast("Please enter your door number"); + // } + // else if(landMarkController.text.isEmpty){ + // Toast.showToast("Please enter your landmark"); + // } + else{ + btnController.success(); + createCustomer(); + update(); + } + } + + createCustomer() async{ + var createdate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + var updatedate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + appLocationId = prefs.getInt('appLocationId'); + + print('tenantIdcreateCustomer$tenantId'); + String contactNo = customerPhoneController.text; + print("contact............$contactNo"); + create( + CreateCustomers( + customerid:0, + configid:1, + tenantid: tenantId, + firstname:customerFirstNameController.text, + applocationid:appLocationId, + profileimage:"", + dialcode:"+91", + contactno:customerPhoneController.text, + devicetype:Platform.operatingSystem, + // deviceid:"${prefs.getString('deviceId')}", + // customertoken:"$fcmEntryToken", + address:addressController.text, + suburb:suburb, + city:city, + state:state, + postcode:postCode, + landmark:landMarkController.text, + doorno:doorNoController.text, + latitude:latitude, + longitude:longitude, + primaryaddress: 1, + )); + + } + + create(CreateCustomers data )async{ + CreateCustomerResponse? result = await createCustomerRepository.createCustomer(data); + + if(result?.status == true){ + customerFirstNameController.clear(); + customerLastNameController.clear(); + customerPhoneController.clear(); + addressController.clear(); + doorNoController.clear(); + landMarkController.clear(); + tenantDropCustomerController.getCustomerByTenantId(); + btnController.reset(); + createOrderController.dropCustomerId = result?.details?.customerid; + createOrderController.dropCustomerName = "${result?.details?.firstname}" + "${result?.details?.lastname}"; + createOrderController.dropCustomerContactNo = result?.details?.contactno; + createOrderController.dropLocationId = result?.details?.deliverylocationid; + createOrderController.dropTenantLocationId = result?.details?.tenantlocationid; + createOrderController.toLatitude = result?.details?.latitude; + createOrderController.toLongitude = result?.details?.longitude; + createOrderController.toAddress =result?.details?.address; + // Get.offAll(TenantDropCustomerView()); + Get.to(()=>CreateOrderView(isDashboard: false)); + }else{ + btnController.reset(); + Toast.showToast('${result?.message}'); + } + } + + @override + void onInit() { + getLocation(); + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart b/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart new file mode 100644 index 0000000..064b2e5 --- /dev/null +++ b/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart @@ -0,0 +1,199 @@ +import 'package:flutter/cupertino.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:get/get.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; + +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../../../../Data/Provider/Getcustomeraddress/Getcustomeraddressprovider.dart'; +import '../../../../../../Data/Repository/Createcustomer/Createcustomerrepository.dart'; +import '../../../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../../../Helper/location_service.dart'; +import '../../../../../../Helper/toast.dart'; +import '../../../../../../Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart'; +import '../../../../../../Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart'; +import '../../../../../../Model/Response/Getcustomeraddress/GetCustomerAddress.dart'; +import '../../../../../../View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart'; + + + +class DropCustomerAddressController extends GetxController{ + + String? latitude; + String? longitude; + String? address; + + String? customerName; + String? customerContactNo; + + int locationId = 0; + int roleId = 0; + int? customerId; + int? deliveryLocationId; + + int selectedAddressIndex = -1; + + List getCustomeraddress =[]; + + + bool loader = true; + bool deliveryAddressList = false; + + var customerAddressInfo; + + + TextEditingController searchController = TextEditingController(); + TextEditingController addressController = TextEditingController(); + TextEditingController suburbController = TextEditingController(); + TextEditingController cityController = TextEditingController(); + TextEditingController stateController = TextEditingController(); + TextEditingController postCodeController = TextEditingController(); + TextEditingController landmarkController = TextEditingController(); + TextEditingController doornoController = TextEditingController(); + + final searchText = ''.obs; + final predictions = >[].obs; + final selectedPlace = {}.obs; + + final GooglePlacesService placesService = GooglePlacesService(); + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + final RoundedLoadingButtonController submitBtnController = RoundedLoadingButtonController(); + + CreateCustomerRepository createCustomerRepository = CreateCustomerRepository(); + + GetCustomersAddressProvider getCustomersAddressProvider = GetCustomersAddressProvider(); + + getDetails()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + roleId = prefs.getInt('roleId')??0; + print('roleIdingetDetails $roleId'); + update(); + } + + getCustomerAddress()async{ + GetCustomerAddress? result = await getCustomersAddressProvider.getCustomerAddress('${ApiConstants.getCustomerAddress}?customerid=$customerId'); + getCustomeraddress = result?.details??[]; + loader = false; + for (var i = 0; i < getCustomeraddress.length; i++) { + if (getCustomeraddress[i].defaultaddress == '1') { + deliveryLocationId = getCustomeraddress[i].locationid; + print('getCustomerAddressforloop $deliveryLocationId'); + update(); + } + } + update(); + + print('getCustomerAddressincontroller${result?.toJson()}'); + + } + + describeValidation(){ + if(addressController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("Delivery address should not be empty"); + } + else if(suburbController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("Suburb should not be empty!"); + } + else if(stateController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("State should not be empty!"); + }else if(postCodeController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("Pin code should not be empty!"); + } + + else{ + submitBtnController.success(); + createDeliveryAddress(); + } + } + + createDeliveryAddress()async { + create( + CreateDeliveryAddress( + customerid:customerAddressInfo.customerid, + address: addressController.text, + suburb: suburbController.text, + city: cityController.text, + state: stateController.text, + postcode: postCodeController.text, + // countycode:"91", + latitude: '$latitude', + longitude: '$longitude', + primaryaddress: 0, + )); + } + + create(CreateDeliveryAddress data )async{ + CreateDeliveryAddressResponse? result = await createCustomerRepository.createDeliveryAddress(data); + if(result?.status == true){ + deliveryAddressList = false; + getCustomerAddress(); + submitBtnController.reset(); + Get.to(CustomerDropAddressView(data: customerAddressInfo,)); + update(); + } + print('CreateDeliveryAddress create ${result!.toJson()}'); + } + + void onSearchTextChanged(String text) async { + searchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + predictions.assignAll(places); + update(); + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + predictions.clear(); + update(); + } + } + + Future getPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + selectedPlace.value = details; + print('getPlaceDetailslatitude ${selectedPlace['geometry']['location']['lat']}'); + print('getPlaceDetailslongitude ${selectedPlace['geometry']['location']['lng']}'); + getAddressFromLatLng(selectedPlace['geometry']['location']['lat'],selectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + Future getAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + latitude = double.parse(latitudes.toString()).toString(); + longitude = double.parse(longitudes.toString()).toString(); + cityController.text = '${place.locality}'; + stateController.text = '${place.administrativeArea}'; + suburbController.text = (place.subLocality!.isNotEmpty?place.subLocality:place.street)!; + postCodeController.text = '${place.postalCode}'; + addressController.text = locationAddress; + predictions.clear(); + update(); + print('latitude $latitude'); + print('longitude $longitude'); + print('subAdministrativeArea ${place.subAdministrativeArea}'); + print('subThoroughfare ${place.subThoroughfare}'); + print('currentLocationAddress ${ addressController.text}'); + print('streetss ${place.street}'); + + }).catchError((e) { + debugPrint(e); + }); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart b/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart new file mode 100644 index 0000000..6bc4961 --- /dev/null +++ b/lib/Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart @@ -0,0 +1,99 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; + +import '../../../../../Data/Repository/Customers/getCustomerbytenantidrepository.dart'; +import '../../../../../Helper/toast.dart'; +import '../../../../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; + + + + +class TenantDropCustomerController extends GetxController{ + + final int limit = 10; + int page = 1; + var hasMore = true.obs; + + bool progress = true; + + RxBool shimmer = true.obs; + + var getCustomerBytenantId = [].obs; + + TextEditingController searchController = TextEditingController(); + + + GetCustomersByTenantIdRepository getCustomersByTenantIdRepository = GetCustomersByTenantIdRepository(); + + getCustomerByTenantId()async{ + GetDropCustomerByTenantId? result = await getCustomersByTenantIdRepository.getDropCustomerByTenantId(); + getCustomerByTenantIdResult(result!); + } + + getDropTenantByTenantId()async{ + GetDropCustomerByTenantId? result = await getCustomersByTenantIdRepository.getDropTenantByTenantId(); + getCustomerByTenantIdResult(result!); + } + + + getCustomerByTenantIdResult(GetDropCustomerByTenantId data){ + getCustomerBytenantId.value = data.details??[]; + progress =false; + update(); + } + + Future getSearchCustomerData(keyword) async { + GetDropCustomerByTenantId? result = await getCustomersByTenantIdRepository.getDropCustomerKeywordByTenantId(keyword); + + if (result?.code == 200) { + getCustomerBytenantId.clear(); + getCustomerBytenantId.addAll(result?.details??[]); + shimmer.value = false; + update(); + print('getSearchCustomerDatalength ${getCustomerBytenantId.length}'); + if(getCustomerBytenantId.isEmpty){ + Toast.showToast('No customer at this moment'); + } + + } else { + // Toast.showToast(result?.message??""); + } + } + + Future refreshData() async { + searchController.clear(); + page = 1; + hasMore.value = true; + getCustomerBytenantId.value = []; + + + if(searchController.text.isEmpty){ + print("ifffffffffffffffffffffffffffffffffff"); + await getCustomerData(); + } + } + + Future getCustomerData() async { + GetDropCustomerByTenantId? result = await getCustomersByTenantIdRepository.getDropCustomerByPageLimitTenantId(page,limit); + + if (result?.code == 200) { + if (result!.details!.length < limit) { + hasMore.value = false; + } + // getCustomerBytenantId.clear(); + getCustomerBytenantId.addAll(result.details??[]); + shimmer.value = false; + page++; + update(); + } else { + // Toast.showToast(result?.message??""); + } + } + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Pickup/Tabs/Pickupcustomertabscontroller.dart b/lib/Controller/Dashboard/Pickup/Tabs/Pickupcustomertabscontroller.dart new file mode 100644 index 0000000..7746237 --- /dev/null +++ b/lib/Controller/Dashboard/Pickup/Tabs/Pickupcustomertabscontroller.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; + +class PickupCustomerTabController extends GetxController with SingleGetTickerProviderMixin{ + + + late TabController tabController; + int tabIndex = 0; + + final List tabs = [ + Tab( + icon:Icon( + Icons.person, + color: ColorConstants.primaryColor, + size: 25, + ), + text: "From Customer", + ), + // // Tab(text: "Yesterday",), + Tab( + text: "From Business", + icon: Icon( + Icons.business, + color: ColorConstants.primaryColor, + size: 25, + ), + ), + + ]; + + @override + void onInit() { + tabController = TabController(vsync: this, length: tabs.length); + + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart b/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart new file mode 100644 index 0000000..2a79411 --- /dev/null +++ b/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart @@ -0,0 +1,236 @@ +import 'package:country_currency_pickers/country.dart'; +import 'package:country_currency_pickers/utils/utils.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:geolocator/geolocator.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'dart:io'; +import '../../../../../../../Data/Repository/Createcustomer/Createcustomerrepository.dart'; +import '../../../../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../../../../Helper/Locationservice/Locationservice.dart'; +import '../../../../../../../Helper/location_service.dart'; +import '../../../../../../../Helper/toast.dart'; +import '../../../../../../../Model/Request/Createcustomer/Createcustomerrequest.dart'; +import '../../../../../../../Model/Response/Createcustomer/Createcustomerresponse.dart'; +import '../../../../../../../View/Createorder/Createorderview.dart'; +import '../../../../../../Createorder/Createordercontroller.dart'; +import '../../Tenantcustomercontroller.dart'; + +class AddPickupCustomerController extends GetxController{ + + String? latitude; + String? longitude; + + String? suburb; + String? city; + String? state; + String? postCode; + + int? tenantId; + int? appLocationId; + + + + bool progress = true; + + TextEditingController customerFirstNameController = TextEditingController(); + TextEditingController customerLastNameController = TextEditingController(); + TextEditingController customerPhoneController = TextEditingController(); + TextEditingController addressController = TextEditingController(); + TextEditingController doorNoController = TextEditingController(); + TextEditingController landMarkController = TextEditingController(); + + + Position? resultPosition; + + final searchText = ''.obs; + final predictions = >[].obs; + final selectedPlace = {}.obs; + + Country selectedDialogCountry = CountryPickerUtils.getCountryByIsoCode('IN'); + + final GooglePlacesService placesService = GooglePlacesService(); + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + CreateCustomerRepository createCustomerRepository = CreateCustomerRepository(); + + TenantPickupCustomerController tenantPickupCustomerController = Get.put(TenantPickupCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + + + LocationService locationService = LocationService(); + + + + getLocation() async { + resultPosition = await locationService.getLocation(); + progress =false; + update(); + } + + + void onSearchTextChanged(String text) async { + searchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + predictions.assignAll(places); + update(); + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + predictions.clear(); + update(); + } + } + + Future getPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + selectedPlace.value = details; + print('getPlaceDetailslatitude ${selectedPlace['geometry']['location']['lat']}'); + print('getPlaceDetailslongitude ${selectedPlace['geometry']['location']['lng']}'); + getAddressFromLatLng(selectedPlace['geometry']['location']['lat'],selectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + Future getAddressFromLatLng(double latitudes, double longitudes,address) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + latitude = double.parse(latitudes.toString()).toString(); + longitude = double.parse(longitudes.toString()).toString(); + city = '${place.locality}'; + state = '${place.administrativeArea}'; + suburb = place.subLocality!.isNotEmpty?place.subLocality:place.street; + postCode = '${place.postalCode}'; + addressController.text = address; + predictions.clear(); + update(); + print('latitude $latitude'); + print('longitude $longitude'); + print('eng $suburb'); + print('city $city'); + print('state $state'); + print('postalCode $postCode'); + print('subAdministrativeArea ${place.subAdministrativeArea}'); + print('subThoroughfare ${place.subThoroughfare}'); + print('currentLocationAddress ${addressController.text}'); + print('streetss ${place.street}'); + + }).catchError((e) { + debugPrint(e); + }); + } + + describeValidation(){ + if(customerFirstNameController.text.isEmpty){ + btnController.reset(); + Toast.showToast("Please enter your first name"); + } + // else if(customerLastNameController.text.isEmpty){ + // Toast.showToast("Please enter your last name"); + // } + else if(customerPhoneController.text.isEmpty){ + btnController.reset(); + + Toast.showToast("Please enter your phone number"); + }else if(addressController.text.isEmpty){ + btnController.reset(); + Toast.showToast("Please enter your address"); + } + else if(latitude == null &&longitude == null){ + btnController.reset(); + Toast.showToast("Please enter correct address"); + } + // else if(doorNoController.text.isEmpty){ + // Toast.showToast("Please enter your door number"); + // } + // else if(landMarkController.text.isEmpty){ + // Toast.showToast("Please enter your landmark"); + // } + else{ + btnController.success(); + createCustomer(); + update(); + } + } + + createCustomer() async{ + var createdate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + var updatedate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + appLocationId = prefs.getInt('appLocationId'); + print('tenantIdcreateCustomer$tenantId'); + String contactNo = customerPhoneController.text; + print("contact............$contactNo"); + create( + CreateCustomers( + customerid:0, + configid:1, + tenantid: tenantId, + firstname:customerFirstNameController.text, + applocationid:appLocationId, + profileimage:"", + dialcode:"+91", + contactno:customerPhoneController.text, + devicetype:Platform.operatingSystem, + // deviceid:"${prefs.getString('deviceId')}", + // customertoken:"$fcmEntryToken", + address:addressController.text, + suburb:suburb, + city:city, + state:state, + postcode:postCode, + landmark:landMarkController.text, + doorno:doorNoController.text, + latitude:latitude, + longitude:longitude, + primaryaddress: 1, + )); + + } + + create(CreateCustomers data )async{ + CreateCustomerResponse? result = await createCustomerRepository.createCustomer(data); + + if(result?.status == true){ + customerFirstNameController.clear(); + customerLastNameController.clear(); + customerPhoneController.clear(); + addressController.clear(); + doorNoController.clear(); + landMarkController.clear(); + tenantPickupCustomerController.getCustomerByTenantId(); + btnController.reset(); + createOrderController.pickupCustomerId = result?.details?.customerid; + createOrderController.pickUpCustomerName = "${result?.details?.firstname}" + "${result?.details?.lastname}"; + createOrderController.pickUpCustomerContactNo = result?.details?.contactno; + createOrderController.pickupLocationId = result?.details?.deliverylocationid; + createOrderController.pickupTenantLocationId = result?.details?.tenantlocationid; + createOrderController.fromLatitude = result?.details?.latitude; + createOrderController.fromLongitude = result?.details?.longitude; + createOrderController.fromAddress =result?.details?.address; + // Get.offAll(TenantPickUpCustomerView(navigate: true,)); + Get.to(()=>CreateOrderView(isDashboard: false)); + }else{ + btnController.reset(); + Toast.showToast('${result?.message}'); + } + } + + @override + void onInit() { + getLocation(); + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart b/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart new file mode 100644 index 0000000..9150a55 --- /dev/null +++ b/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart @@ -0,0 +1,196 @@ +import 'package:flutter/cupertino.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:get/get.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../../../../Data/Provider/Getcustomeraddress/Getcustomeraddressprovider.dart'; +import '../../../../../../Data/Repository/Createcustomer/Createcustomerrepository.dart'; +import '../../../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../../../Helper/location_service.dart'; +import '../../../../../../Helper/toast.dart'; +import '../../../../../../Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart'; +import '../../../../../../Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart'; +import '../../../../../../Model/Response/Getcustomeraddress/GetCustomerAddress.dart'; +import '../../../../../../View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart'; + +class PickupCustomerAddressController extends GetxController{ + + String? latitude; + String? longitude; + String? address; + + String? customerName; + String? customerContactNo; + + int locationId = 0; + int roleId = 0; + int? customerId; + int? deliveryLocationId; + + int selectedAddressIndex = -1; + + List getCustomeraddress =[]; + + + bool loader = true; + bool deliveryAddressList = false; + + var customerAddressInfo; + + + TextEditingController searchController = TextEditingController(); + TextEditingController addressController = TextEditingController(); + TextEditingController suburbController = TextEditingController(); + TextEditingController cityController = TextEditingController(); + TextEditingController stateController = TextEditingController(); + TextEditingController postCodeController = TextEditingController(); + TextEditingController landmarkController = TextEditingController(); + TextEditingController doornoController = TextEditingController(); + + final searchText = ''.obs; + final predictions = >[].obs; + final selectedPlace = {}.obs; + + final GooglePlacesService placesService = GooglePlacesService(); + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + final RoundedLoadingButtonController submitBtnController = RoundedLoadingButtonController(); + + CreateCustomerRepository createCustomerRepository = CreateCustomerRepository(); + + GetCustomersAddressProvider getCustomersAddressProvider = GetCustomersAddressProvider(); + + getDetails()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + roleId = prefs.getInt('roleId')??0; + print('roleIdingetDetails $roleId'); + update(); + } + + getCustomerAddress()async{ + GetCustomerAddress? result = await getCustomersAddressProvider.getCustomerAddress('${ApiConstants.getCustomerAddress}?customerid=$customerId'); + getCustomeraddress = result?.details??[]; + loader = false; + for (var i = 0; i < getCustomeraddress.length; i++) { + if (getCustomeraddress[i].defaultaddress == '1') { + deliveryLocationId = getCustomeraddress[i].locationid; + print('getCustomerAddressforloop $deliveryLocationId'); + update(); + } + } + update(); + + print('getCustomerAddressincontroller${result?.toJson()}'); + + } + + describeValidation(){ + if(addressController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("Delivery address should not be empty"); + } + else if(suburbController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("Suburb should not be empty!"); + } + else if(stateController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("State should not be empty!"); + }else if(postCodeController.text.isEmpty){ + submitBtnController.reset(); + Toast.showToast("Pin code should not be empty!"); + } + + else{ + submitBtnController.success(); + createDeliveryAddress(); + } + } + + createDeliveryAddress()async { + create( + CreateDeliveryAddress( + customerid:customerAddressInfo.customerid, + address: addressController.text, + suburb: suburbController.text, + city: cityController.text, + state: stateController.text, + postcode: postCodeController.text, + // countycode:"91", + latitude: '$latitude', + longitude: '$longitude', + primaryaddress: 0, + )); + } + + create(CreateDeliveryAddress data )async{ + CreateDeliveryAddressResponse? result = await createCustomerRepository.createDeliveryAddress(data); + if(result?.status == true){ + deliveryAddressList = false; + getCustomerAddress(); + submitBtnController.reset(); + Get.to(CustomerPickupAddressView(data: customerAddressInfo,)); + update(); + } + print('CreateDeliveryAddress create ${result!.toJson()}'); + } + + void onSearchTextChanged(String text) async { + searchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + predictions.assignAll(places); + update(); + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + predictions.clear(); + update(); + } + } + + Future getPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + selectedPlace.value = details; + print('getPlaceDetailslatitude ${selectedPlace['geometry']['location']['lat']}'); + print('getPlaceDetailslongitude ${selectedPlace['geometry']['location']['lng']}'); + getAddressFromLatLng(selectedPlace['geometry']['location']['lat'],selectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + Future getAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + latitude = double.parse(latitudes.toString()).toString(); + longitude = double.parse(longitudes.toString()).toString(); + cityController.text = '${place.locality}'; + stateController.text = '${place.administrativeArea}'; + suburbController.text = (place.subLocality!.isNotEmpty?place.subLocality:place.street)!; + postCodeController.text = '${place.postalCode}'; + addressController.text = locationAddress; + predictions.clear(); + update(); + print('latitude $latitude'); + print('longitude $longitude'); + print('subAdministrativeArea ${place.subAdministrativeArea}'); + print('subThoroughfare ${place.subThoroughfare}'); + print('currentLocationAddress ${ addressController.text}'); + print('streetss ${place.street}'); + + }).catchError((e) { + debugPrint(e); + }); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart b/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart new file mode 100644 index 0000000..2a1e64c --- /dev/null +++ b/lib/Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart @@ -0,0 +1,111 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import '../../../../../Data/Repository/Customers/getCustomerbytenantidrepository.dart'; +import '../../../../../Helper/toast.dart'; +import '../../../../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; + + +class TenantPickupCustomerController extends GetxController{ + + final int limit = 10; + int page = 1; + var hasMore = true.obs; + + bool progress = true; + + RxBool shimmer = true.obs; + + var getCustomerBytenantId = [].obs; + + + TextEditingController searchController = TextEditingController(); + + GetCustomersByTenantIdRepository getCustomersByTenantIdRepository = GetCustomersByTenantIdRepository(); + + getCustomerByTenantId()async{ + GetCustomerByTenantId? result = await getCustomersByTenantIdRepository.getCustomerByTenantId(); + getCustomerByTenantIdResult(result!); + } + + getTenantsByTenantId()async{ + GetCustomerByTenantId? result = await getCustomersByTenantIdRepository.getTenantsByTenantId(); + getCustomerByTenantIdResult(result!); + } + + + getCustomerByTenantIdResult(GetCustomerByTenantId data) { + final seen = {}; + + /// Logic to remove duplicates + getCustomerBytenantId.value = (data.details ?? []).where((customer) { + if (seen.contains(customer.customerid)) { + return false; // Duplicate + } else { + seen.add(customer.customerid); + return true; + } + }).toList(); + + progress = false; + update(); + } + + + Future getSearchCustomerData(keyword) async { + + GetCustomerByTenantId? result = await getCustomersByTenantIdRepository.getCustomerKeywordByTenantId(keyword); + + if (result?.code == 200) { + getCustomerBytenantId.clear(); + getCustomerBytenantId.addAll(result?.details??[]); + shimmer.value = false; + update(); + print('getSearchCustomerDatalength ${getCustomerBytenantId.length}'); + if(getCustomerBytenantId.isEmpty){ + Toast.showToast('No customer at this moment'); + } + + } else { + // Toast.showToast(result?.message??""); + } + } + + Future refreshData() async { + searchController.clear(); + page = 1; + hasMore.value = true; + getCustomerBytenantId.value = []; + + + if(searchController.text.isEmpty){ + print("ifffffffffffffffffffffffffffffffffff"); + await getCustomerData(); + } + } + + Future getCustomerData() async { + GetCustomerByTenantId? result = await getCustomersByTenantIdRepository.getCustomerByPageLimitTenantId(page,limit); + + if (result?.code == 200) { + if (result!.details!.length < limit) { + hasMore.value = false; + } + // getCustomerBytenantId.clear(); + getCustomerBytenantId.addAll(result.details??[]); + shimmer.value = false; + page++; + update(); + } else { + // Toast.showToast(result?.message??""); + } + } + + + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Tabs/Cancelledordercontroller.dart b/lib/Controller/Dashboard/Tabs/Cancelledordercontroller.dart new file mode 100644 index 0000000..a832602 --- /dev/null +++ b/lib/Controller/Dashboard/Tabs/Cancelledordercontroller.dart @@ -0,0 +1,26 @@ +import 'package:get/get.dart'; + +import '../../../Data/Repository/Orders/Orderrepository.dart'; +import '../../../Model/Response/Orders/Getorderresponse.dart'; + +class CancelledOrderController extends GetxController{ + + RxBool shimmer = true.obs; + + List getCancelledOrderList = []; + + OrdersRepository ordersRepository = OrdersRepository(); + + getCancelledOrder()async{ + GetOrders? result = await ordersRepository.getCancelledOrder(); + getCancelledOrderList = result?.details??[]; + shimmer.value = false; + update(); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Tabs/Completedordercontroller.dart b/lib/Controller/Dashboard/Tabs/Completedordercontroller.dart new file mode 100644 index 0000000..eee1488 --- /dev/null +++ b/lib/Controller/Dashboard/Tabs/Completedordercontroller.dart @@ -0,0 +1,26 @@ +import 'package:get/get.dart'; + +import '../../../Data/Repository/Orders/Orderrepository.dart'; +import '../../../Model/Response/Orders/Getorderresponse.dart'; + +class CompletedOrderController extends GetxController{ + + RxBool shimmer = true.obs; + + List getCompletedOrderList = []; + + OrdersRepository ordersRepository = OrdersRepository(); + + getCompletedOrder()async{ + GetOrders? result = await ordersRepository.getCompletedOrders(); + getCompletedOrderList = result?.details??[]; + shimmer.value = false; + update(); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Tabs/Ongoingordercontroller.dart b/lib/Controller/Dashboard/Tabs/Ongoingordercontroller.dart new file mode 100644 index 0000000..95bbec1 --- /dev/null +++ b/lib/Controller/Dashboard/Tabs/Ongoingordercontroller.dart @@ -0,0 +1,27 @@ +import 'package:get/get.dart'; + +import '../../../Data/Repository/Orders/Orderrepository.dart'; +import '../../../Model/Response/Orders/Getorderresponse.dart'; + +class OnGoingOrderController extends GetxController{ + + RxBool shimmer = true.obs; + + List getCurrentOrderList = []; + + OrdersRepository ordersRepository = OrdersRepository(); + + getCurrentOrder()async{ + GetOrders? result = await ordersRepository.getCurrentOrders(); + getCurrentOrderList = result?.details??[]; + shimmer.value = false; + update(); + } + + @override + void onInit() { + getCurrentOrder(); + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Dashboard/Tabs/Ordercontroller.dart b/lib/Controller/Dashboard/Tabs/Ordercontroller.dart new file mode 100644 index 0000000..207de93 --- /dev/null +++ b/lib/Controller/Dashboard/Tabs/Ordercontroller.dart @@ -0,0 +1,256 @@ +import 'dart:async'; // Add this import +import 'package:get/get.dart' hide Response; +import 'package:intl/intl.dart'; +import 'package:dio/dio.dart' as Response; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Data/Repository/Admintoken/Getadmintokenrepository.dart'; +import '../../../Data/Repository/Notification/Notificationrepository.dart'; +import '../../../Data/Repository/Orders/Orderrepository.dart'; +import '../../../Data/Repository/Summary/ordersrepository.dart'; +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/Notification/Notification_request_rider.dart'; +import '../../../Model/Request/Notification/Notificationrequest.dart'; +import '../../../Model/Request/Orders/Cancelorderrequest.dart'; +import '../../../Model/Response/Admintoken/Admintokenresponse.dart'; +import '../../../Model/Response/Notification/Notificationresponse.dart'; +import '../../../Model/Response/Orders/Getorderresponse.dart'; +import '../../../Model/Response/Summary/Cancelorderresponse.dart'; +import '../../../View/Home/Homeview.dart'; + +class CurrentOrderController extends GetxController { + String? currentTime; + String? notificationDate; + + // Separate lists for each tab + RxList placedOrders = [].obs; + RxList ongoingOrders = [].obs; + RxList completedOrders = [].obs; + RxList cancelledOrders = [].obs; + + // Loading states + RxBool loadingPlaced = false.obs; + RxBool loadingOngoing = false.obs; + RxBool loadingCompleted = false.obs; + RxBool loadingCancelled = false.obs; + + // Track first load per tab + bool hasLoadedPlaced = false; + bool hasLoadedOngoing = false; + bool hasLoadedCompleted = false; + bool hasLoadedCancelled = false; + + DateTime? now; + int? userId; + var orderId; + var orderHeaderId; + + List adminDetails = []; + List adminToken = []; + + OrdersRepository ordersRepository = OrdersRepository(); + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + NotificationRepository notificationRepository = NotificationRepository(); + GetAdminTokenRepository getAdminTokenRepository = GetAdminTokenRepository(); + + final RoundedLoadingButtonController cancelOrderButton = RoundedLoadingButtonController(); + final RoundedLoadingButtonController acceptOrderButton = RoundedLoadingButtonController(); + + // Timer for auto-refreshing 'created' tab + Timer? _autoRefreshTimer; + + getAdminToken() async { + GetAdminToken? result = await getAdminTokenRepository.getAdminToken(); + if (result?.status == true) { + adminDetails = result?.details?.applocationadmins ?? []; + adminToken.clear(); + for (var adminDetail in adminDetails) { + adminToken.add(adminDetail.userfcmtokem ?? ''); + } + } + logger.i('adminToken $adminToken'); + } + + // Get orders list by status + List getOrdersByStatus(String status) { + switch (status) { + case 'created': + return placedOrders; + case 'ongoing': + return ongoingOrders; + case 'delivered': + return completedOrders; + case 'cancelled': + return cancelledOrders; + default: + return placedOrders; + } + } + + // Get loading state by status + RxBool getLoadingByStatus(String status) { + switch (status) { + case 'created': + return loadingPlaced; + case 'ongoing': + return loadingOngoing; + case 'delivered': + return loadingCompleted; + case 'cancelled': + return loadingCancelled; + default: + return loadingPlaced; + } + } + + // Check if already loaded + bool hasLoaded(String status) { + switch (status) { + case 'created': return hasLoadedPlaced; + case 'ongoing': return hasLoadedOngoing; + case 'delivered': return hasLoadedCompleted; + case 'cancelled': return hasLoadedCancelled; + default: return false; + } + } + + // Mark as loaded + void markAsLoaded(String status) { + switch (status) { + case 'created': hasLoadedPlaced = true; break; + case 'ongoing': hasLoadedOngoing = true; break; + case 'delivered': hasLoadedCompleted = true; break; + case 'cancelled': hasLoadedCancelled = true; break; + } + } + + // Fetch orders for a specific status + Future getOrder(String status) async { + final loadingObs = getLoadingByStatus(status); + final ordersList = getOrdersByStatus(status); + + // Show shimmer only on first load + if (!hasLoaded(status)) { + loadingObs.value = true; + } + + try { + GetOrders? result = await ordersRepository.getOrders(status); + ordersList.assignAll(result?.details ?? []); + markAsLoaded(status); + } catch (e) { + logger.e("Error fetching $status orders: $e"); + } finally { + loadingObs.value = false; + update(); + } + } + + + + + // Start auto-refresh for 'created' tab only + void startAutoRefresh() { + _autoRefreshTimer?.cancel(); // Cancel any existing + _autoRefreshTimer = Timer.periodic(Duration(seconds: 3), (timer) { + // Only refresh 'created' tab + getOrder('created'); + }); + } + + // Stop auto-refresh + void stopAutoRefresh() { + _autoRefreshTimer?.cancel(); + _autoRefreshTimer = null; + } + + /// Decline Order in created State + declineOrder(orderheaderId, orderId, customerToken, riderToken) async { + now = DateTime.now(); + currentTime = DateFormat("yyyy-MM-dd HH:mm:ss").format( + DateFormat("yyyy-MM-dd HH:mm:ss", "en_US").parse(now.toString())); + declineOrderResult( + CancelOrderRequest( + orderheaderid: orderheaderId, + orderstatus: "cancelled", + cancelled: currentTime, + ), + orderId, + customerToken, + riderToken + ); + } + + declineOrderResult(CancelOrderRequest data, orderId, customerToken, RiderToken) async { + CancelOrderResponse? result = await orderSummaryRepository.updateOrders(data); + logger.i('Update Order Result ${result!.toString()}'); + cancelOrderButton.reset(); + Get.to(() => HomeView(selectedIndex: 0)); + cancelOrderNotification(orderId, customerToken, RiderToken); + } + + cancelOrderNotification(orderId, customerToken, riderToken) async { + logger.i('CustomerToken : ${customerToken}'); + logger.i('RiderToken : ${riderToken}'); + + SharedPreferences prefs = await SharedPreferences.getInstance(); + String tenantName = prefs.getString('tenantName') ?? ''; + now = DateTime.now(); + notificationDate = DateFormat("yyyy-MM-dd HH:mm:ss").format( + DateFormat("yyyy-MM-dd HH:mm:ss", "en_US").parse(now.toString())); + cancelCustomerOrderNotificationResult( + RiderNotificationRequest( + notification: NotificationRider( + title: "Nearle Daily", + image: "", + body: "Your Order ${orderId} has been cancelled\nby ${tenantName} ", + sound: "ring", + ), + token: customerToken, + ) + ); + + if (riderToken != '') + cancelCustomerOrderNotificationResult( + RiderNotificationRequest( + notification: NotificationRider( + title: "NearleXpress", + image: "", + body: "${orderId} order has been cancelled\nby ${tenantName} ", + sound: "ring", + ), + token: riderToken, + ) + ); + } + + cancelCustomerOrderNotificationResult(RiderNotificationRequest data) async { + NotificationResponse? result = await notificationRepository.notifyRider(data); + if (result?.status == true) { + // Handle success if needed + } + } + + cancelRiderOrderNotificationResult(RiderNotificationRequest data) async { + NotificationResponse? result = await notificationRepository.notifyRider(data); + if (result?.status == true) { + // Handle success if needed + } + } + + @override + void onInit() { + super.onInit(); + // Start auto-refresh when controller is initialized + startAutoRefresh(); + } + + @override + void onClose() { + // Stop timer when controller is disposed + stopAutoRefresh(); + super.onClose(); + } +} \ No newline at end of file diff --git a/lib/Controller/Directionmap/Directionmapcontroller.dart b/lib/Controller/Directionmap/Directionmapcontroller.dart new file mode 100644 index 0000000..ace6376 --- /dev/null +++ b/lib/Controller/Directionmap/Directionmapcontroller.dart @@ -0,0 +1,132 @@ +import 'package:flutter_polyline_points/flutter_polyline_points.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:http/http.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../Helper/Constants/Colorconstants.dart'; + +class DirectionMapController extends GetxController{ + + String? googleApiKey; + + + late GoogleMapController mapController; + // double _originLatitude = 6.5212402, _originLongitude = 3.3679965; + // double _destLatitude = 6.849660, _destLongitude = 3.648190; + double? originLatitude; + double? originLongitude; + double? destLatitude; + double? destLongitude; + + static LatLng? center; + + + Map markers = {}; + Map polylines = {}; + List polylineCoordinates = []; + PolylinePoints polylinePoints = PolylinePoints(); + + + + + void onMapCreated(GoogleMapController controller) async { + mapController = controller; + } + + addMarker(LatLng position, String id, BitmapDescriptor descriptor) { + print('originLatitudeaddMarkercontroller $originLatitude'); + print('originLongitudeaddMarkercontroller $originLongitude'); + print('destLatitudeaddMarkercontroller $destLatitude'); + print('destLongitudeaddMarkercontroller $destLongitude'); + + MarkerId markerId = MarkerId(id); + Marker marker = + Marker(markerId: markerId, icon: descriptor, position: position); + markers[markerId] = marker; + } + + addPolyLine() { + PolylineId id = PolylineId("poly"); + Polyline polyline = Polyline( + polylineId: id, + color: ColorConstants.primaryColor, + points: polylineCoordinates, + jointType: JointType.mitered, + geodesic: true, + visible: true, + width: 10 + + + + + ); + polylines[id] = polyline; + update(); + } + + + void setCameraPosition(List coordinates) { + LatLngBounds bounds = boundsFromLatLngList(coordinates); + CameraUpdate cameraUpdate = CameraUpdate.newLatLngBounds(bounds, 50); // Adjust padding as needed + mapController.animateCamera(cameraUpdate); + } + + + LatLngBounds boundsFromLatLngList(List list) { + double? x0, x1, y0, y1; + + for (LatLng latLng in list) { + if (x0 == null || latLng.latitude < x0) x0 = latLng.latitude; + if (x1 == null || latLng.latitude > x1) x1 = latLng.latitude; + if (y0 == null || latLng.longitude < y0) y0 = latLng.longitude; + if (y1 == null || latLng.longitude > y1) y1 = latLng.longitude; + } + + return LatLngBounds(northeast: LatLng(x1!, y1!), southwest: LatLng(x0!, y0!)); + } + + + + getPolyline() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + print('originLatitudegetPolylinecontroller $originLatitude'); + print('originLongitudegetPolylinecontroller $originLongitude'); + print('destLatitudegetPolylinecontroller $destLatitude'); + print('destLongitudegetPolylinecontroller $destLongitude'); + googleApiKey = prefs.getString('googleApiKey')??'AIzaSyBhkGfnq27sN0wV5y_S-M2KojpFTk_by-Q'; + PolylineResult result = await polylinePoints.getRouteBetweenCoordinates( + request: PolylineRequest( + origin: PointLatLng(originLatitude ?? 0.0, originLongitude ?? 0.0), + destination: PointLatLng(destLatitude ?? 0.0, destLongitude ?? 0.0), + mode: TravelMode.driving, + // Optional: + // wayPoints: [PolylineWayPoint(location: "Some location string")] + ), + googleApiKey: googleApiKey ?? 'YOUR_API_KEY', + ); + + + if (result.points.isNotEmpty) { + // dropChangeZoom(13); + polylineCoordinates.clear(); + + result.points.forEach((PointLatLng point) { + polylineCoordinates.add(LatLng(point.latitude, point.longitude)); + + setCameraPosition(polylineCoordinates); + + }); + } + addPolyLine(); + } + + @override + void onInit() { + // TODO: implement onInit + + + + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Home/Homecontroller.dart b/lib/Controller/Home/Homecontroller.dart new file mode 100644 index 0000000..beb191c --- /dev/null +++ b/lib/Controller/Home/Homecontroller.dart @@ -0,0 +1,116 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:pretty_qr_code/pretty_qr_code.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; + +class HomeController extends GetxController{ + + int selectedIndex = 0; + int tenantId = 0; + int locationId = 0; + + + void onItemTapped(int index) { + selectedIndex = index; + update(); + } + + void getTenantId() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = (await prefs.getInt('tenantId')) ?? 0; + locationId = (await prefs.getInt('locationId')) ?? 0; + logger.i('TenantId = ${tenantId}'); + update(); + } + + + void showQRBottomSheet() { + final Map qrMap = { + 'tenantid': tenantId, // 👈 lowercase key + 'locationid': locationId, // 👈 lowercase key + }; + + final String qrData = jsonEncode(qrMap); + logger.i("QR JSON Data: $qrData"); + + final qrCode = QrCode.fromData( + data: qrData, + errorCorrectLevel: QrErrorCorrectLevel.M, + ); + + Get.bottomSheet( + SafeArea( + child: Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: const BorderRadius.vertical(top: Radius.circular(24)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 10, + offset: const Offset(0, -2), + ), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + "Scan QR Code", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + const SizedBox(height: 24), + Center( + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.grey.shade200, width: 1), + ), + child: SizedBox( + width: 220, + height: 220, + child: PrettyQrView( + qrImage: QrImage(qrCode), + decoration: const PrettyQrDecoration( + shape: PrettyQrSmoothSymbol( + roundFactor: 0.0, + color: Colors.black, + ), + quietZone: PrettyQrModulesQuietZone(2), + background: Colors.white, + ), + ), + ), + ), + ), + ], + ), + ), + ), + isScrollControlled: true, + backgroundColor: Colors.transparent, + ); + } + + + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + getTenantId(); + } +} \ No newline at end of file diff --git a/lib/Controller/Internetcheck/check_internet.dart b/lib/Controller/Internetcheck/check_internet.dart new file mode 100644 index 0000000..bdc8cf8 --- /dev/null +++ b/lib/Controller/Internetcheck/check_internet.dart @@ -0,0 +1,74 @@ +import 'dart:async'; +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/Colorconstants.dart'; + +class ConnectivityController extends GetxController { + final isOffline = false.obs; + final Connectivity _connectivity = Connectivity(); + late StreamSubscription> _subscription; + bool _wasOffline = false; + + @override + void onInit() { + super.onInit(); + _checkInitialConnection(); + _subscription = _connectivity.onConnectivityChanged.listen(_updateStatus); + } + + Future _checkInitialConnection() async { + final result = await _connectivity.checkConnectivity(); + _updateStatus([result.first]); + } + + void _updateStatus(List results) { + final isCurrentlyOffline = !results.any((r) => r == ConnectivityResult.mobile || r == ConnectivityResult.wifi); + + if (isCurrentlyOffline != isOffline.value) { + isOffline.value = isCurrentlyOffline; + + final context = Get.context!; + + if (isCurrentlyOffline) { + ScaffoldMessenger.of(context).showSnackBar( + + SnackBar( + content: TextWidget( + color: ColorConstants.secondaryColor, + text: "You are currently offline", + ), + backgroundColor: Theme.of(context).colorScheme.error, + duration: Duration(days: 1), // Until dismissed or back online + behavior: SnackBarBehavior.floating, + ), + ); + } else { + if (_wasOffline) { + ScaffoldMessenger.of(context).clearSnackBars(); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: TextWidget( + text: "You are connected to the internet", + color: ColorConstants.secondaryColor, + ), + backgroundColor: Colors.green, + behavior: SnackBarBehavior.floating, + duration: const Duration(seconds: 3), + ), + ); + } + } + + _wasOffline = isCurrentlyOffline; + } + } + + + @override + void onClose() { + _subscription.cancel(); + super.onClose(); + } +} \ No newline at end of file diff --git a/lib/Controller/Introscreen/Introscreencontroller.dart b/lib/Controller/Introscreen/Introscreencontroller.dart new file mode 100644 index 0000000..12d08d8 --- /dev/null +++ b/lib/Controller/Introscreen/Introscreencontroller.dart @@ -0,0 +1,78 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:intro_slider/intro_slider.dart'; +import '../../Helper/Constants/AssetConstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../View/Authentication/Logiview.dart'; + + +class IntroScreenController extends GetxController{ + + List listContentConfig = []; + + void onDonePress() { + Get.to(()=> LoginView()); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + + listContentConfig.add( + ContentConfig( + title: "Get Online", + styleTitle: TextStyle(color: ColorConstants.blackColor,fontSize: 30,fontWeight: FontWeight.bold), + maxLineTitle: 2, + marginDescription: EdgeInsets.only(top: 0,left: 20,right: 20), + description: "Bring your store online and connect with nearby customers.", + styleDescription: TextStyle(color: ColorConstants.blackColor,fontSize: 18,fontWeight: FontWeight.normal), + pathImage: AssetConstants.onBoarding1, + heightImage:Get.height*0.40 , + widthImage: Get.width*0.40 , + backgroundColor: ColorConstants.secondaryColor, + ), + ); + + listContentConfig.add( + ContentConfig( + title: "Get Noticed", + maxLineTitle: 2, + marginDescription: EdgeInsets.only(top: 0,left: 20,right: 20), + styleTitle: TextStyle( + color: ColorConstants.blackColor, + fontSize: 30, + fontWeight: FontWeight.bold, + ), + description: "Showcase your products to people around you through the Nearle app.", + styleDescription: TextStyle(color: ColorConstants.blackColor,fontSize: 18,fontWeight: FontWeight.normal), + pathImage: AssetConstants.onBoarding2, + heightImage:Get.height*0.40 , + widthImage: Get.width*0.40 , + backgroundColor: ColorConstants.secondaryColor, + widgetDescription: Padding( + padding: const EdgeInsets.only(top: 20), + child: Text( + 'Showcase your products to people around you through the Nearle app.', + style: TextStyle(color: ColorConstants.blackColor,fontSize: 18,fontWeight: FontWeight.normal), + textAlign: TextAlign.center, + ), + ), + ), + ); + listContentConfig.add( + ContentConfig( + title: "Get Simplified", + maxLineTitle: 2, + marginDescription: EdgeInsets.only(top: 0,left: 20,right: 20), + styleTitle: TextStyle(color: ColorConstants.blackColor,fontSize: 30,fontWeight: FontWeight.bold), + description: "Delight the community with a personalized online experience. Grow your sales with smart platform.", + styleDescription: TextStyle(color: ColorConstants.blackColor,fontSize: 18,fontWeight: FontWeight.normal), + pathImage: AssetConstants.onBoarding3, + heightImage:Get.height*0.40 , + widthImage: Get.width*0.40 , + backgroundColor: ColorConstants.secondaryColor, + ), + ); + } +} \ No newline at end of file diff --git a/lib/Controller/Location/Locationpermissioncontroller.dart b/lib/Controller/Location/Locationpermissioncontroller.dart new file mode 100644 index 0000000..3941e25 --- /dev/null +++ b/lib/Controller/Location/Locationpermissioncontroller.dart @@ -0,0 +1,42 @@ +import 'dart:async'; + +import 'package:geolocator/geolocator.dart'; +import 'package:get/get.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; + +import '../../Helper/Locationservice/Locationservice.dart'; +import '../../View/Authentication/Logiview.dart'; + +class LocationPermissionController extends GetxController{ + + LocationService locationService = LocationService(); + Position? resultPosition; + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + + getLatLong() async { + resultPosition = await locationService.getLocation(); + // print('resultPosition$resultPosition'); + if (resultPosition != null) { + btnController.reset(); + Get.to(()=>LoginView()); + } + } + + + void doSomething() async { + Timer(const Duration(seconds: 1), () async { + btnController.success(); + + getLatLong(); + }); + } + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Editprofile/Editprofilecontroller.dart b/lib/Controller/More/Editprofile/Editprofilecontroller.dart new file mode 100644 index 0000000..0bb8b29 --- /dev/null +++ b/lib/Controller/More/Editprofile/Editprofilecontroller.dart @@ -0,0 +1,137 @@ +import 'dart:async'; +import 'package:awesome_dialog/awesome_dialog.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../Data/Repository/Users/user_repository.dart'; +import '../../../Helper/toast.dart'; +import '../../../Model/Request/User/Updateuser/Updateuserrequest.dart'; +import '../../../Model/Response/User/Updateuser/Updateuserresponse.dart'; +import '../../../Model/Response/User/Usermodelresponse.dart'; +import '../../../View/Authentication/Logiview.dart'; +import '../../Authentication/Authcontroller.dart'; + +class EditProfileController extends GetxController{ + + + TextEditingController firstNameController = TextEditingController(); + TextEditingController lastNameController = TextEditingController(); + TextEditingController emailController = TextEditingController(); + TextEditingController contactNoController = TextEditingController(); + + UserDetails? userInfo; + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + UserRepository userRepository = UserRepository(); + + AuthController authController = Get.put(AuthController()); + + + // Future takePhoto() async { + // final ImagePicker imagePicker = ImagePicker(); + // final XFile? photo = await imagePicker.pickImage( + // source: ImageSource.camera, + // imageQuality: 50, + // ); + // if (photo == null) { + // return null; + // } + // final imageBytes = await photo.readAsBytes(); + // String base64Image = base64Encode(imageBytes); // Convert image to base64 + // print("Base64 Image: $base64Image"); + // return base64Image; + // + // } + + + getDetails()async{ + firstNameController.text = userInfo?.firstname??''; + lastNameController.text = userInfo?.lastname??''; + emailController.text = userInfo?.authname??''; + contactNoController.text = userInfo?.contactno??''; + // update(); + } + + void doSomething() async { + Timer(const Duration(seconds: 1), () { + btnController.success(); + profileValidation(); + }); + } + + profileValidation ()async{ + if (firstNameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Firstname"); + } + else if (lastNameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter Lastname"); + } else if(emailController.text.isEmpty){ + btnController.reset(); + Toast.showToast("Please Enter Email"); + } + else { + btnController.reset(); + userUpdate(); + } + } + + userUpdate()async{ + userUpdateResult( + UserUpdateRequest( + userid:userInfo?.userid??0, + authname:emailController.text, + configid: userInfo?.configid??0, + contactno:contactNoController.text, + firstname:firstNameController.text, + lastname : lastNameController.text, + email:emailController.text + ) + ); + } + + userUpdateResult(UserUpdateRequest data)async{ + UserUpdateResponse? result = await userRepository.updateUser(data); + if(result?.status == true){ + AwesomeDialog( + context: Get.context!, + dialogType: DialogType.warning, + // animType: AnimType.BOTTOMSLIDE, + descTextStyle: const TextStyle(fontSize: 16,), + desc: 'Update successful, Kindly login to the app for the changes to take effect', + dismissOnTouchOutside: false, + btnOkText: 'Logout', + // btnCancelOnPress: () { + // Get.to(OrderDetails(data: data)); + // }, + btnOkOnPress: () async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.remove('token'); + prefs.remove('fcmToken'); + print('remove....fcmToken'); + prefs.clear(); + + prefs.remove('userMobile'); + authController.loginPhoneNumberController.clear(); + // authController.passwordController.clear(); + Get.offAll(()=>LoginView()); + }, + ).show(); + + // Get.to(()=>HomePage(selectedIndex: 3,)); + + } + } + + + @override + void onInit() { + + // TODO: implement onInit + super.onInit(); + } + +} \ No newline at end of file diff --git a/lib/Controller/More/Locations/Addlocation/Addlocationcontroller.dart b/lib/Controller/More/Locations/Addlocation/Addlocationcontroller.dart new file mode 100644 index 0000000..edabf03 --- /dev/null +++ b/lib/Controller/More/Locations/Addlocation/Addlocationcontroller.dart @@ -0,0 +1,470 @@ +import 'package:country_currency_pickers/country.dart'; +import 'package:country_currency_pickers/utils/utils.dart'; +import 'package:dio/dio.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:geocoding/geocoding.dart'; +import 'package:geolocator/geolocator.dart'; +import 'package:get/get.dart' hide Response; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../../Data/Repository/Applocation/Applocationrepository.dart'; +import '../../../../Data/Repository/Location/Addlocation/Addlocationrepository.dart'; +import '../../../../Data/Repository/Location/Updatelocation/Updatelocationrepository.dart'; +import '../../../../Globalwidgets/Googleplaces/Googleplaces.dart'; +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/Locationservice/Locationservice.dart'; +import '../../../../Helper/location_service.dart'; +import '../../../../Helper/toast.dart'; +import '../../../../Model/Request/Location/Addlocation/Addlocationrequest.dart'; +import '../../../../Model/Request/Location/Updatelocation/Updatelocationrequest.dart'; +import '../../../../Model/Response/Applocations/Applocationresponse.dart'; +import '../../../../Model/Response/Location/Addlocation/Addlocationresponse.dart'; +import '../../../../Model/Response/Location/Updatelocation/Updatelocationresponse.dart'; +import '../../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../../../View/More/Locations/Locationview.dart'; + +class AddLocationController extends GetxController{ + + String? dialCode; + String? googleApiKey; + String? initialCountry; + String? addressField; + String? latitude; + String? longitude; + String? city; + String? state; + String? suburb; + String appLocationName = ''; + + + String? min1Label; + String? min2Label; + String? min3Label; + + String describeAddLocationUrl = '${ApiConstants.describeUrl}/9/en_us'; + + + int deliveryMin = 30; + int cancellationSec = 20; + + int appLocationId = 0; + int? moduleId; + int? locationId; + + + bool sec1 = true; + bool sec2 = false; + bool sec3 = false; + + bool min1 = true; + bool min2 = false; + bool min3 = false; + + bool editMode = false; + bool shimmer = true; + bool isEnterAddress = false; + bool progress = false; + + + List locations = []; + + Position? resultPosition; + + Country selectedDialogCountry = CountryPickerUtils.getCountryByIsoCode('IN'); + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + + TenantLocationDetails? locationInfo; + + + var describeValue; + + final searchText = ''.obs; + final predictions = >[].obs; + final selectedPlace = {}.obs; + + final GooglePlacesService placesService = GooglePlacesService(); + + LocationService locationService = LocationService(); + + + AppLocationRepository appLocationRepository = AppLocationRepository(); + + final GlobalKey _keyLoader = new GlobalKey(); + + + TextEditingController nameController = TextEditingController(); + TextEditingController emailController = TextEditingController(); + TextEditingController addressController = TextEditingController(); + TextEditingController phoneNoController = TextEditingController(); + TextEditingController postalCodeController = TextEditingController(); + TextEditingController stateController = new TextEditingController(); + TextEditingController cityController = new TextEditingController(); + TextEditingController suburbController = new TextEditingController(); + + UpdateLocationRepository updateLocationRepository = UpdateLocationRepository(); + AddLocationRepository addLocationRepository = AddLocationRepository(); + + + + onSearchTextChanged(String text) async { + searchText.value = text; + if (text.length > 2) { + try { + final places = await placesService.getPlacesPredictions(text); + predictions.assignAll(places); + update(); + + } catch (e) { + print('Error fetching predictions: $e'); + } + } else { + predictions.clear(); + update(); + + } + } + + getPlaceDetails(String placeId,locationAddress) async { + try { + final details = await placesService.getPlaceDetails(placeId); + selectedPlace.value = details; + print('getPlaceDetailslatitude ${selectedPlace['geometry']['location']['lat']}'); + print('getPlaceDetailslongitude ${selectedPlace['geometry']['location']['lng']}'); + getAddressFromLatLng(selectedPlace['geometry']['location']['lat'],selectedPlace['geometry']['location']['lng'],locationAddress); + } catch (e) { + print('Error fetching place details: $e'); + } + } + + getAddressFromLatLng(double latitudes, double longitudes,locationAddress) async { + await placemarkFromCoordinates(latitudes, longitudes).then((List placemarks) { + Placemark place = placemarks[0]; + latitude = double.parse(latitudes.toString()).toString(); + longitude = double.parse(longitudes.toString()).toString(); + city = '${place.locality}'; + cityController.text = '${place.locality}'; + stateController.text = '${place.administrativeArea}'; + state = '${place.administrativeArea}'; + suburbController.text = "${place.subLocality!.isNotEmpty?place.subLocality:place.street}" ; + suburb = place.subLocality!.isNotEmpty?place.subLocality:place.street; + postalCodeController.text = '${place.postalCode}'; + addressController.text = locationAddress??'${place.street}, ${place.subLocality},${place.locality},${place.administrativeArea} ${place.subAdministrativeArea},${place.country},${place.postalCode}.'; + isEnterAddress = true; + + // address = locationAddress??'${place.street}, ${place.subLocality},${place.locality},${place.administrativeArea} ${place.subAdministrativeArea},${place.country},${place.postalCode}.'; + predictions.clear(); + update(); + + + + print('latitude $latitude'); + print('longitude $longitude'); + print('currentLocationSuburb $suburb'); + print('city $city'); + print('state $state'); + print('postalCode ${postalCodeController.text}'); + }).catchError((e) { + debugPrint(e); + }); + } + + + getAppLocations() async{ + GetAppLocations? result = await appLocationRepository.getAppLocations(); + if(result?.code == 200){ + locations = result?.details??[]; + shimmer = false; + setValues(); + update(); + } + else{ + Toast.showToast("${result?.message}"); + + } + + } + + setValues() { + print('setValueseditMode $editMode'); + // print('addlocationnamesssssss${locationInfo['locationName']}'); + if (editMode) { + locationInfo = locationInfo; + + // print(locationInfo); + locationId = locationInfo?.locationid; + nameController.text = locationInfo?.locationname??''; + emailController.text = locationInfo?.locationemail??''; + addressController.text = locationInfo?.locationaddress??''; + postalCodeController.text = locationInfo?.locationpostcode??''; + suburb = locationInfo?.locationsuburb??''; + suburbController.text = locationInfo?.locationsuburb??''; + cityController.text = locationInfo?.locationcity??''; + city = locationInfo?.locationcity??''; + // print('${locationInfo['openingtime'].toString()}open time'); + + state = locationInfo?.locationstate??''; + stateController.text = locationInfo?.locationstate??''; + latitude = locationInfo?.locationlatitude??''; + longitude = locationInfo?.locationlong??''; + + // countryCode = locationInfo['countrycode']; + + phoneNoController.text = locationInfo?.locationcontact??''; + // delivery = locationInfo['delivery']; + // deliveryCharges = locationInfo['deliverycharges'] ?? []; + cancellationSec = locationInfo?.cancelsecs??0; + deliveryMin = locationInfo?.deliverymins??0; + // deliveryType = locationInfo['deliverytype']; + + + if (deliveryMin == 30) { + min1 = true; + min2 = false; + min3 = false; + } else if (deliveryMin == 60) { + min1 = false; + min2 = true; + min3 = false; + } else if (deliveryMin == 120) { + min1 = false; + min2 = false; + min3 = true; + } + + if (cancellationSec == 20) { + sec1 = true; + sec2 = false; + sec3 = false; + } else if (cancellationSec == 30) { + sec1 = false; + sec2 = true; + sec3 = false; + } else if (cancellationSec == 40) { + sec1 = false; + sec2 = false; + sec3 = true; + } + appLocationId = locationInfo?.applocationid??0; + for (var loc in locations) { + if (loc.applocationid == appLocationId) { + appLocationName = loc.city??''; + return; + } + } + update(); + + } + } + + + describeValidation() { + if (nameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please enter location name"); + } else if (emailController.text.isEmpty) { + btnController.reset(); + // Toast.showToast("Please enter email"); + Toast.showToast("Please enter email"); + } else if (RegExp( + r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+") + .hasMatch(emailController.text) == + false) { + btnController.reset(); + // Toast.showToast("Enter valid email"); + Toast.showToast("Enter valid email"); + } else if (phoneNoController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please enter contact no"); + } + else if (phoneNoController.text.length !=10) { + btnController.reset(); + Toast.showToast("Incorrect contact no"); + } + // else if (appLocationId == 0) { + // Toast.showToast("Please select your location"); + // progress = true; + // update(); + // + // } + else if (addressController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please enter your location"); + } else if (suburbController.text.isEmpty) { + btnController.reset(); + isEnterAddress = true; + update(); + Toast.showToast("Please enter suburb"); + } else if (cityController.text.isEmpty) { + btnController.reset(); + isEnterAddress = true; + update(); + Toast.showToast("Please enter city"); + } + // else if (city.toString().toLowerCase() != + // appLocationName.toString().toLowerCase()) { + // + // setState(() { + // isEnterAddress = true; + // }); + // Toast.showToast( + // "Entered address and selected location varies please enter correct location"); + // } + else if (stateController.text.isEmpty) { + isEnterAddress = true; + update(); + Toast.showToast("Please enter state"); + } else if (postalCodeController.text.isEmpty) { + Toast.showToast("Please enter postcode"); + } + // else if (deliveryMin == 0) { + // Toast.showToast("Please select delivery mins "); + // } + else { + if (editMode == false) { + progress = true; + update(); + addLocation(); + } + else { + updateLocation(); + } + } + } + + Future showLoader(BuildContext context, GlobalKey key) async { + return showDialog( + + context: context, + barrierDismissible: false, // user must tap button! + builder: (BuildContext context) { + return SimpleDialog( + backgroundColor: Colors.white, + + key: key, + // title: Text('Warning'), + children: [ + Center( + child: Column(children: [ + CircularProgressIndicator(color: ColorConstants.primaryColor), + SizedBox( + height: 10, + ), + Text( + "Please wait....", + style: TextStyle(color: ColorConstants.primaryColor), + ) + ]), + ) + ]); + }, + ); + } + + addLocation()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + var tenantId = prefs.getInt('tenantId'); + var moduleId = prefs.getInt('moduleId'); + var appLocationId = prefs.getInt('appLocationId'); + var partnerId = prefs.getInt('partnerId'); + addLocationResult( + AddLocation( + locationid:0, + tenantid:tenantId, + moduleid:moduleId, + applocationid:appLocationId, + locationname:"${nameController.text}", + email:"${emailController.text}", + contactno:"${phoneNoController.text}", + address:"${addressController.text}", + suburb:"${suburbController.text}", + state:"${stateController.text}", + city:"${cityController.text}", + postcode:"${postalCodeController.text}", + latitude:"$latitude", + longitude:"$longitude", + partnerid:partnerId, + opentime:"9:00", + closetime:"21:00", + deliverytype:0, + deliverymins:60, + cancelsecs:20 + ) + ); + + + } + addLocationResult(AddLocation data)async{ + AddLocationResponse? result = await addLocationRepository.addLocation(data); + if(result?.status == true){ + locationId = 0; + nameController.clear(); + emailController.clear(); + addressController.clear(); + postalCodeController.clear(); + suburb = ''; + suburbController.clear(); + cityController.clear(); + city = ''; + state = ''; + stateController.clear(); + latitude = ''; + longitude = ''; + phoneNoController.clear(); + isEnterAddress = false; + Get.to(()=>LocationView()); + } + else{ + Toast.showToast('Something went wrong'); + } + + } + + + updateLocation()async{ + updateLocationResult( + UpdateLocation( + locationid:locationInfo?.locationid??0, + tenantid:locationInfo?.tenantid??0, + moduleid:locationInfo?.moduleid??0, + applocationid:locationInfo?.applocationid??0, + locationname:"${nameController.text}", + email:"${emailController.text}", + contactno:"${phoneNoController.text}", + address:"${addressController.text}", + suburb:"${suburbController.text}", + state:"${stateController.text}", + city:"${cityController.text}", + postcode:"${postalCodeController.text}", + latitude:"$latitude", + longitude:"$longitude", + partnerid:locationInfo?.partnerid??0, + opentime:"9:00", + closetime:"21:00", + deliverytype:0, + deliverymins:60, + cancelsecs:20 + ) + + ); + } + updateLocationResult(UpdateLocation data)async{ + UpdateLocationResponse? result = await updateLocationRepository.updateLocation(data); + if(result?.status == true){ + Get.to(()=>LocationView()); + + } + + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Locations/Locationcontroller.dart b/lib/Controller/More/Locations/Locationcontroller.dart new file mode 100644 index 0000000..7b3b323 --- /dev/null +++ b/lib/Controller/More/Locations/Locationcontroller.dart @@ -0,0 +1,45 @@ +import 'package:get/get.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Data/Repository/Location/GetLocation/getlocationrepository.dart'; +import '../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; + +class LocationController extends GetxController{ + + int? tenantId; + int? moduleId; + + Listlocations = []; + + bool shimmer = true; + + + GetLocationsRepository getLocationsRepository= GetLocationsRepository(); + + + getLocation()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')??0; + moduleId = prefs.getInt('moduleId')??0; + GetLocationByTenantId? result = await getLocationsRepository.getLocationById(); + getLocationByIdResult(result!); + } + + getLocationByIdResult(GetLocationByTenantId data) async { + print('location result'); + if (data.code == 200) { + SharedPreferences prefs = await SharedPreferences.getInstance(); + locations = data.details!; + shimmer = false; + update(); + print('usernamesss ${prefs.getString('userName')??''}'); + print('gettenantIdinset${prefs.getInt('tenantId')!}'); + } + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Locations/Staffs/Staffdetailscontroller.dart b/lib/Controller/More/Locations/Staffs/Staffdetailscontroller.dart new file mode 100644 index 0000000..3a89005 --- /dev/null +++ b/lib/Controller/More/Locations/Staffs/Staffdetailscontroller.dart @@ -0,0 +1,13 @@ +import 'package:get/get.dart'; + +class StaffDetailsController extends GetxController{ + + bool shimmer = true; + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Morecontroller.dart b/lib/Controller/More/Morecontroller.dart new file mode 100644 index 0000000..e1d9a7c --- /dev/null +++ b/lib/Controller/More/Morecontroller.dart @@ -0,0 +1,206 @@ +import 'package:awesome_snackbar_content/awesome_snackbar_content.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart' hide Response; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:package_info_plus/package_info_plus.dart'; +import '../../Data/Repository/Users/user_repository.dart'; +import '../../Helper/Constants/Apiconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Model/Response/User/Usermodelresponse.dart'; +import '../../View/Authentication/Logiview.dart'; +import '../../View/More/Editprofile/Editprofileview.dart'; +import '../../View/More/Faqview/faqtabs.dart'; +import '../../View/More/Locations/Locationview.dart'; +import '../../View/More/Notification/Notificationview.dart'; +import '../../View/More/Staffs/Staffview.dart'; +import '../Authentication/Authcontroller.dart'; + +class MoreController extends GetxController{ + String? userName; + String? userContact; + String? version; + String? token; + String? dialCode; + String? imageUrl; + String? header; + String? locationLabel; + String? profileLabel; + String? FAQLabel; + String? logoutLabel; + String? actionsLabel; + String? subscriptionLabel; + String? paymentsLabel; + String? communityLabel; + String? preferencesLabel; + String? userLabel; + String? settingsLabel; + String? notificationsLabel; + + int? versionValue; + int? roleId; + int? tenantId; + int? userId; + + UserDetails? userInfo; + var describeValue; + String? currentVersion; + + + AuthController authController = Get.put(AuthController()); + + UserRepository userRepository = UserRepository(); + + String describeCompanyUrl = '${ApiConstants.describeUrl}/51/en_us'; + + toUser() { + if(roleId ==1) { + Get.to(() => StaffsView()); + } + else{ + var snackBar = SnackBar( + elevation: 0, + behavior: SnackBarBehavior.floating, + backgroundColor: Colors.transparent, + content: AwesomeSnackbarContent( + title: 'Support', + message: 'Could not view staffs at this moment. Kindly contact app admin.', + contentType: ContentType.warning, + color: Colors.red.withAlpha(200), + ), + ); + + ScaffoldMessenger.of(Get.context!).showSnackBar(snackBar); + + } + } + + toFaq() { + Get.to(()=>FaqTabs()); + } + + toSettings() { + + } + + toLocation() { + Get.to(()=>LocationView()); + } + + toPayment() {} + + toEditProfile() { + Get.to(()=>EditProfile(data:userInfo,)); + + } + + toNotification() { + Get.to(()=>NotificationView()); + } + + Future confirmLogout(BuildContext context) async { + final shouldLogout = await showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + title: const Text( + 'Confirm Logout', + style: TextStyle(fontWeight: FontWeight.bold), + ), + content: const Text('Are you sure you want to log out?'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text('Cancel'), + ), + ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Colors.redAccent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + onPressed: () => Navigator.pop(context, true), + child: const Text('Logout'), + ), + ], + ); + }, + ); + + if (shouldLogout == true) { + await toLogin(); + } + } + + Future toLogin() async { + print('Logging out user...'); + SharedPreferences prefs = await SharedPreferences.getInstance(); + + await prefs.clear(); // Clears all stored keys and values + authController.loginPhoneNumberController.clear(); + authController.termsChecking = false; + + print('Redirecting to login view...'); + Get.offAll(() => LoginView()); + } + + + + getToken() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + token = prefs.getString('tenantFcmToken'); + roleId = prefs.getInt('roleId'); + versionValue = prefs.getInt('versionValue'); + userName = prefs.getString('userName'); + userContact = '+91${prefs.getString('tenantContactNo')}'; + tenantId = prefs.getInt('tenantId'); + userId = prefs.getInt('userId'); + update(); + get(token??''); + } + + + get(String token) async{ + + UserModelResponse? result = await userRepository.getUser(token); + if(result?.status == true){ + getResults(result); + print('resultprofilecontroller${result?.details?.toJson()}'); + } + } + + getResults(UserModelResponse? data) { + // var data = json.encode(userData); + userInfo = data?.details; + print('userInfofullname ${userInfo?.fullname}'); + userContact = '+91${data?.details!.contactno}'; + userName = "${data?.details!.fullname.toString()}"; + // imageUrl = "${data.details!.profileimage.toString()}"; + roleId =data?.details!.roleid; + update(); + if (roleId == 2) { + // getWeekdayDetails(); + } + } + + + Future getAppVersion() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + PackageInfo packageInfo = await PackageInfo.fromPlatform(); + + String version = packageInfo.version; + currentVersion = version; + prefs.setString('CurrentVersion', currentVersion!); + logger.i('Current version from main: $currentVersion'); + } + + @override + void onInit() { + // TODO: implement onInit + getAppVersion(); + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Notification/Notificationcontroller.dart b/lib/Controller/More/Notification/Notificationcontroller.dart new file mode 100644 index 0000000..a84918b --- /dev/null +++ b/lib/Controller/More/Notification/Notificationcontroller.dart @@ -0,0 +1,77 @@ +import 'dart:convert'; +import 'package:get/get.dart'; +import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; + + +class NotificationController extends GetxController { + RxBool isLoading = false.obs; + RxList notifications = [].obs; + + Future fetchNotifications() async { + isLoading.value = true; + + SharedPreferences prefs = await SharedPreferences.getInstance(); + + // SAFE READ → Handles int or string + dynamic t = prefs.get("tenantId"); + dynamic l = prefs.get("locationId"); + + String tenantId = t?.toString() ?? ""; + String locationId = l?.toString() ?? ""; + + final url = + "https://jupiter.nearle.app/live/api/v1/utils/gettenantnotifications/?tenantid=$tenantId&locationid=$locationId"; + + try { + var response = await http.get(Uri.parse(url)); + + print(url); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + + if (data["status"] == true) { + notifications.value = (data["details"] as List) + .map((e) => NotificationModel.fromJson(e)) + .toList(); + } + } + } catch (e) { + print("Notification API Error: $e"); + } + + isLoading.value = false; + } + + @override + void onInit() { + fetchNotifications(); // auto load on page open + super.onInit(); + } +} + + + +class NotificationModel { + final int notificationid; + final String title; + final String message; + final String notificationdate; + + NotificationModel({ + required this.notificationid, + required this.title, + required this.message, + required this.notificationdate, + }); + + factory NotificationModel.fromJson(Map json) { + return NotificationModel( + notificationid: json["notificationid"], + title: json["title"] ?? "", + message: json["message"] ?? "", + notificationdate: json["notificationdate"] ?? "", + ); + } +} diff --git a/lib/Controller/More/Staffs/Addstaff/Addstaffcontroller.dart b/lib/Controller/More/Staffs/Addstaff/Addstaffcontroller.dart new file mode 100644 index 0000000..dc194e4 --- /dev/null +++ b/lib/Controller/More/Staffs/Addstaff/Addstaffcontroller.dart @@ -0,0 +1,144 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../../Data/Repository/Staffs/Addstaff/Addstaffrepository.dart'; +import '../../../../Data/Repository/Tenantlocation/Getlocationrepository.dart'; +import '../../../../Helper/toast.dart'; +import '../../../../Model/Request/Staffs/Addstaffs/Addstaffsrequest.dart'; +import '../../../../Model/Response/Staffs/Addstaffs/Addstaffresponse.dart'; +import '../../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../../../View/More/Staffs/Staffview.dart'; + +class AddStaffController extends GetxController{ + + String? locationName; + String? locationAddress; + String? locationSuburb; + String? locationCity; + String? locationState; + String? locationPostcode; + + int?tenantId; + int?appLocationId; + int?partnerId; + + + RxInt locationId = 0.obs; + + + RxBool isLocation = false.obs; + RxBool progress = false.obs; + + + List? tenantLocation; + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + + + + TextEditingController nameController = TextEditingController(); + TextEditingController lastNameController = TextEditingController(); + TextEditingController phoneNoController = TextEditingController(); + TextEditingController emailController = TextEditingController(); + + GetLocationsRepository getLocationsRepository= GetLocationsRepository(); + AddStaffRepository addStaffRepository = AddStaffRepository(); + + + getLocation()async { + GetLocationByTenantId? result = await getLocationsRepository.getTenantLocationById(); + tenantLocation = result?.details??[]; + update(); + print('resultgetLocation${result?.toJson()}'); + } + + + describeValidation({bool isUpdate = false}) { + if (nameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter first name"); + // AwesomeHelper.createAwesome(title: "title", message: "message"); + + } else if (lastNameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter last name"); + } else if (phoneNoController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter contact no"); + } else if (emailController.text.isEmpty) { + btnController.reset(); + // Toast.showToast("Please enter email"); + Toast.showToast("Please Enter email"); + } else if (RegExp( + r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+") + .hasMatch(emailController.text) == + false) { + btnController.reset(); + // Toast.showToast("Enter valid email"); + Toast.showToast("Please enter vaid email address"); + } else if (locationId.value ==0) { + btnController.reset(); + Toast.showToast("Please select location"); + } else { + + progress.value = true; + addStaff(); + } + } + + + + + addStaff()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + appLocationId = prefs.getInt('appLocationId'); + partnerId = prefs.getInt('partnerId'); + + addStaffsResult( + CreateStaffRequest( + userid:0, + authname:"${emailController.text}", + configid: 1, + contactno:"${phoneNoController.text}", + firstname:"${nameController.text}", + lastrname:"${lastNameController.text}", + email:"${emailController.text}", + address:"$locationAddress", + suburb:"$locationSuburb", + city:"$locationCity", + state:"$locationState", + postcode:"$locationPostcode", + roleid:2, + applocationid:appLocationId, + partnerid:partnerId, + tenantid:tenantId, + locationid:locationId.value + ) + ); + + } + + addStaffsResult(CreateStaffRequest data)async{ + CreateStaffResponse? result = await addStaffRepository.addStaff(data); + if(result?.status == true){ + Get.to(()=>StaffsView()); + nameController.clear(); + lastNameController.clear(); + phoneNoController.clear(); + emailController.clear(); + locationId.value = 0; + } + + } + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Staffs/Staffscontroller.dart b/lib/Controller/More/Staffs/Staffscontroller.dart new file mode 100644 index 0000000..c9436ea --- /dev/null +++ b/lib/Controller/More/Staffs/Staffscontroller.dart @@ -0,0 +1,29 @@ +import 'package:get/get.dart'; + +import '../../../Data/Repository/Staffs/Getstaffsrepository.dart'; +import '../../../Model/Response/Staffs/Getstaffsresponse.dart'; + +class StaffsController extends GetxController{ + + bool shimmer = true; + + ListgetStaff = []; + + GetStaffsRepository getStaffsRepository = GetStaffsRepository(); + + + getStaffs()async{ + GetStaffsResponse? result = await getStaffsRepository.getStaffs(); + if(result?.status == true){ + getStaff = result?.details??[]; + shimmer = false; + update(); + } + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/Staffs/Updatestaff/Updatestaffcontroller.dart b/lib/Controller/More/Staffs/Updatestaff/Updatestaffcontroller.dart new file mode 100644 index 0000000..8dce09a --- /dev/null +++ b/lib/Controller/More/Staffs/Updatestaff/Updatestaffcontroller.dart @@ -0,0 +1,145 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import '../../../../Data/Repository/Staffs/Updatestaff/Updatestaffrepository.dart'; +import '../../../../Data/Repository/Tenantlocation/Getlocationrepository.dart'; +import '../../../../Helper/toast.dart'; +import '../../../../Model/Request/Staffs/UpdateStaff/Updatestaffrequest.dart'; +import '../../../../Model/Response/Staffs/Getstaffsresponse.dart'; +import '../../../../Model/Response/Staffs/Updatestaff/Updatestaffresponse.dart'; +import '../../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../../../View/More/Staffs/Staffview.dart'; + +class UpdateStaffController extends GetxController{ + + String? locationName; + String? locationAddress; + String? locationSuburb; + String? locationCity; + String? locationState; + String? locationPostcode; + + int?tenantId; + int?appLocationId; + int?partnerId; + int?userId; + int?roleId; + + + RxInt locationId = 0.obs; + + + RxBool isLocation = false.obs; + RxBool progress = false.obs; + + StaffDetails? staffData; + + List? tenantLocation; + + TextEditingController nameController = TextEditingController(); + TextEditingController lastNameController = TextEditingController(); + TextEditingController phoneNoController = TextEditingController(); + TextEditingController emailController = TextEditingController(); + + GetLocationsRepository getLocationsRepository= GetLocationsRepository(); + + UpdateStaffRepository updateStaffRepository = UpdateStaffRepository(); + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + + + setValues(){ + nameController.text = staffData?.firstname??''; + lastNameController.text = staffData?.lastname??''; + phoneNoController.text = staffData?.contactno??''; + emailController.text = staffData?.email??''; + locationId.value = staffData?.locationid??0; + tenantId = staffData?.tenantid??0; + appLocationId = staffData?.applocationid??0; + partnerId = staffData?.partnerid??0; + userId = staffData?.userid??0; + roleId = staffData?.roleid??0; + update(); + } + + getLocation()async { + GetLocationByTenantId? result = await getLocationsRepository.getTenantLocationById(); + tenantLocation = result?.details??[]; + update(); + print('resultgetLocation${result?.toJson()}'); + } + + + describeValidation({bool isUpdate = false}) { + if (nameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter first name"); + // AwesomeHelper.createAwesome(title: "title", message: "message"); + + } else if (lastNameController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter last name"); + } else if (phoneNoController.text.isEmpty) { + btnController.reset(); + Toast.showToast("Please Enter contact no"); + } else if (emailController.text.isEmpty) { + btnController.reset(); + // Toast.showToast("Please enter email"); + Toast.showToast("Please Enter email"); + } else if (RegExp( + r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+") + .hasMatch(emailController.text) == + false) { + btnController.reset(); + // Toast.showToast("Enter valid email"); + Toast.showToast("Please enter vaid email address"); + } else if (locationId.value ==0) { + btnController.reset(); + Toast.showToast("Please select location}"); + } else { + + progress.value = true; + updateStaff(); + } + } + + updateStaff()async { + updateStaffResult( + UpdateStaffRequest( + userid:userId, + authname:"${emailController.text}", + configid: 1, + contactno:"${phoneNoController.text}", + firstname:"${nameController.text}", + lastrname:"${lastNameController.text}", + email:"${emailController.text}", + address:"$locationAddress", + suburb:"$locationSuburb", + city:"$locationCity", + state:"$locationState", + postcode:"$locationPostcode", + roleid:roleId, + applocationid:appLocationId, + partnerid:partnerId, + tenantid:tenantId, + locationid:locationId.value + ) + ); + + } + + updateStaffResult(UpdateStaffRequest data)async{ + UpdateStaffResponse? result = await updateStaffRepository.updateStaff(data); + if(result?.status == true){ + Get.to(()=>StaffsView()); + } + } + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/More/web_view_controller.dart b/lib/Controller/More/web_view_controller.dart new file mode 100644 index 0000000..3278810 --- /dev/null +++ b/lib/Controller/More/web_view_controller.dart @@ -0,0 +1,26 @@ +import 'package:get/get.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +class WebViewAppController extends GetxController { + late final WebViewController webViewController; + final isLoading = true.obs; + + + void initializeWebViewController(String url) { + webViewController = WebViewController() + ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..loadRequest(Uri.parse(url)); + + webViewController.setNavigationDelegate( + NavigationDelegate( + onPageStarted: (_) => setLoading(true), + onPageFinished: (_) => setLoading(false), + ), + ); + } + + + void setLoading(bool value) { + isLoading.value = value; + } +} diff --git a/lib/Controller/Orders/Ordercontroller.dart b/lib/Controller/Orders/Ordercontroller.dart new file mode 100644 index 0000000..b0ce441 --- /dev/null +++ b/lib/Controller/Orders/Ordercontroller.dart @@ -0,0 +1,179 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../../Data/Repository/Summary/ordersrepository.dart'; +import '../../Helper/Logger.dart'; +import '../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../Model/Response/Summary/Ordersummaryresponse.dart'; + +class OrderController extends GetxController { + String? currentTime; + String? notificationDate; + + RxBool shimmer = true.obs; + bool filter2 = false; + RxBool searchMode = false.obs; + bool showOrder = false; + + List orderAllList = []; + List searchOrderList = []; + + var orderId; + var orderHeaderId; + var userId; + + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + + TextEditingController searchController = TextEditingController(); + + late OrderSummaryDetails orderSummaryDetails; + + RxInt currentTabIndex = 0.obs; + + RxBool isOrdersLoading = false.obs; + + bool hasLoadedOrdersOnce = false; + + Future getOrders(String period) async { + if (!hasLoadedOrdersOnce) { + isOrdersLoading.value = true; // Show loader only on first call + } + + try { + GetDeliveries? result; + + switch (period) { + case 'today': + result = await orderSummaryRepository.getOrdersToday(); + break; + case 'week': + result = await orderSummaryRepository.getOrdersWeek(); + break; + case 'month': + result = await orderSummaryRepository.getOrdersMonth(); + break; + default: + isOrdersLoading.value = false; + return; + } + + if (result != null) { + await processOrderResult(result); + logger.i('Result Json : ${result.toJson()}'); + } + } catch (e) { + print("Error fetching orders: $e"); + } finally { + isOrdersLoading.value = false; + hasLoadedOrdersOnce = true; // Set the flag after first successful call + } + } + + + + Future search(String keyword) async { + if (keyword.isEmpty) { + searchMode.value = false; + searchOrderList.clear(); + update(); + return; + } + + searchMode.value = true; + isOrdersLoading.value = true; + + try { + GetDeliveries? result; + switch (currentTabIndex.value) { + case 0: + result = await orderSummaryRepository.getOrdersToday(keyword: keyword); + break; + case 1: + result = await orderSummaryRepository.getOrdersWeek(keyword: keyword); + break; + case 2: + result = await orderSummaryRepository.getOrdersMonth(keyword: keyword); + break; + default: + isOrdersLoading.value = false; + return; + } + + if (result != null) { + searchOrderList.clear(); + searchOrderList.addAll(result.details ?? []); + logger.i('Search Result Json: ${result.toJson()}'); + } + } catch (e) { + print("Error searching orders: $e"); + } finally { + isOrdersLoading.value = false; + update(); + } + } + + + getSummary() async { + final result = await orderSummaryRepository.getOrderSummary(); + if(result?.status == true) { + orderSummaryDetails = result?.details ?? OrderSummaryDetails(); + } + update(); + } + + + + Future processOrderResult(GetDeliveries orderData) async { + logger.i('orderresultss'); + orderAllList.clear(); + if (orderData.details != null) { + print('dataDetailsif${orderData.details}'); + searchOrderList.clear(); + searchOrderList.addAll(orderData.details!); + orderAllList.addAll(orderData.details!); + print('orderalllistlengthincontroller ${orderAllList.length}'); + } + for (var currentOrdersValue in orderAllList) { + if (currentOrdersValue.orderstatus != 'created') { + showOrder = true; + print('showNoOrderssif $showOrder'); + break; + } else { + showOrder = false; + print('showNoOrder $showOrder'); + } + } + shimmer.value = false; + update(); + } + + // void search(String searchData) { + // print("datasearchData$searchData"); + // print("lenght${orderAllList.length}"); + // orderAllList.clear(); + // if (filter2) { + // List search = searchCompare + // .where((value) => + // value.pickupcontactno! + // .toLowerCase() + // .contains(searchController.text.toLowerCase())) + // .toList(); + // orderAllList = search; + // } else { + // List search = searchCompare + // .where((value) => + // value.pickupcontactno! + // .toLowerCase() + // .contains(searchController.text.toLowerCase())) + // .toList(); + // orderAllList = search; + // } + // searchMode = true; + // update(); + // } + + @override + void onInit() { + super.onInit(); + orderSummaryDetails = OrderSummaryDetails(); + } +} \ No newline at end of file diff --git a/lib/Controller/Orders/Tabs/Monthcontroller.dart b/lib/Controller/Orders/Tabs/Monthcontroller.dart new file mode 100644 index 0000000..bfc44ea --- /dev/null +++ b/lib/Controller/Orders/Tabs/Monthcontroller.dart @@ -0,0 +1,101 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; + +import '../../../Data/Repository/Summary/ordersrepository.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; + +class MonthOrderController extends GetxController{ + + String? currentTime; + String? notificationDate; + + + RxBool shimmer = true.obs; + bool filter2 = false; + bool searchMode = false; + bool showOrder = false; + + List orderAllList = []; + List searchCompare = []; + + var orderId; + var orderHeaderId; + var userId; + + + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + + TextEditingController searchController = TextEditingController(); + + + getOrders() async{ + GetDeliveries? result = await orderSummaryRepository.getOrdersMonth(); + monthOrderResult(result!); + print('printresultjson${result.toJson()}'); + } + + monthOrderResult(GetDeliveries orderData) async{ + print('todayorderresultss'); + orderAllList.clear(); + if (orderData.details!= null) { + print('dataDetailsif${orderData.details}'); + searchCompare.clear(); + searchCompare.addAll(orderData.details!); + orderAllList.addAll(orderData.details!); + print('orderalllistlengthincontroller${orderAllList.length}'); + + } + for (var currentOrdersValue in orderAllList) { + if ((currentOrdersValue.orderstatus != 'created')) { + showOrder = true; + print('showNoOrderssif$showOrder'); + break; + } else { + showOrder = false; + print('showNoOrder$showOrder'); + } + } + shimmer.value = false; + update(); + + } + + + search(String searchData) { + print("datasearchData$searchData"); + print("lenght${orderAllList.length}"); + orderAllList.clear(); + searchCompare.addAll(orderAllList); + if (filter2 == true) { + List search = searchCompare + .where((value) => + value.pickupcontactno! + .toLowerCase() + .contains(searchController.text.toLowerCase()) == + true) + .toList(); + update(); + searchMode = true; + orderAllList = search; + } else { + Listsearch = searchCompare + .where((value) => + value.pickupcontactno! + .toLowerCase() + .contains(searchController.text.toLowerCase()) == + true) + .toList(); + + update(); + searchMode = true; + orderAllList = search; + } + + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Orders/Tabs/Summarycontroller.dart b/lib/Controller/Orders/Tabs/Summarycontroller.dart new file mode 100644 index 0000000..04cb8c8 --- /dev/null +++ b/lib/Controller/Orders/Tabs/Summarycontroller.dart @@ -0,0 +1,28 @@ +import 'package:get/get.dart'; + +import '../../../Data/Repository/Summary/ordersrepository.dart'; +import '../../../Model/Response/Summary/Ordersummaryresponse.dart'; + +class OrderSummaryController extends GetxController{ + + RxBool shimmer = true.obs; + + OrderSummaryDetails getOrderSummary = OrderSummaryDetails(); + + + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + + + getOrdersSummary()async{ + OrderSummary? result = await orderSummaryRepository.getOrderSummary(); + getOrderSummary = result!.details!; + shimmer.value = false; + update(); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Orders/Tabs/Todaycontroller.dart b/lib/Controller/Orders/Tabs/Todaycontroller.dart new file mode 100644 index 0000000..99c6ef2 --- /dev/null +++ b/lib/Controller/Orders/Tabs/Todaycontroller.dart @@ -0,0 +1,104 @@ +import 'dart:async'; +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; +import 'package:get/get.dart' hide Response; +import '../../../Data/Repository/Summary/ordersrepository.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; + +class TodayOrderController extends GetxController { + String? currentTime; + String? notificationDate; + + RxBool shimmer = true.obs; + bool filter2 = false; + bool searchMode = false; + bool showOrder = false; + + List orderAllList = []; + List searchCompare = []; + + var orderId; + var orderHeaderId; + var userId; + + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + TextEditingController searchController = TextEditingController(); + + Timer? _timer; // To hold the periodic timer + + @override + void onInit() { + super.onInit(); + getOrders(); // Initial call + startAutoRefresh(); // Start periodic refresh + } + + void startAutoRefresh() { + _timer = Timer.periodic(const Duration(seconds: 3), (timer) { + getOrders(); // Refresh every 3 seconds + }); + } + + getOrders() async { + try { + GetDeliveries? result = await orderSummaryRepository.getOrdersToday(); + if (result != null) { + todayOrderResult(result); + print('printresultjson${result.toJson()}'); + } + } catch (e) { + print("Error fetching orders: $e"); + // Optionally handle error (e.g., show snackbar) + } + } + + todayOrderResult(GetDeliveries orderData) async { + print('todayorderresultss'); + orderAllList.clear(); + if (orderData.details != null) { + print('dataDetailsif${orderData.details}'); + searchCompare.clear(); + searchCompare.addAll(orderData.details!); + orderAllList.addAll(orderData.details!); + print('orderalllistlengthincontroller ${orderAllList.length}'); + } + + showOrder = orderAllList.any((order) => order.orderstatus != 'created'); + print('showOrder: $showOrder'); + + shimmer.value = false; + update(); + } + + search(String searchData) { + print("datasearchData$searchData"); + print("lenght${orderAllList.length}"); + + // Restore from searchCompare before filtering + orderAllList = List.from(searchCompare); + + if (searchData.isEmpty) { + searchMode = false; + update(); + return; + } + + List searchResults = searchCompare + .where((value) => + value.pickupcontactno! + .toLowerCase() + .contains(searchData.toLowerCase())) + .toList(); + + orderAllList = searchResults; + searchMode = true; + update(); + } + + @override + void onClose() { + _timer?.cancel(); // Cancel timer to prevent memory leaks + searchController.dispose(); + super.onClose(); + } +} \ No newline at end of file diff --git a/lib/Controller/Orders/Tabs/Weekcontroller.dart b/lib/Controller/Orders/Tabs/Weekcontroller.dart new file mode 100644 index 0000000..e80728f --- /dev/null +++ b/lib/Controller/Orders/Tabs/Weekcontroller.dart @@ -0,0 +1,101 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; + +import '../../../Data/Repository/Summary/ordersrepository.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; + +class WeekOrderController extends GetxController{ + + String? currentTime; + String? notificationDate; + + + RxBool shimmer = true.obs; + bool filter2 = false; + bool searchMode = false; + bool showOrder = false; + + List orderAllList = []; + List searchCompare = []; + + var orderId; + var orderHeaderId; + var userId; + + + OrderSummaryRepository orderSummaryRepository = OrderSummaryRepository(); + + TextEditingController searchController = TextEditingController(); + + + getOrders()async{ + GetDeliveries? result = await orderSummaryRepository.getOrdersWeek(); + weekOrderResult(result!); + print('printresultjson${result.toJson()}'); + } + + weekOrderResult(GetDeliveries orderData) async{ + print('todayorderresultss'); + orderAllList.clear(); + if (orderData.details!= null) { + print('dataDetailsif${orderData.details}'); + searchCompare.clear(); + searchCompare.addAll(orderData.details!); + orderAllList.addAll(orderData.details!); + print('orderalllistlengthincontroller${orderAllList.length}'); + + } + for (var currentOrdersValue in orderAllList) { + if ((currentOrdersValue.orderstatus != 'created')) { + showOrder = true; + print('showNoOrderssif$showOrder'); + break; + } else { + showOrder = false; + print('showNoOrder$showOrder'); + } + } + shimmer.value = false; + update(); + + } + + + search(String searchData) { + print("datasearchData$searchData"); + print("lenght${orderAllList.length}"); + orderAllList.clear(); + searchCompare.addAll(orderAllList); + if (filter2 == true) { + List search = searchCompare + .where((value) => + value.pickupcontactno! + .toLowerCase() + .contains(searchController.text.toLowerCase()) == + true) + .toList(); + update(); + searchMode = true; + orderAllList = search; + } else { + Listsearch = searchCompare + .where((value) => + value.pickupcontactno! + .toLowerCase() + .contains(searchController.text.toLowerCase()) == + true) + .toList(); + + update(); + searchMode = true; + orderAllList = search; + } + + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/Orders/order_controller_2.dart b/lib/Controller/Orders/order_controller_2.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/Controller/Rider_assign/rider_assign_controller.dart b/lib/Controller/Rider_assign/rider_assign_controller.dart new file mode 100644 index 0000000..e1ef63a --- /dev/null +++ b/lib/Controller/Rider_assign/rider_assign_controller.dart @@ -0,0 +1,220 @@ +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import '../../Data/Repository/Notification/Notificationrepository.dart'; +import '../../Data/Repository/Rider/get_rider_repo.dart'; +import '../../Data/Repository/update_delivery/create_delivery.dart'; +import '../../Data/Repository/update_delivery/update_delivery.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/toast.dart'; +import '../../Model/Request/Notification/Notification_request_rider.dart'; +import '../../Model/Request/Notification/Notificationrequest.dart'; +import '../../Model/Request/create_delivery_request/create_delivery_request.dart'; +import '../../Model/Request/update_delivery/update_delivery.dart'; +import '../../Model/Response/Notification/Notificationresponse.dart'; +import '../../Model/Response/Orders/Getorderresponse.dart'; +import '../../Model/Response/Riders/get_rider_model.dart'; +import '../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../Model/Response/create_delivery_response/create_delivery_request.dart'; +import '../../Model/Response/update_delivery_response/update_delivery_response.dart'; +import '../../View/Home/Homeview.dart'; + +class RiderAssignController extends GetxController { + + List riderDetails = []; + + final RidersRepository ridersRepository = RidersRepository(); + + + getRiders(appLocationId) async { + GetRiderPoolsModel? result = await ridersRepository.getRiders(1); + getRidersResult(result!); + } + + bool isSelectAll = false; + List riderFcmToken = []; + int? riderUserIdList; + int? partnerId; + int? shiftId; + String? riderStatus; + RxBool shimmer = true.obs; + String? assignTime; + bool isIdle = false; + + RoundedLoadingButtonController btnNotifyRiderController = RoundedLoadingButtonController(); + + + getRidersResult(GetRiderPoolsModel data) { + if (data.code == 200) { + logger.i('RiderPool ${data.details}'); + if (data.details!.isNotEmpty) { + for (int i = 0; i < data.details!.length; i++) { + var index = riderDetails.indexWhere( + (element) => + element.userid == data.details![i].userid); + if (index == -1) { + riderDetails.add(data.details![i]); + } + } + } + logger.i('riderDetails $riderDetails'); + if (isSelectAll == true) { + riderFcmToken.clear(); + riderUserIdList = 0; + partnerId = 0; + shiftId = 0; + riderStatus = ''; + + for (var riderDetail in riderDetails) { + riderFcmToken.add(riderDetail.userfcmtoken); + riderUserIdList = riderDetail.userid!; + partnerId = riderDetail.partnerid!; + shiftId = riderDetail.shiftid!; + riderStatus = riderDetail.status; + print('shiftId $shiftId'); + } + } else { + riderFcmToken.clear(); + riderUserIdList = 0; + partnerId = 0; + shiftId = 0; + riderStatus = ''; + } + logger.i('riderFcmToken $riderFcmToken'); + logger.i('partnerIdinprint $partnerId'); + logger.i('shiftId $shiftId'); + logger.i('riderStatus $riderStatus'); + shimmer.value = false; + update(); + } + else { + shimmer.value = false; + update(); + Toast.showToast("${data.message}"); + } + } + + updateDelivery(OrderDetails data) async { + assignTime = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + + + updateDeliveryResult( + UpdateDeliveryRequest( + deliveryid: data.deliveryid, + userid: riderUserIdList, + orderheaderid: data.orderheaderid, + assigntime: assignTime, + orderstatus: 'pending', + ), + ); + } + + UpdateDeliveryRepository updateDeliveryRepository = UpdateDeliveryRepository(); + + updateDeliveryResult(UpdateDeliveryRequest data) async { + UpdateDeliveryResponse? result = await updateDeliveryRepository + .updateDelivery(data); + if (result?.status == true) { + logger.i('UpdateDeliveyStatus '); + Get.to(() => HomeView(selectedIndex: 1)); + sendRiderNotification(); + } + } + + final createDeliveryRepository createDeliveryRepo = createDeliveryRepository(); + + + Future createDelivery(List orders) async { + String assignTime = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now()); + + List deliveries = orders.map((data) { + DateTime parsedDate = DateTime.parse(data.deliverydate.toString()); + String formattedDeliveryDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(parsedDate); + + return CreateDelivery( + assigntime: assignTime, + applocationid: data.applocationid, + tenantid: data.tenantid, + customerid: data.customerid, + categoryid: data.categoryid, + configid: data.configid, + deliveryaddress: data.deliveryaddress, + deliverycharges: data.deliverycharge?.toDouble(), + deliverycontactno: data.deliverycontactno, + deliverycustomer: data.deliverycustomer, + deliverycustomerid: data.customerid, + deliverydate: formattedDeliveryDate, + deliveryid: data.deliveryid, + deliverylocation: "", + deliverylocationid: data.deliverylocationid, + droplat: data.deliverylat, + droplon: data.deliverylong, + itemcount: data.itemcount, + kms: "0.0", + locationid: data.locationid, + moduleid: data.moduleid, + orderamount: 0, + orderheaderid: data.orderheaderid, + orderid: data.orderid, + ordernotes: data.ordernotes, + orderstatus: "pending", + partnerid: data.partnerid, + paymenttype: 42, + pickupaddress: data.pickupaddress, + pickupcontactno: data.pickupcontactno, + pickupcustomer: data.pickupcustomer, + pickuplat: data.pickuplat, + pickuplocation: "", + pickuplocationid: data.pickuplocationid, + pickuplon: data.pickuplong, + subcategoryid: data.subcategoryid, + userid: riderUserIdList, + ); + }).toList(); + + await createDeliveryResult(deliveries); + } + + + + + Future createDeliveryResult(List deliveries) async { + for (CreateDelivery data in deliveries) { + CreateDeliveryResponse? result = await createDeliveryRepo.createDelivery(deliveries); + if (result?.status == true) { + logger.i('UpdateDeliveryStatus for delivery ID: ${data.deliveryid}'); + } + } + btnNotifyRiderController.reset(); + /// Navigate to HomeView and send notification after processing all deliveries + Get.to(() => HomeView(selectedIndex: 0)); + sendRiderNotification(); + } + + + sendRiderNotification() async { + sendRiderNotificationResult( + RiderNotificationRequest( + notification: NotificationRider( + title: "NearleXpress", + image: "", + body: "Order have been placed for delivery", + sound: "ring", + ), + token: riderFcmToken.join(','), + ) + ); + } + + final NotificationRepository notificationRepository = NotificationRepository(); + + // + sendRiderNotificationResult(RiderNotificationRequest data)async{ + NotificationResponse? result = await notificationRepository.notifyRider(data); + if(result?.status == true){ + Toast.showToast('Notified Rider Successfully'); + } + } + +} \ No newline at end of file diff --git a/lib/Controller/Sucessreview/Sucessscreencontroller.dart b/lib/Controller/Sucessreview/Sucessscreencontroller.dart new file mode 100644 index 0000000..494a81f --- /dev/null +++ b/lib/Controller/Sucessreview/Sucessscreencontroller.dart @@ -0,0 +1,24 @@ +import 'package:confetti/confetti.dart'; +import 'package:get/get.dart'; + +class SuccessScreenController extends GetxController{ + + late ConfettiController confettiController; + + + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + confettiController = ConfettiController(duration: const Duration(seconds: 60)); + } + + @override + void dispose() { + // TODO: implement dispose + super.dispose(); + confettiController.dispose(); + } +} + diff --git a/lib/Controller/Tenantlocation/Tenantlocationcontroller.dart b/lib/Controller/Tenantlocation/Tenantlocationcontroller.dart new file mode 100644 index 0000000..806d6b3 --- /dev/null +++ b/lib/Controller/Tenantlocation/Tenantlocationcontroller.dart @@ -0,0 +1,40 @@ +import 'package:get/get.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import '../../Data/Repository/Tenantlocation/Getlocationrepository.dart'; +import '../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; + +class TenantLocationController extends GetxController{ + + String? latitude; + String? longitude; + String? address; + + int selectedAddressIndex = -1; + int locationId = 0; + + ListgetLocations = []; + + final RoundedLoadingButtonController btnController = RoundedLoadingButtonController(); + + + GetLocationsRepository getLocationsRepository= GetLocationsRepository(); + + + getTenantLocation()async { + GetLocationByTenantId? result = await getLocationsRepository.getTenantLocationById(); + if (result?.code == 200) { + getLocations = result?.details??[]; + update(); + } + + print('resultgetLocation ${result?.toJson()}'); + } + + + @override + void onInit() { + getTenantLocation(); + // TODO: implement onInit + super.onInit(); + } +} \ No newline at end of file diff --git a/lib/Controller/map_controller.dart b/lib/Controller/map_controller.dart new file mode 100644 index 0000000..dab4c85 --- /dev/null +++ b/lib/Controller/map_controller.dart @@ -0,0 +1,30 @@ +import 'package:get/get_rx/src/rx_types/rx_types.dart'; +import 'package:get/get_state_manager/src/simple/get_controllers.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; + +class MapController extends GetxController { + RxDouble zoom = 13.0.obs; + GoogleMapController? googleMapController; + + void setController(GoogleMapController controller) { + googleMapController = controller; + } + + void zoomIn() { + zoom.value++; + if (googleMapController != null) { + googleMapController!.animateCamera( + CameraUpdate.zoomTo(zoom.value), + ); + } + } + + void zoomOut() { + zoom.value--; + if (googleMapController != null) { + googleMapController!.animateCamera( + CameraUpdate.zoomTo(zoom.value), + ); + } + } +} \ No newline at end of file diff --git a/lib/Controller/products/product_controller.dart b/lib/Controller/products/product_controller.dart new file mode 100644 index 0000000..0b68192 --- /dev/null +++ b/lib/Controller/products/product_controller.dart @@ -0,0 +1,164 @@ +import 'package:flutter/cupertino.dart'; +import 'package:get/get.dart'; + +import '../../Data/Repository/products_repo/get_products.dart'; +import '../../Helper/Logger.dart'; +import '../../Model/Request/products/update_product.dart'; +import '../../Model/Response/Orders/Getorderresponse.dart'; +import '../../Model/Response/products/product_info.dart'; +import '../../Model/Response/products/product_response.dart'; +import '../../Model/Response/products/product_update_response.dart'; + +class ProductController extends GetxController { + final ProductsRepository productsRepository = ProductsRepository(); + + /// Main list used by UI + RxList product = [].obs; + + /// Backup full list for search restore + RxList masterProductList = [].obs; + + RxBool isProductLoading = true.obs; + RxSet loadingIndices = {}.obs; + RxBool isSearchModeEnable = false.obs; + + var productDetail = [].obs; + + TextEditingController productSearchController = TextEditingController(); + + @override + void onClose() { + productSearchController.dispose(); + super.onClose(); + } + + // --------------------------------------------------------- + // Toggle Availability + // --------------------------------------------------------- + Future toggleAvailability(int index) async { + loadingIndices.add(index); + update(); + + final oldProduct = product[index]; + final newStatus = oldProduct.status == 'Active' ? 'outofstock' : 'Active'; + + // Optimistic local update + product[index] = oldProduct.copyWith(status: newStatus); + update(); + + try { + await updateProduct(oldProduct.productlocationid ?? 0, newStatus); + } catch (e) { + // API failed → revert UI + product[index] = oldProduct; + update(); + Get.snackbar('Error', 'Failed to update status'); + } finally { + loadingIndices.remove(index); + update(); + } + } + + bool hasLoadedOnce = false; + + // --------------------------------------------------------- + // Fetch Products (API) + // --------------------------------------------------------- + Future getProducts({String? keyword}) async { + if (keyword == null || keyword.isEmpty) { + isSearchModeEnable.value = false; + } else { + isSearchModeEnable.value = true; + } + + if (!isSearchModeEnable.value && !hasLoadedOnce) { + isProductLoading.value = true; + update(); + } + + try { + final result = await productsRepository.getProducts( + subCategoryId: 0, + keyword: keyword, + ); + + // Store full list + masterProductList.assignAll(result?.details ?? []); + + // Show full list + product.assignAll(masterProductList); + + logger.i('Products Loaded : ${product.length}'); + } catch (e) { + logger.e('Error loading products: $e'); + Get.snackbar('Error', 'Failed to load products'); + } finally { + isProductLoading.value = false; + hasLoadedOnce = true; + update(); + } + } + + // --------------------------------------------------------- + // Local Search Filter + // --------------------------------------------------------- + void applySearch(String keyword) { + if (keyword.isEmpty) { + product.assignAll(masterProductList); + update(); + return; + } + + final filtered = masterProductList.where((p) { + return (p.productname ?? "") + .toLowerCase() + .contains(keyword.toLowerCase()); + }).toList(); + + product.assignAll(filtered); + update(); + } + + // --------------------------------------------------------- + // Update Product (API) + // --------------------------------------------------------- + Future updateProductStatus(ProductUpdateRequest data) async { + try { + final result = await productsRepository.productUpdate(data); + logger.i('Product Update: ${result?.message}'); + + if (result?.status != true) { + Get.snackbar('Failed', result?.message ?? 'Update failed'); + } + } catch (e) { + logger.e('Update Exception: $e'); + Get.snackbar('Error', 'Network error'); + rethrow; + } + } + + Future updateProduct(int productlocationid, String status) async { + await updateProductStatus( + ProductUpdateRequest( + productid: productlocationid, + productstatus: status, + ), + ); + } + + // --------------------------------------------------------- + // Order → Product Details + // --------------------------------------------------------- + Future getProductDetails(int orderHeaderId) async { + productDetail.clear(); + + try { + final result = await productsRepository.getProductDetail(orderHeaderId); + productDetail.assignAll(result?.details ?? []); + logger.i('Order ProductDetails loaded: ${productDetail.length}'); + } catch (e) { + logger.e('Failed loading details: $e'); + Get.snackbar('Error', 'Could not load items'); + } + } +} diff --git a/lib/Data/Provider/Admintoken/Getadmintokenprovider.dart b/lib/Data/Provider/Admintoken/Getadmintokenprovider.dart new file mode 100644 index 0000000..ac6f7ab --- /dev/null +++ b/lib/Data/Provider/Admintoken/Getadmintokenprovider.dart @@ -0,0 +1,33 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../Model/Response/Admintoken/Admintokenresponse.dart'; + +class GetAdminTokenProvider{ + + Future getAdminToken(String urldata,) async { + GetAdminToken? getAdminToken; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }); + print('GetAdminToken!!!!!!!!${response.body}'); + print('GetAdminTokenproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getAdminToken = GetAdminToken.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print('printinerrorcatch${e.toString()}'); + print("error"); + } + return getAdminToken; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Appcategory/Appcategoryprovider.dart b/lib/Data/Provider/Appcategory/Appcategoryprovider.dart new file mode 100644 index 0000000..97f1633 --- /dev/null +++ b/lib/Data/Provider/Appcategory/Appcategoryprovider.dart @@ -0,0 +1,69 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import 'package:http/http.dart' as http; +import 'package:logger/logger.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Model/Response/Appcategory/Appcategoryresponse.dart'; +import '../../../Model/Response/Appcategory/app_category_response.dart'; + + +class AppCategoryProvider{ + + Future getAppCategory(String url) async { + try { + final response = await http.get( + Uri.parse(url), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + ); + + logger.i('Category API URL: $url'); + logger.i('Status Code: ${response.statusCode}'); + logger.i('Response Body: ${response.body}'); + + if (response.statusCode == 200) { + final Map json = jsonDecode(response.body); + return GetAppCategories.fromJson(json); + } else { + logger.e('Failed to load categories: ${response.statusCode}'); + return null; + } + } catch (e) { + logger.e('Error in getAppCategory: $e'); + return null; + } + } + +} + + + +class SubCategoryProvider { + final logger = Logger(); + + Future> fetchSubCategories() async { + const url = 'https://fiesta.nearle.app/live/api/v1/mob/utils/getsubcategories'; + try { + final response = await http.get(Uri.parse(url)); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + if (data['status'] == true && data['details'] != null) { + final List list = data['details']; + return list.map((e) => SubCategory.fromJson(e)).toList(); + } else { + logger.w('No subcategories found or invalid response'); + return []; + } + } else { + logger.e('Failed with status: ${response.statusCode}'); + return []; + } + } catch (e) { + logger.e('Error fetching subcategories: $e'); + return []; + } + } +} diff --git a/lib/Data/Provider/Applocation/Applocationprovider.dart b/lib/Data/Provider/Applocation/Applocationprovider.dart new file mode 100644 index 0000000..557b0ad --- /dev/null +++ b/lib/Data/Provider/Applocation/Applocationprovider.dart @@ -0,0 +1,29 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Model/Response/Applocations/Applocationresponse.dart'; + + +class AppLocationProvider{ + + Future getAppLocations(String urldata,) async { + GetAppLocations? getAppLocations; + try { + final url = Uri.parse(urldata); + + final response = await get(url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }); + print('getAppLocationsproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getAppLocations = GetAppLocations.fromJson(parsedJson); + } catch (e) { + print(e.toString()); + print("error"); + } + return getAppLocations; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Authentication/Createtenantuser/Createtenantuserprovider.dart b/lib/Data/Provider/Authentication/Createtenantuser/Createtenantuserprovider.dart new file mode 100644 index 0000000..696098d --- /dev/null +++ b/lib/Data/Provider/Authentication/Createtenantuser/Createtenantuserprovider.dart @@ -0,0 +1,46 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../../Model/Request/Authentication/Createuser/Createuserresponse.dart'; +import '../../../../Model/Response/Authentication/Createtenantuser/Createtenantuserresponse.dart'; + + + +class CreateTenantUserProviders{ + + Future createTenantUser(CreateTenantUser data,String urldata,) async { + CreateTenantUserResponse? createTenantUserResponse; + try { + + final url = Uri.parse('$urldata'); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('CreateTenantUserresponsebody ${response.body}'); + print('CreateTenantUserdata ${data.toJson()}'); + print('CreateTenantUserdatatenantlocations ${data.tenantlocations!.toJson()}'); + print('CreateTenantUserdatatenantsubscriptions ${data.tenantsubscriptions!.toJson()}'); + print('CreateTenantUserurlsssssssssss ${urldata.toString()}'); + + Map parsedJson = json.decode(response.body.toString()); + + + + + createTenantUserResponse = CreateTenantUserResponse.fromJson(parsedJson); + print('createOrderinprovider${createTenantUserResponse}'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return createTenantUserResponse; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Authentication/loginprovider.dart b/lib/Data/Provider/Authentication/loginprovider.dart new file mode 100644 index 0000000..969f0ba --- /dev/null +++ b/lib/Data/Provider/Authentication/loginprovider.dart @@ -0,0 +1,43 @@ +import 'dart:convert'; +import 'package:http/http.dart'; + +import '../../../Model/Request/Authentication/Loginrequest.dart'; +import '../../../Model/Response/Authentication/Loginresponse.dart'; + +class LoginProvider{ + + Future signIn(String urldata, LoginRequest data) async { + LoginResponse? loginResponse; + + try { + final url = Uri.parse(urldata); + final response = await post(url, + + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + } + ); + print('urldatasssssssssssssss $urldata'); + print('LoginRequestdata ${data.toJson()}'); + print("signIncontactnosss${data.contactno}"); + print("signIndevicetype${data.devicetype}"); + print("signInconfigid${data.configid}"); + print("deviceidsssssssss${data.deviceid}"); + print("customertokensssss${data.userfcmtoken}"); + print("responseeeeeedata ${response.body}"); + + Map parsedJson = json.decode(response.body.toString()); + + loginResponse = LoginResponse.fromJson(parsedJson); + print('provider result$loginResponse'); + } catch (e) { + print(e.toString()); + print("errr"); + } + return loginResponse; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/CreatOrder/CreateOrderProvider.dart b/lib/Data/Provider/CreatOrder/CreateOrderProvider.dart new file mode 100644 index 0000000..dbff200 --- /dev/null +++ b/lib/Data/Provider/CreatOrder/CreateOrderProvider.dart @@ -0,0 +1,44 @@ +import 'dart:convert'; +import 'package:http/http.dart'; + +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/Createorder/Createorderrequest.dart'; +import '../../../Model/Response/Createorder/CreateOrderResponsemodel.dart'; + +class CreateOrderProviders{ + Future createOrder(CreateOrder data,String urldata,) async { + CreateOrderResponse? createOrder; + try { + + final url = Uri.parse(urldata); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('CreateOrderresponsebody ${response.body}'); + print('CreateOrderdatatoJson ${data.toJson()}'); + print('pickuplocationid ${data.pickup?.customerid}'); + print('droplocationid ${data.drop?.customerid}'); + logger.i(json.encode(data.toJson())); + + // print('headerssssssssss ${response.headers}'); + print('CreateOrderurlsssssssssss ${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + createOrder = CreateOrderResponse.fromJson(parsedJson); + print('createOrderinprovider${createOrder}'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return createOrder; + } + +} + diff --git a/lib/Data/Provider/Createcustomer/Createcustomerprovider.dart b/lib/Data/Provider/Createcustomer/Createcustomerprovider.dart new file mode 100644 index 0000000..923b3f3 --- /dev/null +++ b/lib/Data/Provider/Createcustomer/Createcustomerprovider.dart @@ -0,0 +1,69 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart'; +import '../../../Model/Request/Createcustomer/Createcustomerrequest.dart'; +import '../../../Model/Response/Createcustomer/Createcustomerresponse.dart'; +import '../../../Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart'; + +class CreateCustomerProvider{ + + Future createCustomer(CreateCustomers data,String urldata,) async { + CreateCustomerResponse? createCustomers; + try { + + final url = Uri.parse('$urldata'); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('createCustomercontactno${data.firstname}'); + print('createCustomercontactno${data.contactno}'); + print('createCustomerapplocationid${data.applocationid}'); + print('createCustomercontactno${data}'); + + print('responsebodyincreatecustomer${response.body}'); + print('urldatacreatecustomer ${url}'); + Map parsedJson = json.decode(response.body.toString()); + + createCustomers = CreateCustomerResponse.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return createCustomers; + } + + Future createDeliveryAddress(CreateDeliveryAddress data,String urldata,) async { + CreateDeliveryAddressResponse? createDeliveryAddress; + try { + + final url = Uri.parse('$urldata'); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('customeridinproviderdada${data.customerid}'); + print('responsebodyincreateDeliveryAddress ${response.body}'); + print('urldatacreateDeliveryAddress ${url}'); + Map parsedJson = json.decode(response.body.toString()); + + createDeliveryAddress = CreateDeliveryAddressResponse.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return createDeliveryAddress; + } + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Customers/getCustomerbytenantidprovider.dart b/lib/Data/Provider/Customers/getCustomerbytenantidprovider.dart new file mode 100644 index 0000000..3fe934a --- /dev/null +++ b/lib/Data/Provider/Customers/getCustomerbytenantidprovider.dart @@ -0,0 +1,142 @@ +import 'dart:convert'; +import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +import 'package:http/http.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; + + +class GetCustomersByTenantIdProvider { + + static const cacheKey = 'customerCache'; + final cacheManager = DefaultCacheManager(); + + Future getCustomerByTenantId(String urlData) async { + GetCustomerByTenantId? getCustomerByTenantId; + + logger.i('GetCustomerURL : ${urlData}'); + + try { + /// 1. Attempt to load from cache first + final fileInfo = await cacheManager.getFileFromCache(cacheKey); + + String? cachedData; + + if (fileInfo != null && fileInfo.file.existsSync()) { + cachedData = await fileInfo.file.readAsString(); + final parsedJson = json.decode(cachedData); + getCustomerByTenantId = GetCustomerByTenantId.fromJson(parsedJson); + logger.i("......Customer data Loaded from cache......"); + } + + /// 2.Always make a request to check for updates + final response = await get(Uri.parse(urlData), headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }); + + if (response.statusCode == 200) { + final freshData = response.body; + + /// Compare with cached data (optional optimization: hash/ETag/updatedAt) + if (cachedData == null || freshData != cachedData) { + logger.i("......Updating cache with fresh API data......."); + + /// Update the cache with fresh data + await cacheManager.putFile( + cacheKey, + response.bodyBytes, + fileExtension: 'json', + key: cacheKey, + ); + + final parsedJson = json.decode(freshData); + getCustomerByTenantId = GetCustomerByTenantId.fromJson(parsedJson); + } else { + logger.i(".........Customer API data is same as cache, no update required.........."); + } + } else { + logger.w("Customer API responded with status code: ${response.statusCode}"); + } + } catch (e) { + logger.e("Error fetching customer deals: $e"); + } + + return getCustomerByTenantId; + } + + + Future getTenantsByTenantId(String urldata,) async { + GetCustomerByTenantId? getCustomerByTenantId; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getCustomerByTenantId!!!!!!!!${response.body}'); + print('getCustomerByTenantIdproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getCustomerByTenantId = GetCustomerByTenantId.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getCustomerByTenantId; + } + + + Future getDropCustomerByTenantId(String urldata,) async { + GetDropCustomerByTenantId? getDropCustomerByTenantId; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getDropCustomerByTenantIdresponse!!!!!!!!${response.body}'); + print('getDropCustomerByTenantIdproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getDropCustomerByTenantId = GetDropCustomerByTenantId.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getDropCustomerByTenantId; + } + + Future getDropTenantByTenantId(String urldata,) async { + GetDropCustomerByTenantId? getDropCustomerByTenantId; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getDropCustomerByTenantIdresponse!!!!!!!!${response.body}'); + print('getDropCustomerByTenantIdproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getDropCustomerByTenantId = GetDropCustomerByTenantId.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getDropCustomerByTenantId; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Getcustomeraddress/Getcustomeraddressprovider.dart b/lib/Data/Provider/Getcustomeraddress/Getcustomeraddressprovider.dart new file mode 100644 index 0000000..9aafd22 --- /dev/null +++ b/lib/Data/Provider/Getcustomeraddress/Getcustomeraddressprovider.dart @@ -0,0 +1,32 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Model/Response/Getcustomeraddress/GetCustomerAddress.dart'; + + +class GetCustomersAddressProvider{ + + Future getCustomerAddress(String urldata,) async { + GetCustomerAddress? getCustomerAddress; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getCustomerAddress!!!!!!!!${response.body}'); + print('getCustomerAddressproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getCustomerAddress = GetCustomerAddress.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getCustomerAddress; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Getcustomerbynumber/Getcustomerbynumberprovider.dart b/lib/Data/Provider/Getcustomerbynumber/Getcustomerbynumberprovider.dart new file mode 100644 index 0000000..9619fb8 --- /dev/null +++ b/lib/Data/Provider/Getcustomerbynumber/Getcustomerbynumberprovider.dart @@ -0,0 +1,32 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Model/Response/Getcustomerbynumber/Getcustomerbynumberresponse.dart'; + +class GetCustomersByNumberProvider{ + + Future getCustomerByNumber(String urldata,) async { + GetCustomerByNumber? getCustomerByNumber; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getCustomerByNumber!!!!!!!!${response.body}'); + print('getCustomerByNumberproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getCustomerByNumber = GetCustomerByNumber.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getCustomerByNumber; + } + +} + diff --git a/lib/Data/Provider/Location/Addlocation/Addlocationprovider.dart b/lib/Data/Provider/Location/Addlocation/Addlocationprovider.dart new file mode 100644 index 0000000..e962e92 --- /dev/null +++ b/lib/Data/Provider/Location/Addlocation/Addlocationprovider.dart @@ -0,0 +1,46 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../../Model/Request/Location/Addlocation/Addlocationrequest.dart'; +import '../../../../Model/Response/Location/Addlocation/Addlocationresponse.dart'; + +class AddLocationProvider{ + Future addLocation(AddLocation data,String urldata,) async { + AddLocationResponse? addLocationResponse; + try { + + final url = Uri.parse(urldata); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('addLocationResponseresponsebody ${response.body}'); + print('addLocationResponsedatatoJson ${data.toJson()}'); + print('addLocationResponseresponseorderdate ${data.tenantid}'); + print('addLocationResponseresponsetenantid ${data.locationid}'); + print('addLocationResponseresponsemoduleid ${data.moduleid}'); + print('addLocationResponseresponsepartnerid ${data.partnerid}'); + + + + // print('headerssssssssss ${response.headers}'); + print('addLocationResponseurlsssssssssss ${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + addLocationResponse = AddLocationResponse.fromJson(parsedJson); + print('createOrderinprovider $addLocationResponse'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return addLocationResponse; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Location/GetLocation/getlocationprovider.dart b/lib/Data/Provider/Location/GetLocation/getlocationprovider.dart new file mode 100644 index 0000000..efc6a40 --- /dev/null +++ b/lib/Data/Provider/Location/GetLocation/getlocationprovider.dart @@ -0,0 +1,37 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; + +import '../../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; + + +class GetLocationsProvider{ + + Future getLocationById(String urldata) async { + GetLocationByTenantId? getLocationById; + try { + + final url = Uri.parse('$urldata',); + + final response = await http.get(url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }, + ); + print('GetLocation!!!!!!!!${response.body}'); + print('GetLocationproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getLocationById = GetLocationByTenantId.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getLocationById; + } + + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Location/Updatelocation/Updatelocationprovider.dart b/lib/Data/Provider/Location/Updatelocation/Updatelocationprovider.dart new file mode 100644 index 0000000..02a12b4 --- /dev/null +++ b/lib/Data/Provider/Location/Updatelocation/Updatelocationprovider.dart @@ -0,0 +1,48 @@ + +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../../Model/Request/Location/Updatelocation/Updatelocationrequest.dart'; +import '../../../../Model/Response/Location/Updatelocation/Updatelocationresponse.dart'; + +class UpdateLocationProvider{ + + Future updateLocation(UpdateLocation data,String urldata,) async { + UpdateLocationResponse? updateLocationResponse; + try { + + final url = Uri.parse(urldata); + + final response = await put(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('updateLocationResponseresponsebody ${response.body}'); + print('updateLocationResponsedatatoJson ${data.toJson()}'); + print('updateLocationResponseresponseorderdate ${data.tenantid}'); + print('updateLocationResponseresponsetenantid ${data.locationid}'); + print('updateLocationResponseresponsemoduleid ${data.moduleid}'); + print('updateLocationResponseresponsepartnerid ${data.partnerid}'); + + + + // print('headerssssssssss ${response.headers}'); + print('CreateOrderurlsssssssssss ${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + updateLocationResponse = UpdateLocationResponse.fromJson(parsedJson); + print('createOrderinprovider $updateLocationResponse'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return updateLocationResponse; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Notification/Notificationprovider.dart b/lib/Data/Provider/Notification/Notificationprovider.dart new file mode 100644 index 0000000..191c8c9 --- /dev/null +++ b/lib/Data/Provider/Notification/Notificationprovider.dart @@ -0,0 +1,85 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/Notification/Notification_request_rider.dart'; +import '../../../Model/Request/Notification/Notificationrequest.dart'; +import '../../../Model/Response/Authentication/Sms/Smsresponse.dart'; +import '../../../Model/Response/Notification/Notificationresponse.dart'; + +class NotificationProvider{ + + + Future createNotification(NotificationRequest data,String urldata,) async { + NotificationResponse? notificationResponse; + try { + + final url = Uri.parse(urldata); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + logger.i(json.encode(data.toJson())); + + print('notificationResponsebody ${response.body}'); + print('notificationdatatoJson ${data.toJson()}'); + + + print('CreateNotificationurlsssssssssss ${urldata.toString()}'); + + Map parsedJson = json.decode(response.body.toString()); + + notificationResponse = NotificationResponse.fromJson(parsedJson); + + print('createOrderinprovider ${notificationResponse.toJson()}'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return notificationResponse; + } + + + Future NotifyRider(RiderNotificationRequest data,String urldata,) async { + NotificationResponse? notificationResponse; + try { + + final url = Uri.parse(urldata); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + logger.i(json.encode(data.toJson())); + + print('notificationResponsebody ${response.body}'); + print('notificationdatatoJson ${data.toJson()}'); + + + print('CreateNotificationurlsssssssssss ${urldata.toString()}'); + + Map parsedJson = json.decode(response.body.toString()); + + notificationResponse = NotificationResponse.fromJson(parsedJson); + + print('createOrderinprovider ${notificationResponse.toJson()}'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return notificationResponse; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Orders/Ordersprovider.dart b/lib/Data/Provider/Orders/Ordersprovider.dart new file mode 100644 index 0000000..ab6cbc4 --- /dev/null +++ b/lib/Data/Provider/Orders/Ordersprovider.dart @@ -0,0 +1,32 @@ +import 'dart:convert'; +import 'package:NearleDailyBusiness/Helper/Logger.dart'; +import 'package:http/http.dart' as http; + +import '../../../Model/Response/Orders/Getorderresponse.dart'; + + +class OrdersProvider { + Future getOrders(String url) async { + try { + print('🌐 GetOrderUrl : $url'); + final response = await http.get(Uri.parse(url)); + + print('📦 Response Status: ${response.statusCode}'); + print('📦 Response Body: ${response.body}'); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + + logger.i("GetOrders Response: ${jsonEncode(data)}"); + + return GetOrders.fromJson(data); + } else { + print('❌ Failed to load orders: ${response.reasonPhrase}'); + return null; + } + } catch (e) { + print('🚨 Exception in getOrders: $e'); + return null; + } + } +} diff --git a/lib/Data/Provider/Products_provider/get_products.dart b/lib/Data/Provider/Products_provider/get_products.dart new file mode 100644 index 0000000..2923a42 --- /dev/null +++ b/lib/Data/Provider/Products_provider/get_products.dart @@ -0,0 +1,136 @@ +import 'dart:convert'; +import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +import 'package:http/http.dart'; +import 'package:http/http.dart' as http; + +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/products/update_product.dart'; +import '../../../Model/Response/products/product_info.dart'; +import '../../../Model/Response/products/product_response.dart'; +import '../../../Model/Response/products/product_update_response.dart'; + + + +class GetProductsProvider { + + static const cacheKey = 'productCache'; + final cacheManager = DefaultCacheManager(); + + Future getProducts(String urlData) async { + GetProducts? getProducts; + logger.i('Get all products url data : $urlData'); + + try { + // 1. Cache first + final fileInfo = await cacheManager.getFileFromCache(cacheKey); + String? cachedData; + if (fileInfo != null && fileInfo.file.existsSync()) { + cachedData = await fileInfo.file.readAsString(); + getProducts = GetProducts.fromJson(json.decode(cachedData)); + logger.i("Loaded data from cache"); + } + + // 2. Always hit the network + final response = await http.get( + Uri.parse(urlData), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + ); + + if (response.statusCode == 200) { + final freshData = response.body; + + print(response); + + if (cachedData == null || freshData != cachedData) { + logger.i("Updating cache with fresh data"); + await cacheManager.putFile( + cacheKey, + response.bodyBytes, + fileExtension: 'json', + key: cacheKey, + ); + getProducts = GetProducts.fromJson(json.decode(freshData)); + } else { + logger.i("Cache and API data identical – no update"); + } + } else { + logger.w("API status: ${response.statusCode}"); + } + } catch (e) { + logger.e("Error fetching products: $e"); + } + + return getProducts; + } + + Future updateProducts( + ProductUpdateRequest data, String urldata) async { + ProductUpdateResponse? productUpdateResponse; + + try { + final url = Uri.parse(urldata); + final jsonBody = json.encode(data.toJson()); + + // 🔥 THIS IS WHAT YOU WANT TO SEE 🔥 + print('🚀 SENDING PUT REQUEST'); + print('URL: $url'); + print('HEADERS: ${{ + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }}'); + print('BODY → ${jsonBody}'); // ← Exact JSON being sent + print('PRETTY BODY → ${const JsonEncoder.withIndent(' ').convert(data.toJson())}'); + + final response = await put( + url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + body: jsonBody, + ); + + print('✅ RESPONSE: ${response.statusCode}'); + print('Response Body: ${response.body}'); + + final parsedJson = json.decode(response.body); + productUpdateResponse = ProductUpdateResponse.fromJson(parsedJson); + + print('Parsed → $productUpdateResponse'); + + } catch (e) { + print('❌ ERROR: $e'); + } + + return productUpdateResponse; + } + + + Future getProductDetail(String urldata,) async { + logger.i('UrlData for product Details : ${urldata}'); + ProductDetailResponse? getProductDetailResponse; + try { + final url = Uri.parse(urldata); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }); + logger.i('Product Response ${response.body}'); + logger.i('Get product Details Response${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getProductDetailResponse = ProductDetailResponse.fromJson(parsedJson); + } catch (e) { + logger.i(e.toString()); + logger.i('error in productDetails${e.toString()}'); + logger.i("error"); + } + return getProductDetailResponse; + } + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Riders/get_rider_provider.dart b/lib/Data/Provider/Riders/get_rider_provider.dart new file mode 100644 index 0000000..043b6c1 --- /dev/null +++ b/lib/Data/Provider/Riders/get_rider_provider.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Model/Response/Riders/get_rider_model.dart'; + +class RidersProvider { + + Future getRiders(String urldata,) async { + GetRiderPoolsModel? getRiderPoolsModel; + + logger.i('GetRiderURlData : ${urldata}'); + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getRiderPoolsModelresponsebody!!!!!!!!${response.body}'); + print('getRiderPoolsModelurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getRiderPoolsModel = GetRiderPoolsModel.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getRiderPoolsModel; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Staffs/Addstaffs/Addstaffprovider.dart b/lib/Data/Provider/Staffs/Addstaffs/Addstaffprovider.dart new file mode 100644 index 0000000..b5d96eb --- /dev/null +++ b/lib/Data/Provider/Staffs/Addstaffs/Addstaffprovider.dart @@ -0,0 +1,49 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../../Helper/Logger.dart'; +import '../../../../Model/Request/Staffs/Addstaffs/Addstaffsrequest.dart'; +import '../../../../Model/Response/Staffs/Addstaffs/Addstaffresponse.dart'; + +class AddStaffProvider{ + + Future addStaff(CreateStaffRequest data,String urldata,) async { + CreateStaffResponse? createStaffResponse; + try { + + final url = Uri.parse(urldata); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('createStaffResponseresponsebody ${response.body}'); + print('createStaffResponsedatatoJson ${data.toJson()}'); + print('createStaffResponseresponseorderdate ${data.tenantid}'); + print('createStaffResponseresponsetenantid ${data.locationid}'); + print('createStaffResponseresponseconfigid ${data.configid}'); + print('createStaffResponseresponsepartnerid ${data.partnerid}'); + logger.i(json.encode(data.toJson())); + + + + // print('headerssssssssss ${response.headers}'); + print('CreateOrderurlsssssssssss ${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + createStaffResponse = CreateStaffResponse.fromJson(parsedJson); + print('createOrderinprovider${createStaffResponse}'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return createStaffResponse; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Staffs/Staffsprovider.dart b/lib/Data/Provider/Staffs/Staffsprovider.dart new file mode 100644 index 0000000..d8ba965 --- /dev/null +++ b/lib/Data/Provider/Staffs/Staffsprovider.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../Model/Response/Staffs/Getstaffsresponse.dart'; + +class GetStaffsProvider{ + + Future getStaffs(String urldata,) async { + GetStaffsResponse? getStaffsResponse; + try { + + final url = Uri.parse('$urldata'); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('getStaffsResponse!!!!!!!!${response.body}'); + print('getStaffsproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getStaffsResponse = GetStaffsResponse.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getStaffsResponse; + } + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Staffs/Updatestaff/Updatestaffprovider.dart b/lib/Data/Provider/Staffs/Updatestaff/Updatestaffprovider.dart new file mode 100644 index 0000000..6a5d902 --- /dev/null +++ b/lib/Data/Provider/Staffs/Updatestaff/Updatestaffprovider.dart @@ -0,0 +1,48 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; + +import '../../../../Model/Request/Staffs/UpdateStaff/Updatestaffrequest.dart'; +import '../../../../Model/Response/Staffs/Updatestaff/Updatestaffresponse.dart'; + +class UpdateStaffProvider{ + + Future updateStaff(UpdateStaffRequest data,String urldata,) async { + UpdateStaffResponse? updateStaffResponse; + try { + + final url = Uri.parse(urldata); + + final response = await put(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('updateStaffResponseresponsebody ${response.body}'); + print('updateStaffResponsedatatoJson ${data.toJson()}'); + print('updateStaffResponseresponseorderdate ${data.tenantid}'); + print('updateStaffResponseresponsetenantid ${data.locationid}'); + print('updateStaffResponseresponsepartnerid ${data.partnerid}'); + + + + // print('headerssssssssss ${response.headers}'); + print('updateStaffssssssssss ${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + updateStaffResponse = UpdateStaffResponse.fromJson(parsedJson); + print('updateStaffinprovider $updateStaffResponse'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return updateStaffResponse; + } + + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Summary/ordersprovider.dart b/lib/Data/Provider/Summary/ordersprovider.dart new file mode 100644 index 0000000..266ebb4 --- /dev/null +++ b/lib/Data/Provider/Summary/ordersprovider.dart @@ -0,0 +1,94 @@ +import 'dart:convert'; +import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +import 'package:http/http.dart' as http; +import 'package:http/http.dart'; + +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/Orders/Cancelorderrequest.dart'; +import '../../../Model/Response/Summary/Cancelorderresponse.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../../Model/Response/Summary/Ordersummaryresponse.dart'; + + + +class OrderSummaryProvider { + + + + + // Fetch deliveries/orders from API + Future getDelivery(String url) async { + try { + final response = await http.get(Uri.parse(url)); + + if (response.statusCode == 200) { + + print(url); + print(response); + final data = json.decode(response.body); + return GetDeliveries.fromJson(data); + } else { + logger.e('Failed to load orders. Status code: ${response.statusCode}'); + return null; + } + } catch (e) { + logger.e('Error in getDelivery: $e'); + return null; + } + } + + Future getOrderSummary(String url) async { + try { + final response = await http.get(Uri.parse(url)); + + if (response.statusCode == 200) { + + print(url); + print(response.body); + final data = json.decode(response.body); + return OrderSummary.fromJson(data); + + } else { + logger.e('Failed to load order summary. Status code: ${response.statusCode}'); + return null; + } + } catch (e) { + logger.e('Error in getOrderSummary: $e'); + return null; + } + } + + Future updateOrders(CancelOrderRequest data,String urldata,) async { + CancelOrderResponse? updateOrder; + try { + + final url = Uri.parse('$urldata'); + + final response = await put(url, + body: json.encode({ + "orderheaderid": data.orderheaderid, + "orderstatus": "${data.orderstatus}", + "cancelled": "${data.cancelled}" + }), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('updateOrderresponsebody ${response.body}'); + print('updateOrderurlsssssssssss ${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + updateOrder = CancelOrderResponse.fromJson(parsedJson); + print('updateOrderinprovider${updateOrder}'); + + } catch (e) { + print(e.toString()); + print("error"); + } + return updateOrder; + } + + +} \ No newline at end of file diff --git a/lib/Data/Provider/TenantPartner/Tenantpartnerprovider.dart b/lib/Data/Provider/TenantPartner/Tenantpartnerprovider.dart new file mode 100644 index 0000000..e1e7981 --- /dev/null +++ b/lib/Data/Provider/TenantPartner/Tenantpartnerprovider.dart @@ -0,0 +1,33 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Model/Response/Partners/Getpartnerinforequest.dart'; + +class GetPartnersProvider{ + + Future getPartners(String urldata) async { + GetPartnersInfo? getLocationById; + try { + + final url = Uri.parse('$urldata',); + + final response = await get(url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }, + ); + print('getPartners!!!!!!!!${response.body}'); + print('getPartnersproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getLocationById = GetPartnersInfo.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getLocationById; + } + +} \ No newline at end of file diff --git a/lib/Data/Provider/Tenantlocation/Getlocationprovider.dart b/lib/Data/Provider/Tenantlocation/Getlocationprovider.dart new file mode 100644 index 0000000..77e6541 --- /dev/null +++ b/lib/Data/Provider/Tenantlocation/Getlocationprovider.dart @@ -0,0 +1,63 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import '../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../../Model/Response/Tenantlocation/Locationbyid/Locationidresponse.dart'; + + +class GetLocationsProvider{ + + Future getTenantLocationById(String urldata) async { + GetLocationByTenantId? getLocationById; + try { + + final url = Uri.parse('$urldata',); + + final response = await http.get(url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }, + ); + print('GetLocation!!!!!!!!${response.body}'); + print('GetLocationproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getLocationById = GetLocationByTenantId.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getLocationById; + } + + Future getLocationById(String urldata) async { + GetLocationByLocaionId? getLocationsById; + try { + + final url = Uri.parse('$urldata',); + + final response = await http.get(url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }, + ); + print('getLocationById!!!!!!!!${response.body}'); + print('getLocationByIdproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getLocationsById = GetLocationByLocaionId.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getLocationsById; + } + + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Tenantmodulecategory/Categoryprovider.dart b/lib/Data/Provider/Tenantmodulecategory/Categoryprovider.dart new file mode 100644 index 0000000..caa324e --- /dev/null +++ b/lib/Data/Provider/Tenantmodulecategory/Categoryprovider.dart @@ -0,0 +1,31 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; + +import '../../../Model/Response/Appcategory/Appcategoryresponse.dart'; + +class GetTenantCategoriesProvider{ + + // Future getTenantCategory(String urldata,) async { + // AppCategory? getCategories; + // try { + // + // final url = Uri.parse('$urldata'); + // + // final response = await http.get(url, headers: { + // 'Content-Type': 'application/json', + // 'Accept': 'application/json', + // // 'Authorization': '$token', + // }); + // print('getCategories!!!!!!!!${response.body}'); + // print('getCategoriesproviderurldata!!!!!!!!${urldata.toString()}'); + // Map parsedJson = json.decode(response.body.toString()); + // + // // getCategories = AppCategory.fromJson(parsedJson); + // + // } catch (e) { + // print(e.toString()); + // print("error"); + // } + // return getCategories; + // } +} \ No newline at end of file diff --git a/lib/Data/Provider/Tenantpricing/Tenantchargesprovider.dart b/lib/Data/Provider/Tenantpricing/Tenantchargesprovider.dart new file mode 100644 index 0000000..f77c0d1 --- /dev/null +++ b/lib/Data/Provider/Tenantpricing/Tenantchargesprovider.dart @@ -0,0 +1,33 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Model/Response/Tenantpricing/Tenantpricingresponse.dart'; + + +class TenantPricingProvider { + Future getTenantPricing(String urldata) async { + GetTenantPricing? getTenantPricing; + try { + + final url = Uri.parse('$urldata',); + + final response = await get(url, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }, + ); + print('getTenantPricingresponse!!!!!!!!${response.body}'); + print('getTenantPricingproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + getTenantPricing = GetTenantPricing.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return getTenantPricing; + } + +} diff --git a/lib/Data/Provider/Tenants/Tenantsprovider.dart b/lib/Data/Provider/Tenants/Tenantsprovider.dart new file mode 100644 index 0000000..11ac7f1 --- /dev/null +++ b/lib/Data/Provider/Tenants/Tenantsprovider.dart @@ -0,0 +1,70 @@ +import 'dart:convert'; + +import 'package:flutter_cache_manager/flutter_cache_manager.dart'; +import 'package:http/http.dart'; + +import '../../../Helper/Logger.dart'; +import '../../../Model/Response/Tenants/Tenantinforesponse.dart'; + +class TenantsProvider { + static const cacheKey = 'TenantCache'; + final cacheManager = DefaultCacheManager(); + + Future getTenantInfo(String urlData) async { + TenantInfo? tenantInfo; + + logger.i('TenantInfo URL data: ${urlData}'); + logger.i('TenantInfo URL data: $urlData'); // 👈 Add this here + + + try { + /// 1. Attempt to load from cache first + final fileInfo = await cacheManager.getFileFromCache(cacheKey); + + String? cachedData; + + if (fileInfo != null && fileInfo.file.existsSync()) { + cachedData = await fileInfo.file.readAsString(); + final parsedJson = json.decode(cachedData); + tenantInfo = TenantInfo.fromJson(parsedJson); + logger.i("......Loaded data from cache......"); + } + + /// 2.Always make a request to check for updates + final response = await get(Uri.parse(urlData), headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }); + + + if (response.statusCode == 200) { + final freshData = response.body; + + /// Compare with cached data (optional optimization: hash/ETag/updatedAt) + if (cachedData == null || freshData != cachedData) { + logger.i("......Updating TenantDetails cache with fresh API data......."); + + /// Update the cache with fresh data + await cacheManager.putFile( + cacheKey, + response.bodyBytes, + fileExtension: 'json', + key: cacheKey, + ); + final parsedJson = json.decode(freshData); + tenantInfo = TenantInfo.fromJson(parsedJson); + } else { + logger.i(".........Tenant Details API data is same as cache, no update required.........."); + } + } else { + logger.w("Tenant Details API responded with status code: ${response.statusCode}"); + } + } catch (e) { + logger.e("Error fetching customer deals: $e"); + } + + return tenantInfo; + } + + +} \ No newline at end of file diff --git a/lib/Data/Provider/Users/user_provider.dart b/lib/Data/Provider/Users/user_provider.dart new file mode 100644 index 0000000..98fb857 --- /dev/null +++ b/lib/Data/Provider/Users/user_provider.dart @@ -0,0 +1,68 @@ + +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:http/http.dart'; + +import '../../../Model/Request/User/Updateuser/Updateuserrequest.dart'; +import '../../../Model/Response/User/Updateuser/Updateuserresponse.dart'; +import '../../../Model/Response/User/Usermodelresponse.dart'; + + + +class UserProvider { + Future getUser(String urldata, String token) async { + UserModelResponse? userProfile; + // LoginProvider(); + try { + + final url = Uri.parse('$urldata'); + final response = await http.get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + 'token':'$token', + // 'Authorization': '$token', + }); + print('userproviderresponsebody!!!!!!!!${response.body}'); + print('userproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + userProfile = UserModelResponse.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return userProfile; + } + + + Future updateUser(UserUpdateRequest data,String urldata) async { + UserUpdateResponse? userUpdateResponse; + // LoginProvider(); + try { + + final url = Uri.parse(urldata); + + final response = await put(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + print('userUpdateproviderresponsebody!!!!!!!!${response.body}'); + print('userUpdateproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + userUpdateResponse = UserUpdateResponse.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return userUpdateResponse; + } + + +} diff --git a/lib/Data/Provider/deliveries/create_delivery.dart b/lib/Data/Provider/deliveries/create_delivery.dart new file mode 100644 index 0000000..351a887 --- /dev/null +++ b/lib/Data/Provider/deliveries/create_delivery.dart @@ -0,0 +1,43 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import 'package:http/http.dart' as http; +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/create_delivery_request/create_delivery_request.dart'; +import '../../../Model/Response/create_delivery_response/create_delivery_request.dart'; + +class CreateDeliveryProvider { + + Future createDelivery(List data,String urldata,) async { + + CreateDeliveryResponse? createDeliveryResponse; + logger.i('Url data for crate delivery : $urldata'); + logger.i('Json Encode : ${json.encode(data)}'); + try { + + final url = Uri.parse(urldata); + + final response = await post(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + logger.i('create Delivery : ${response.body}'); + + Map parsedJson = json.decode(response.body); + + createDeliveryResponse = CreateDeliveryResponse.fromJson(parsedJson); + + } catch (e) { + logger.i(e.toString()); + logger.i("error"); + } + return createDeliveryResponse; + } + + + + +} \ No newline at end of file diff --git a/lib/Data/Provider/deliveries/update_delivery_provider.dart b/lib/Data/Provider/deliveries/update_delivery_provider.dart new file mode 100644 index 0000000..a891c1d --- /dev/null +++ b/lib/Data/Provider/deliveries/update_delivery_provider.dart @@ -0,0 +1,37 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Model/Request/update_delivery/update_delivery.dart'; +import '../../../Model/Response/update_delivery_response/update_delivery_response.dart'; + +class UpdateDeliveryProvider { + + Future updateDelivery (UpdateDeliveryRequest data,String urldata,) async { + UpdateDeliveryResponse? updateDeliveryResponse; + try { + + final url = Uri.parse(urldata); + + final response = await put(url, + body: json.encode(data), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + + logger.i('Update Delivery Response : ${response.body}'); + + Map parsedJson = json.decode(response.body); + + updateDeliveryResponse = UpdateDeliveryResponse.fromJson(parsedJson); + + } catch (e) { + print(e.toString()); + print("error"); + } + return updateDeliveryResponse; + } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Admintoken/Getadmintokenrepository.dart b/lib/Data/Repository/Admintoken/Getadmintokenrepository.dart new file mode 100644 index 0000000..e1de390 --- /dev/null +++ b/lib/Data/Repository/Admintoken/Getadmintokenrepository.dart @@ -0,0 +1,21 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Admintoken/Admintokenresponse.dart'; +import '../../Provider/Admintoken/Getadmintokenprovider.dart'; + +class GetAdminTokenRepository{ + + GetAdminTokenProvider getAdminTokenProvider = GetAdminTokenProvider(); + + int? appLocationId; + + Future getAdminToken() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + appLocationId = prefs.getInt('appLocationId'); + var result = await getAdminTokenProvider.getAdminToken('${ApiConstants.adminToken}/?applocationid=$appLocationId'); + return result; + } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Appcategory/Appcategoryrepository.dart b/lib/Data/Repository/Appcategory/Appcategoryrepository.dart new file mode 100644 index 0000000..947e404 --- /dev/null +++ b/lib/Data/Repository/Appcategory/Appcategoryrepository.dart @@ -0,0 +1,17 @@ + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Appcategory/app_category_response.dart'; +import '../../Provider/Appcategory/Appcategoryprovider.dart'; + +class AppCategoryRepository{ + AppCategoryProvider appCategoryProvider = AppCategoryProvider(); + + Future getAppCategory() async { + + return await appCategoryProvider.getAppCategory('https://fiesta.nearle.app/live/api/v1/mob/utils/getsubcategories'); + + } + + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Applocation/Applocationrepository.dart b/lib/Data/Repository/Applocation/Applocationrepository.dart new file mode 100644 index 0000000..05022aa --- /dev/null +++ b/lib/Data/Repository/Applocation/Applocationrepository.dart @@ -0,0 +1,15 @@ +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Applocations/Applocationresponse.dart'; +import '../../Provider/Applocation/Applocationprovider.dart'; + +class AppLocationRepository{ + AppLocationProvider appLocationProvider = AppLocationProvider(); + + Future getAppLocations() async { + + return await appLocationProvider.getAppLocations(ApiConstants.appLocations); + + } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Authentication/Createtenantuser/Createtenantuserrepository.dart b/lib/Data/Repository/Authentication/Createtenantuser/Createtenantuserrepository.dart new file mode 100644 index 0000000..fd3dbfd --- /dev/null +++ b/lib/Data/Repository/Authentication/Createtenantuser/Createtenantuserrepository.dart @@ -0,0 +1,16 @@ +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Model/Request/Authentication/Createuser/Createuserresponse.dart'; +import '../../../../Model/Response/Authentication/Createtenantuser/Createtenantuserresponse.dart'; +import '../../../Provider/Authentication/Createtenantuser/Createtenantuserprovider.dart'; + + +class CreateTenantUserRepository{ + int? userId; + CreateTenantUserProviders createTenantUserProviders =CreateTenantUserProviders(); + + Future createTenantUser(CreateTenantUser data) async { + var result = await createTenantUserProviders.createTenantUser(data,'${ApiConstants.createTenantUser}'); + return result; + } + +} \ No newline at end of file diff --git a/lib/Data/Repository/Authentication/loginrepository.dart b/lib/Data/Repository/Authentication/loginrepository.dart new file mode 100644 index 0000000..c3e4573 --- /dev/null +++ b/lib/Data/Repository/Authentication/loginrepository.dart @@ -0,0 +1,15 @@ +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/Authentication/Loginrequest.dart'; +import '../../../Model/Response/Authentication/Loginresponse.dart'; +import '../../Provider/Authentication/loginprovider.dart'; + +class LoginRepository{ + LoginProvider loginProvider = LoginProvider(); + + Future signIn(LoginRequest data) async { + + return await loginProvider.signIn('https://fiesta.nearle.app/live/api/v1/mob/users/tenant/login',data); + + } + +} \ No newline at end of file diff --git a/lib/Data/Repository/CreateOrder/CreateOrderRepository.dart b/lib/Data/Repository/CreateOrder/CreateOrderRepository.dart new file mode 100644 index 0000000..3e86033 --- /dev/null +++ b/lib/Data/Repository/CreateOrder/CreateOrderRepository.dart @@ -0,0 +1,13 @@ +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/Createorder/Createorderrequest.dart'; +import '../../../Model/Response/Createorder/CreateOrderResponsemodel.dart'; +import '../../Provider/CreatOrder/CreateOrderProvider.dart'; + +class CreateOrderRepository{ + CreateOrderProviders createOrderProviders =CreateOrderProviders(); + FuturecreateOrder(CreateOrder data) async { + var result = await createOrderProviders.createOrder(data,ApiConstants.createOrder); + return result; + } + +} \ No newline at end of file diff --git a/lib/Data/Repository/Createcustomer/Createcustomerrepository.dart b/lib/Data/Repository/Createcustomer/Createcustomerrepository.dart new file mode 100644 index 0000000..8288f54 --- /dev/null +++ b/lib/Data/Repository/Createcustomer/Createcustomerrepository.dart @@ -0,0 +1,21 @@ +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart'; +import '../../../Model/Request/Createcustomer/Createcustomerrequest.dart'; +import '../../../Model/Response/Createcustomer/Createcustomerresponse.dart'; +import '../../../Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart'; +import '../../Provider/Createcustomer/Createcustomerprovider.dart'; + +class CreateCustomerRepository{ + CreateCustomerProvider createCustomerProvider = CreateCustomerProvider(); + + Future createCustomer(CreateCustomers data) async { + var result = await createCustomerProvider.createCustomer(data,'${ApiConstants.createCustomer}'); + return result; + } + + Future createDeliveryAddress(CreateDeliveryAddress data) async { + var result = await createCustomerProvider.createDeliveryAddress(data,'${ApiConstants.createDeliveryAddress}'); + return result; + } + +} \ No newline at end of file diff --git a/lib/Data/Repository/Customers/getCustomerbytenantidrepository.dart b/lib/Data/Repository/Customers/getCustomerbytenantidrepository.dart new file mode 100644 index 0000000..ac391a6 --- /dev/null +++ b/lib/Data/Repository/Customers/getCustomerbytenantidrepository.dart @@ -0,0 +1,75 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; +import '../../Provider/Customers/getCustomerbytenantidprovider.dart'; + + +class GetCustomersByTenantIdRepository{ + GetCustomersByTenantIdProvider getCustomersByTenantIdProvider = GetCustomersByTenantIdProvider(); + int? tenantId; + + Future getCustomerByTenantId() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getCustomerByTenantId('${ApiConstants.getCustomerByTenantId}/?tenantid=$tenantId&pageno=1&pagesize=20'); + return result; + } + + Future getCustomerKeywordByTenantId(keyword) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getCustomerByTenantId('${ApiConstants.getCustomerSearchByTenantId}/?tenantid=$tenantId&keyword=$keyword'); + return result; + } + + Future getTenantsByTenantId() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getTenantsByTenantId('${ApiConstants.getCustomerByTenantId}/?tenantid=$tenantId&locationid=1'); + return result; + } + + Future getCustomerByPageLimitTenantId(page,limit) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getTenantsByTenantId('${ApiConstants.getCustomerByTenantId}/?tenantid=$tenantId&pageno=$page&pagesize=$limit'); + return result; + } + + + Future getDropCustomerByTenantId() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getDropCustomerByTenantId('${ApiConstants.getCustomerByTenantId}/?tenantid=$tenantId'); + return result; + } + + Future getDropCustomerKeywordByTenantId(keyword) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getDropCustomerByTenantId('${ApiConstants.getCustomerSearchByTenantId}/?tenantid=$tenantId&keyword=$keyword'); + return result; + } + + Future getDropCustomerByPageLimitTenantId(page,limit) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getDropCustomerByTenantId('${ApiConstants.getCustomerByTenantId}/?tenantid=$tenantId&pageno=$page&pagesize=$limit'); + return result; + } + + + + Future getDropTenantByTenantId() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var result = await getCustomersByTenantIdProvider.getDropTenantByTenantId('${ApiConstants.getCustomerByTenantId}/?tenantid=$tenantId&locationid=1'); + return result; + } + + + + +} diff --git a/lib/Data/Repository/Location/Addlocation/Addlocationrepository.dart b/lib/Data/Repository/Location/Addlocation/Addlocationrepository.dart new file mode 100644 index 0000000..572bc53 --- /dev/null +++ b/lib/Data/Repository/Location/Addlocation/Addlocationrepository.dart @@ -0,0 +1,15 @@ + +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Model/Request/Location/Addlocation/Addlocationrequest.dart'; +import '../../../../Model/Response/Location/Addlocation/Addlocationresponse.dart'; +import '../../../Provider/Location/Addlocation/Addlocationprovider.dart'; + +class AddLocationRepository{ + + AddLocationProvider addLocationProvider = AddLocationProvider(); + + FutureaddLocation(AddLocation data) async { + var result = await addLocationProvider.addLocation(data,'${ApiConstants.createLocation}'); + return result; + } +} \ No newline at end of file diff --git a/lib/Data/Repository/Location/GetLocation/getlocationrepository.dart b/lib/Data/Repository/Location/GetLocation/getlocationrepository.dart new file mode 100644 index 0000000..b54afc1 --- /dev/null +++ b/lib/Data/Repository/Location/GetLocation/getlocationrepository.dart @@ -0,0 +1,22 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../../Provider/Location/GetLocation/getlocationprovider.dart'; + + + +class GetLocationsRepository{ + GetLocationsProvider getLocationsProvider = GetLocationsProvider(); + int tenantId = 0; + int locationId = 0; + + Future getLocationById() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')!; + locationId = prefs.getInt('locationId')!; + var result = await getLocationsProvider.getLocationById('${ApiConstants.getLocationById}?tenantid=$tenantId',); + return result; + } + +} diff --git a/lib/Data/Repository/Location/Updatelocation/Updatelocationrepository.dart b/lib/Data/Repository/Location/Updatelocation/Updatelocationrepository.dart new file mode 100644 index 0000000..954c020 --- /dev/null +++ b/lib/Data/Repository/Location/Updatelocation/Updatelocationrepository.dart @@ -0,0 +1,15 @@ + +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Model/Request/Location/Updatelocation/Updatelocationrequest.dart'; +import '../../../../Model/Response/Location/Updatelocation/Updatelocationresponse.dart'; +import '../../../Provider/Location/Updatelocation/Updatelocationprovider.dart'; + +class UpdateLocationRepository{ + + UpdateLocationProvider updateLocationProvider =UpdateLocationProvider(); + + FutureupdateLocation(UpdateLocation data) async { + var result = await updateLocationProvider.updateLocation(data,ApiConstants.updateLocation); + return result; + } +} \ No newline at end of file diff --git a/lib/Data/Repository/Notification/Notificationrepository.dart b/lib/Data/Repository/Notification/Notificationrepository.dart new file mode 100644 index 0000000..1064dab --- /dev/null +++ b/lib/Data/Repository/Notification/Notificationrepository.dart @@ -0,0 +1,21 @@ + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Authentication/Sms/Smsresponse.dart'; +import '../../../Model/Response/Notification/Notificationresponse.dart'; +import '../../Provider/Notification/Notificationprovider.dart'; + +class NotificationRepository{ + NotificationProvider notificationProvider = NotificationProvider(); + + Future createNotification( data) async { + var result = await notificationProvider.createNotification(data,ApiConstants.notifyUrl); + return result; + } + + + Future notifyRider( data) async { + var result = await notificationProvider.NotifyRider(data,ApiConstants.notifyRider); + return result; + } + +} \ No newline at end of file diff --git a/lib/Data/Repository/Orders/Orderrepository.dart b/lib/Data/Repository/Orders/Orderrepository.dart new file mode 100644 index 0000000..8661ab1 --- /dev/null +++ b/lib/Data/Repository/Orders/Orderrepository.dart @@ -0,0 +1,61 @@ +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Orders/Getorderresponse.dart'; +import '../../Provider/Orders/Ordersprovider.dart'; + +class OrdersRepository { + + int? tenantId; + int? locationid; + + OrdersProvider ordersProvider = OrdersProvider(); + + Future getOrders(String status) async { + + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + locationid = prefs.getInt('locationId'); + var fromDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var toDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + + print('ddd $status'); + + // var fromDateTm = DateFormat("yyyy-MM-dd").format(DateTime.now()); + // var toDateTm = DateFormat("yyyy-MM-dd").format(DateTime.now().add(Duration(days: 1))); + + var result = await ordersProvider.getOrders( + '${ApiConstants.getOrders}/?tenantid=$tenantId&status=$status&fromdate=$fromDate&todate=$toDate&locationid=$locationid'); + return result; + } + + Future getCurrentOrders() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var fromDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var toDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var result = await ordersProvider.getOrders('${ApiConstants.getOrders}/?tenantid=$tenantId&status=ongoing&fromdate=$fromDate&todate=$toDate&locationid=$locationid'); + return result; + } + + Future getCompletedOrders() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var fromDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var toDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var result = await ordersProvider.getOrders('${ApiConstants.getOrders}/?tenantid=$tenantId&status=delivered&fromdate=$fromDate&todate=$toDate&locationid=$locationid'); + return result; + } + + Future getCancelledOrder() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + var fromDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var toDate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var result = await ordersProvider.getOrders('${ApiConstants.getOrders}/?tenantid=$tenantId&status=cancelled&fromdate=$fromDate&todate=$toDate&locationid=$locationid'); + return result; + } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Rider/get_rider_repo.dart b/lib/Data/Repository/Rider/get_rider_repo.dart new file mode 100644 index 0000000..cc7f9f1 --- /dev/null +++ b/lib/Data/Repository/Rider/get_rider_repo.dart @@ -0,0 +1,23 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Riders/get_rider_model.dart'; +import '../../Provider/Riders/get_rider_provider.dart'; + +class RidersRepository{ + + RidersProvider ridersProvider = RidersProvider(); + + int? tenantId = 0; + int? locationId = 0; + + Future getRiders(appLocationId) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + locationId = prefs.getInt('locationId'); + var result = await ridersProvider.getRiders('${ApiConstants.getRiders}?tenantid=${tenantId}&location=$locationId'); + return result; + } + + +} diff --git a/lib/Data/Repository/Staffs/Addstaff/Addstaffrepository.dart b/lib/Data/Repository/Staffs/Addstaff/Addstaffrepository.dart new file mode 100644 index 0000000..4fd60b0 --- /dev/null +++ b/lib/Data/Repository/Staffs/Addstaff/Addstaffrepository.dart @@ -0,0 +1,17 @@ + +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Model/Request/Staffs/Addstaffs/Addstaffsrequest.dart'; +import '../../../../Model/Response/Staffs/Addstaffs/Addstaffresponse.dart'; +import '../../../Provider/Staffs/Addstaffs/Addstaffprovider.dart'; + +class AddStaffRepository{ + AddStaffProvider addStaffProvider =AddStaffProvider(); + + FutureaddStaff(CreateStaffRequest data) async { + var result = await addStaffProvider.addStaff(data,ApiConstants.createStaff); + return result; + } + + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Staffs/Getstaffsrepository.dart b/lib/Data/Repository/Staffs/Getstaffsrepository.dart new file mode 100644 index 0000000..af64712 --- /dev/null +++ b/lib/Data/Repository/Staffs/Getstaffsrepository.dart @@ -0,0 +1,20 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Staffs/Getstaffsresponse.dart'; +import '../../Provider/Staffs/Staffsprovider.dart'; + +class GetStaffsRepository{ + + int? tenantId; + + GetStaffsProvider getStaffsProvider = GetStaffsProvider(); + + Future getStaffs() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')!; + var result = await getStaffsProvider.getStaffs('${ApiConstants.getStaffs}/?tenantid=$tenantId',); + return result; + } + +} \ No newline at end of file diff --git a/lib/Data/Repository/Staffs/Updatestaff/Updatestaffrepository.dart b/lib/Data/Repository/Staffs/Updatestaff/Updatestaffrepository.dart new file mode 100644 index 0000000..7004155 --- /dev/null +++ b/lib/Data/Repository/Staffs/Updatestaff/Updatestaffrepository.dart @@ -0,0 +1,14 @@ + +import '../../../../Helper/Constants/Apiconstants.dart'; +import '../../../../Model/Request/Staffs/UpdateStaff/Updatestaffrequest.dart'; +import '../../../../Model/Response/Staffs/Updatestaff/Updatestaffresponse.dart'; +import '../../../Provider/Staffs/Updatestaff/Updatestaffprovider.dart'; + +class UpdateStaffRepository{ + UpdateStaffProvider updateStaffProvider = UpdateStaffProvider(); + + Future updateStaff(UpdateStaffRequest data) async { + var result = await updateStaffProvider.updateStaff(data,ApiConstants.updateStaff,); + return result; + } +} \ No newline at end of file diff --git a/lib/Data/Repository/Summary/ordersrepository.dart b/lib/Data/Repository/Summary/ordersrepository.dart new file mode 100644 index 0000000..ac97db3 --- /dev/null +++ b/lib/Data/Repository/Summary/ordersrepository.dart @@ -0,0 +1,92 @@ +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/Orders/Cancelorderrequest.dart'; +import '../../../Model/Response/Summary/Cancelorderresponse.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../../Model/Response/Summary/Ordersummaryresponse.dart'; +import '../../Provider/Summary/ordersprovider.dart'; + + + + +class OrderSummaryRepository{ + OrderSummaryProvider orderSummaryProvider = OrderSummaryProvider(); + DateTime? now; + int moduleId = 0; + int tenantId = 0; + int locationId = 0; + int roleId = 0; + int orderheaderId =0; + + DateTime getDate(DateTime d) => DateTime(d.year, d.month, d.day); + + + + Future getOrdersToday({String? keyword}) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + var keywordParam = keyword ?? ''; + roleId = prefs.getInt('roleId')??0; + tenantId = prefs.getInt('tenantId')??0; + locationId = prefs.getInt('locationId')??0; + var fromdate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var todate = DateFormat("yyyy-MM-dd").format(DateTime.now()); + var result = await orderSummaryProvider.getDelivery('${ApiConstants.getDeliveries}/?tenantid=$tenantId&fromdate=$fromdate&todate=$todate''&status=delivered&pageno=1&pagesize=30&keyword=$keywordParam&locationid=$locationId',); + return result; + } + + Future getOrdersWeek({String? keyword}) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + roleId = prefs.getInt('roleid')??0; + tenantId = prefs.getInt('tenantId')??0; + locationId = prefs.getInt('locationId')??0; + final date = DateTime.now(); + var keywordParam = keyword ?? ''; + + DateTime start = getDate(date.subtract(Duration(days: date.weekday - 1,))); + DateTime week = getDate( + date.add(Duration(days: DateTime.daysPerWeek - date.weekday))); + + + var fromdate = DateFormat("yyyy-MM-dd") + .format(DateFormat("yyyy-MM-dd", "en_US").parse(start.toString())); + var todate= DateFormat("yyyy-MM-dd") + .format(DateFormat("yyyy-MM-dd", "en_US").parse(week.toString())); + var result = await orderSummaryProvider.getDelivery('${ApiConstants.getDeliveries}/?tenantid=$tenantId&fromdate=$fromdate' + '&todate=$todate&status=delivered&pageno=1&pagesize=30&keyword=$keywordParam&locationid=$locationId'); + return result; + } + + Future getOrdersMonth({String? keyword}) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + roleId = prefs.getInt('roleid')??0; + tenantId = prefs.getInt('tenantId')??0; + locationId = prefs.getInt('locationId')??0; + now = DateTime.now(); + var keywordParam = keyword ?? ''; + DateTime lastDayOfMonth = new DateTime(now!.year, now!.month + 1, 0); + DateTime firstDayOfMonth = new DateTime(now!.year, now!.month, 1); + var fromdate = DateFormat("yyyy-MM-dd").format( + DateFormat("yyyy-MM-dd", "en_US").parse(firstDayOfMonth.toString())); + var todate = DateFormat("yyyy-MM-dd").format( + DateFormat("yyyy-MM-dd", "en_US").parse(lastDayOfMonth.toString())); + var result = await orderSummaryProvider.getDelivery('${ApiConstants.getDeliveries}/?tenantid=$tenantId&fromdate=' + '$fromdate&todate=$todate&status=delivered&pageno=1&pagesize=30&keyword=$keywordParam&locationid=$locationId'); + return result; + } + + + Future getOrderSummary() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')!; + locationId = prefs.getInt('locationId')??0; + var result = await orderSummaryProvider.getOrderSummary('${ApiConstants.getOrderSummary}/?tenantid=$tenantId&locationid=$locationId'); + return result; + } + + FutureupdateOrders(CancelOrderRequest data) async { + var result = await orderSummaryProvider.updateOrders(data,'${ApiConstants.updateOrderStatus}'); + return result; + } +} diff --git a/lib/Data/Repository/TenantPartner/Tenantpartnerrepository.dart b/lib/Data/Repository/TenantPartner/Tenantpartnerrepository.dart new file mode 100644 index 0000000..fe2bc31 --- /dev/null +++ b/lib/Data/Repository/TenantPartner/Tenantpartnerrepository.dart @@ -0,0 +1,19 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Partners/Getpartnerinforequest.dart'; +import '../../Provider/TenantPartner/Tenantpartnerprovider.dart'; + +class GetPartnersRepository{ + GetPartnersProvider getPartnersProvider = GetPartnersProvider(); + + int tenantId = 0; + + Future getPartners(locationId) async { + + SharedPreferences prefs = await SharedPreferences.getInstance(); + locationId = prefs.getInt('locationId')??0; + var result = await getPartnersProvider.getPartners("${ApiConstants.getPartnerInfo}?applocationid=$locationId",); + return result; + } +} diff --git a/lib/Data/Repository/Tenantlocation/Getlocationrepository.dart b/lib/Data/Repository/Tenantlocation/Getlocationrepository.dart new file mode 100644 index 0000000..7cdbb40 --- /dev/null +++ b/lib/Data/Repository/Tenantlocation/Getlocationrepository.dart @@ -0,0 +1,29 @@ +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../../../Model/Response/Tenantlocation/Locationbyid/Locationidresponse.dart'; +import '../../Provider/Tenantlocation/Getlocationprovider.dart'; + + +class GetLocationsRepository{ + GetLocationsProvider getLocationsProvider = GetLocationsProvider(); + int? tenantId; + int? locationId; + + Future getTenantLocationById() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')??0; + locationId = prefs.getInt('locationId')??0; + var result = await getLocationsProvider.getTenantLocationById('${ApiConstants.getTenantLocationById}?tenantid=$tenantId&locationid=$locationId'); + return result; + } + + Future getLocationById() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')??0; + locationId = prefs.getInt('locationId')??0; + var result = await getLocationsProvider.getLocationById('${ApiConstants.getLocationsById}?tenantid=$tenantId&locationid=$locationId',); + return result; + } + +} diff --git a/lib/Data/Repository/Tenantmodulecategory/Categoryrepository.dart b/lib/Data/Repository/Tenantmodulecategory/Categoryrepository.dart new file mode 100644 index 0000000..c329ef7 --- /dev/null +++ b/lib/Data/Repository/Tenantmodulecategory/Categoryrepository.dart @@ -0,0 +1,16 @@ +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Appcategory/Appcategoryresponse.dart'; +import '../../Provider/Tenantmodulecategory/Categoryprovider.dart'; + +class GetTenantCategoriesRepository{ + + GetTenantCategoriesProvider getTenantCategoriesProvider = GetTenantCategoriesProvider(); + + // Future getTenantCategory() async { + // + // return await getTenantCategoriesProvider.getTenantCategory('${ApiConstants.appCategory}/?moduleid=6'); + // + // } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Tenantpricing/Tenantchargesrepository.dart b/lib/Data/Repository/Tenantpricing/Tenantchargesrepository.dart new file mode 100644 index 0000000..54880b1 --- /dev/null +++ b/lib/Data/Repository/Tenantpricing/Tenantchargesrepository.dart @@ -0,0 +1,17 @@ + +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Tenantpricing/Tenantpricingresponse.dart'; +import '../../Provider/Tenantpricing/Tenantchargesprovider.dart'; + +class TenantPricingRepository { + TenantPricingProvider tenantChargesProvider =TenantPricingProvider(); + int tenantId = 0; + + Future getTenantPricing() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId')??0; + var result = await tenantChargesProvider.getTenantPricing('${ApiConstants.getTenantPricing}/?tenantid=$tenantId',); + return result; + } +} diff --git a/lib/Data/Repository/Tenants/Tenantsrepository.dart b/lib/Data/Repository/Tenants/Tenantsrepository.dart new file mode 100644 index 0000000..953d059 --- /dev/null +++ b/lib/Data/Repository/Tenants/Tenantsrepository.dart @@ -0,0 +1,27 @@ + +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Response/Tenants/Tenantinforesponse.dart'; +import '../../Provider/Tenants/Tenantsprovider.dart'; + +class TenantRepository{ + int? tenantId; + int? locationId; + + TenantsProvider tenantsProvider = TenantsProvider(); + + Future getTenantInfo() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId') ?? 0; + locationId = prefs.getInt('locationId')??0; + print(tenantId); + var result = await tenantsProvider.getTenantInfo('${ApiConstants.getTenantInfo}/?tenantid=$tenantId&locationid=$locationId'); + // var result = await tenantsProvider.getTenantInfo('${ApiConstants.tenantInfo}/?tenantid=$tenantId'); + return result; + } + + + + +} \ No newline at end of file diff --git a/lib/Data/Repository/Users/user_repository.dart b/lib/Data/Repository/Users/user_repository.dart new file mode 100644 index 0000000..2809558 --- /dev/null +++ b/lib/Data/Repository/Users/user_repository.dart @@ -0,0 +1,31 @@ +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/User/Updateuser/Updateuserrequest.dart'; +import '../../../Model/Response/User/Updateuser/Updateuserresponse.dart'; +import '../../../Model/Response/User/Usermodelresponse.dart'; +import '../../Provider/Users/user_provider.dart'; + + +class UserRepository { + UserProvider userProvider = UserProvider(); + int? userId; + int? locationId; + + Future getUser(token) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + userId = prefs.getInt('userId'); + locationId = prefs.getInt('locationId')??0; + + return await userProvider.getUser('${ApiConstants.user}/getusers?userid=$userId&locationid=$locationId',token); + } + + Future updateUser(UserUpdateRequest data) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + userId = prefs.getInt('userId'); + + return await userProvider.updateUser(data,ApiConstants.userUpdate,); + } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/products_repo/get_products.dart b/lib/Data/Repository/products_repo/get_products.dart new file mode 100644 index 0000000..933e745 --- /dev/null +++ b/lib/Data/Repository/products_repo/get_products.dart @@ -0,0 +1,46 @@ + + +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/products/update_product.dart'; +import '../../../Model/Response/products/product_info.dart'; +import '../../../Model/Response/products/product_response.dart'; +import '../../../Model/Response/products/product_update_response.dart'; +import '../../Provider/Products_provider/get_products.dart'; + +class ProductsRepository { + + int? tenantId; + int? locationId; + + int? categoryId; + + GetProductsProvider getProductsProvider = GetProductsProvider(); + + Future getProducts({int? subCategoryId, String? keyword}) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + tenantId = prefs.getInt('tenantId'); + locationId = prefs.getInt('locationId'); + categoryId = prefs.getInt('categoryId'); + + var result = await getProductsProvider.getProducts('https://fiesta.nearle.app/live/api/v1/mob/products/getlocationproducts?tenantid=${tenantId}&page=1&pagesize=40&locationid=$locationId'); + return result; + } + + + Future productUpdate(ProductUpdateRequest data) async { + var result = await getProductsProvider.updateProducts(data, 'https://fiesta.nearle.app/live/api/v1/mob/products/updateproductlocation'); + return result; + } + + + String productDetail = "https://fiesta.nearle.app/live/api/v1/mob/orders/getorderdetails"; + + Future getProductDetail(int orderheaderid) async { + var result = await getProductsProvider.getProductDetail('$productDetail?orderheaderid=$orderheaderid'); + return result; + } + + + +} \ No newline at end of file diff --git a/lib/Data/Repository/update_delivery/create_delivery.dart b/lib/Data/Repository/update_delivery/create_delivery.dart new file mode 100644 index 0000000..453ee8e --- /dev/null +++ b/lib/Data/Repository/update_delivery/create_delivery.dart @@ -0,0 +1,18 @@ + +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/create_delivery_request/create_delivery_request.dart'; +import '../../../Model/Response/create_delivery_response/create_delivery_request.dart'; +import '../../Provider/deliveries/create_delivery.dart'; + +class createDeliveryRepository { + + CreateDeliveryProvider createDeliveryProvider = CreateDeliveryProvider(); + + Future createDelivery(List data) async { + var result = await createDeliveryProvider.createDelivery(data, ApiConstants.createDelivery); + return result; + + } + + +} \ No newline at end of file diff --git a/lib/Data/Repository/update_delivery/update_delivery.dart b/lib/Data/Repository/update_delivery/update_delivery.dart new file mode 100644 index 0000000..ca58ebf --- /dev/null +++ b/lib/Data/Repository/update_delivery/update_delivery.dart @@ -0,0 +1,20 @@ +import '../../../Helper/Constants/Apiconstants.dart'; +import '../../../Model/Request/update_delivery/update_delivery.dart'; + +import '../../../Model/Response/update_delivery_response/update_delivery_response.dart'; +import '../../Provider/deliveries/update_delivery_provider.dart'; + + + +class UpdateDeliveryRepository { + + UpdateDeliveryProvider updateDeliveryProvider = UpdateDeliveryProvider(); + + Future updateDelivery(UpdateDeliveryRequest data) async { + var result = await updateDeliveryProvider.updateDelivery(data,ApiConstants.updateDelivery); + return result; + + } + + +} \ No newline at end of file diff --git a/lib/Globalwidgets/Googleplaces/Googleplaces.dart b/lib/Globalwidgets/Googleplaces/Googleplaces.dart new file mode 100644 index 0000000..78c6ad5 --- /dev/null +++ b/lib/Globalwidgets/Googleplaces/Googleplaces.dart @@ -0,0 +1,93 @@ +// import 'dart:convert'; +// +// import 'package:http/http.dart' as http; +// import 'package:gear/Helper/Logger.dart'; +// import 'package:shared_preferences/shared_preferences.dart'; +// +// +// class GooglePlacesService { +// +// String? latitude; +// String? longitude; +// String? city; +// String? googleApiKey; +// int? radius; +// +// GooglePlacesService(); +// +// // Future>> getPlacesPredictions(String input) async { +// // final url = Uri.parse( +// // 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input&key=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); +// // +// // final response = await http.get(url); +// // +// // if (response.statusCode == 200) { +// // final predictions = json.decode(response.body)['predictions']; +// // return List>.from(predictions); +// // } else { +// // throw Exception('Failed to load predictions'); +// // } +// // } +// +// Future>> getPlacesPredictions(String input) async { +// SharedPreferences prefs = await SharedPreferences.getInstance(); +// latitude = prefs.getString('appLatitude'); +// longitude = prefs.getString('appLongitude'); +// city = prefs.getString('appLocation'); +// radius = prefs.getInt('appRadius'); +// googleApiKey = prefs.getString('googleApiKey')??'AIzaSyBhkGfnq27sN0wV5y_S-M2KojpFTk_by-Q'; +// +// logger.i(city); +// final url = Uri.parse( +// // 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input&components=country:IN&key=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); +// 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input$city&location=$latitude,$longitude&radius=15000&bounds=$latitude,$longitude&components=country:IN&types=establishment&key=$googleApiKey'); +// logger.i(url); +// final response = await http.get(url); +// +// if (response.statusCode == 200) { +// final Map data = json.decode(response.body); +// final predictions = data['predictions'] as List; +// return predictions.map((prediction) => prediction as Map).toList(); +// } else { +// throw Exception('Failed to load autocomplete suggestions'); +// } +// } +// +// Future> getPlaceDetails(String placeId) async { +// SharedPreferences prefs = await SharedPreferences.getInstance(); +// googleApiKey = prefs.getString('googleApiKey')??'AIzaSyBhkGfnq27sN0wV5y_S-M2KojpFTk_by-Q'; +// +// final url = Uri.parse( +// 'https://maps.googleapis.com/maps/api/place/details/json?place_id=$placeId&key=$googleApiKey'); +// +// final response = await http.get(url); +// +// if (response.statusCode == 200) { +// final details = json.decode(response.body)['result']; +// return Map.from(details); +// } else { +// throw Exception('Failed to load place details'); +// } +// } +// +// Future getDistance(double pickupLat, double pickupLong, double dropLat, double dropLong) async { +// SharedPreferences prefs = await SharedPreferences.getInstance(); +// googleApiKey = prefs.getString('googleApiKey')??'AIzaSyBhkGfnq27sN0wV5y_S-M2KojpFTk_by-Q'; +// +// final url = +// 'https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=$pickupLat,$pickupLong&destinations=$dropLat,$dropLong&key=$googleApiKey'; +// +// final response = await http.get(Uri.parse(url)); +// +// if (response.statusCode == 200) { +// final data = jsonDecode(response.body); +// final distanceText = data['rows'][0]['elements'][0]['distance']['text']; +// final distanceValue = data['rows'][0]['elements'][0]['distance']['value'] / 1000; // Convert meters to kilometers +// print('Distance: $distanceText'); +// return distanceValue; +// } else { +// throw Exception('Failed to load distance'); +// } +// } +// +// } diff --git a/lib/Globalwidgets/Localnotificationservice.dart b/lib/Globalwidgets/Localnotificationservice.dart new file mode 100644 index 0000000..962f991 --- /dev/null +++ b/lib/Globalwidgets/Localnotificationservice.dart @@ -0,0 +1,164 @@ + +import 'dart:typed_data'; + +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:get/get.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:get/route_manager.dart'; + +import '../Controller/Dashboard/Tabs/Completedordercontroller.dart'; +import '../Controller/Dashboard/Tabs/Ongoingordercontroller.dart'; +import '../Controller/Dashboard/Tabs/Ordercontroller.dart'; +import '../View/Home/Homeview.dart'; +import '../maindev.dart'; + + + +class LocalNotificationService { + + + static final instance = FirebaseMessaging.instance; + static final FlutterLocalNotificationsPlugin _notificationsPlugin = + FlutterLocalNotificationsPlugin(); + int? moduleId; + String? notificationOrderId; + int? locationId; + static void setValues(message){ + + } + + static void initialize(BuildContext context) async{ + + instance.requestPermission( + alert: true, + badge: true, + sound: true, + ); + await _notificationsPlugin.resolvePlatformSpecificImplementation()?.createNotificationChannel(channel); + final DarwinInitializationSettings initializationSettingsIOS = DarwinInitializationSettings( + requestSoundPermission: false, + requestBadgePermission: false, + requestAlertPermission: false, + ); + final InitializationSettings initializationSettings = + InitializationSettings( + android: AndroidInitializationSettings("ic_launcher"), + iOS: initializationSettingsIOS + ); + + _notificationsPlugin.initialize( + initializationSettings, + onDidReceiveNotificationResponse: (NotificationResponse response) { + if (response.payload != null) { + selectNotification(response.payload!); + } + }); + + + // TextToSpeech tts = TextToSpeech(); + + CurrentOrderController currentOrderController = Get.put(CurrentOrderController()); + OnGoingOrderController onGoingOrderController = Get.put(OnGoingOrderController()); + CompletedOrderController completedOrderController = Get.put(CompletedOrderController()) ; + + + FirebaseMessaging.instance.getInitialMessage().then((message) async{ + if (message != null) { + + RemoteNotification notification = message.notification!; + AndroidNotification? android = message.notification?.android; + if (android != null) { + + display(message); + currentOrderController.getOrder('created'); + onGoingOrderController.getCurrentOrder(); + completedOrderController.getCompletedOrder(); + + } + } + }); + + FirebaseMessaging.onMessage.listen((RemoteMessage message) async{ + print('message before data '); + print(message.data); + RemoteNotification notification = message.notification!; + AndroidNotification? android = message.notification?.android; + print('message before if data '); + + if (android != null) { + + display(message); + currentOrderController.getOrder('created'); + onGoingOrderController.getCurrentOrder(); + completedOrderController.getCompletedOrder(); + + print('message after if data '); + } + }); + + FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) async{ + print('A new onMessageOpenedApp event was published!'); + // message.data['orderid']; + RemoteNotification? notification = message.notification; + AndroidNotification? android = message.notification?.android; + if (notification != null && android != null) { + + Get.to(()=> HomeView(selectedIndex: 0,)); + + } + }); + + } + + + static Future selectNotification(String? payload) async { + + try { + Get.to(()=> HomeView(selectedIndex: 0,)); + } on Exception catch (e) { + print(e); + } + } + + + + static void display(RemoteMessage message) async { + print('message notification${message.notification}'); + print('message mutableContent${message.mutableContent}'); + + try { + final id = DateTime.now().millisecondsSinceEpoch ~/1000; + + + final NotificationDetails notificationDetails = NotificationDetails( + + android: AndroidNotificationDetails( + "Nearlexpress Business", + "Nearlexpress Business Notification", + importance: Importance.max, + priority: Priority.high, + icon: 'ic_launcher', + playSound: true, + sound: RawResourceAndroidNotificationSound('ring'), + largeIcon: const DrawableResourceAndroidBitmap('ic_launcher'), + vibrationPattern: Int64List.fromList([500, 1000, 500]), + enableVibration:true, + ), + ); + + await _notificationsPlugin.show( + id, + message.notification!.title, + message.notification!.body, + notificationDetails, + payload: message.data.toString(), + ); + } on Exception catch (e) { + print(e); + } + } + + +} \ No newline at end of file diff --git a/lib/Globalwidgets/binding.dart b/lib/Globalwidgets/binding.dart new file mode 100644 index 0000000..42e63d5 --- /dev/null +++ b/lib/Globalwidgets/binding.dart @@ -0,0 +1,11 @@ +import 'package:get/get.dart'; +import '../Controller/Authentication/Authcontroller.dart'; +import '../Controller/Dashboard/Dashboardcontroller.dart'; + +class GlobalBinding implements Bindings { + @override + void dependencies() { + Get.lazyPut(() => DashboardController()); + Get.lazyPut(() => AuthController(),fenix: true); + } +} \ No newline at end of file diff --git a/lib/Globalwidgets/textwidget.dart b/lib/Globalwidgets/textwidget.dart new file mode 100644 index 0000000..7d5caba --- /dev/null +++ b/lib/Globalwidgets/textwidget.dart @@ -0,0 +1,52 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import '../Helper/Constants/Colorconstants.dart'; + +class TextWidget extends StatelessWidget { + final String text; + final double? fontSize; + final double? textHeight; + final String? fontFamily; + final FontWeight? fontWeight; + final FontStyle? fontStyle; + final Color? color; + final TextAlign? textAlign; + final int? maxLines; + final TextDecoration? isUnderText; + + const TextWidget({ + super.key, + required this.text, + this.fontSize, + this.textHeight, + this.fontFamily, + this.fontWeight, + this.fontStyle, + this.color, + this.textAlign, + this.maxLines, + this.isUnderText, + }); + + + @override + Widget build(BuildContext context) { + return Text( + text, + style: TextStyle( + fontSize: fontSize ?? 13, + decoration: isUnderText, + fontFamily: fontFamily ?? 'Lato', + decorationColor: color, + fontWeight: fontWeight ?? FontWeight.normal, + fontStyle: fontStyle ?? FontStyle.normal, + color: color ?? Colors.black, + overflow: TextOverflow.ellipsis, + height: textHeight, + ), + maxLines: maxLines, + textAlign: textAlign ?? TextAlign.start, + ); + } +} + diff --git a/lib/Globalwidgets/web_view.dart b/lib/Globalwidgets/web_view.dart new file mode 100644 index 0000000..dc69afc --- /dev/null +++ b/lib/Globalwidgets/web_view.dart @@ -0,0 +1,65 @@ +import 'package:NearleDailyBusiness/Globalwidgets/textwidget.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:get/get_core/src/get_main.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +import '../Controller/More/web_view_controller.dart'; +import '../Helper/Constants/Colorconstants.dart'; + +class WebViewApp extends StatelessWidget { + final String url; + final String appBarText; + + const WebViewApp({ + super.key, + required this.url, + required this.appBarText, + }); + + @override + Widget build(BuildContext context) { + final controller = Get.put(WebViewAppController()); + controller.initializeWebViewController(url); + + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + backgroundColor: ColorConstants.primaryColor, + title: Row( + children: [ + InkWell( + onTap: () { + Get.back(); + }, + child: const Icon( + Icons.arrow_back_ios, + color: Colors.white, + ), + ), + const SizedBox(width: 5,), + TextWidget( + text: appBarText, + fontSize: 25, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ], + ), + ), + body: Stack( + children: [ + WebViewWidget( + controller: controller.webViewController, + ), + Obx(() { + return controller.isLoading.value + ? const Center(child: CircularProgressIndicator()) + : const SizedBox.shrink(); + }), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/Helper/Constants/Apiconstants.dart b/lib/Helper/Constants/Apiconstants.dart new file mode 100644 index 0000000..c63c5f7 --- /dev/null +++ b/lib/Helper/Constants/Apiconstants.dart @@ -0,0 +1,243 @@ +class ApiConstants { + static String mainDev = "dev"; + static String mainRoute = "live"; + + + //Describe + static String describeUrl=''; + + //Authentication + static String login=''; + static String configUrl=''; + + //User + static String user=''; + static String userUpdate=''; + + + //App Locations + static String appLocations=''; + + //App Category + static String appCategory= ''; + +//Customers + static String getCustomerByTenantId = ''; + static String createCustomer = ''; + static String createDeliveryAddress = ''; + static String getCustomerAddress = ''; + static String getCustomerSearchByTenantId = ''; + +//Admin + static String adminToken=''; + + + //Orders + static String getOrders = ''; + static String updateOrderStatus = ''; + static String getOrderSummary = ''; + static String createOrder = ''; + + //Deliveries + static String getDeliveries = ''; + +//Location + static String getLocationById = ''; + static String updateLocation = ''; + static String createLocation = ''; + + + //Notification + static String notifyUrl='' ; + + //Tenants + static String getTenantInfo = ''; + static String getTenantLocationById = ''; + static String getLocationsById = ''; + static String getTenantPricing = ''; + + + +//Get Partners + static String getPartnerInfo = ''; + + //Tenant User + static String createTenantUser = ''; + + + //Tenant Staffs + static String getStaffs = ''; + static String createStaff = ''; + static String updateStaff = ''; + + static String liveRoute = "https://fiesta.nearle.app/live/api/v1/mob/"; + static String liveRoute1 = "https://jupiter.nearle.app/live/api/v1/"; + + static String liveRouteV2 = "https://fiesta.nearle.app/live/api/v1/mob/"; + + // Products + static String getProducts = ""; + static String updateProduct = ""; + + // Riders + static String getRiders = ""; + + static String updateDelivery = ''; + + static String notifyRider = ''; + + static String createDelivery = ""; + + //Auth + + //LoginUrl + static String loginDev ='https://jupiter.gear.app/$mainDev/api/v1'; + static String loginLive ='https://jupiter.nearle.app/$mainRoute/api/v1'; + + //Describe + static String describeUrlDev="https://ariane.gear.app/$mainRoute/describe/get"; + static String describeUrlLive="https://ariane.nearle.app/v1/describe/get"; + + //User + static String userDev="https://fiesta.nearle.app/$mainDev/api/v1/mob/users"; + static String userLive="https://fiesta.nearle.app/$mainRoute/api/v1/mob/users"; + + static String userUpdateDev ="https://fiesta.nearle.app/$mainDev/api/v1/mob/users/update"; + static String userUpdateLive ="https://fiesta.nearle.app/$mainRoute/api/v1/mob/users/update"; + + + //config + static String configUrlDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/utils/getappconfig/"; + static String configUrlLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/utils/getappconfig/"; + + //Customers + static String getCustomerByTenantIdDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/customers/gettenantcustomers"; + static String getCustomerByTenantIdLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/customers/gettenantcustomers"; + + //CustomerSearch + static String getCustomerSearchByTenantIdDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/customers/search"; + static String getCustomerSearchByTenantIdLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/customers/search"; + + static String createCustomerDev = "https://fiesta.nearle.app/$mainDev/api/v1/mobcustomers/create"; + static String createCustomerLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/customers/create"; + + static String createDeliveryAddressDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/customers/locations/create"; + static String createDeliveryAddressLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/customers/locations/create"; + + static String getCustomerAddressDev= "https://fiesta.nearle.app/$mainDev/api/v1/mob/customers/locations/get/"; + static String getCustomerAddressLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/customers/locations/get/"; + + + + //Orders + static String getOrdersDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/orders/tenant/getorders"; + static String getOrdersLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/orders/tenant/getorders"; + + + // Orders + static const String getcustomerOrders = "https://api.workolik.com/api/rest/tenant/getorders"; + + + // Tenant info + static const String tenantInfo = "https://api.workolik.com/api/rest/gettenantinfo"; + + + static String updateOrderStatusDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/orders/updateorder"; + static String updateOrderStatusLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/orders/updateorder"; + + + static String getOrderSummaryDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/deliveries/deliverysummary"; + static String getOrderSummaryLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/deliveries/deliverysummary"; + + static String createOrderDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/orders/createorder"; + static String createOrderLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/orders/createorder"; + +//Deliveries + static String getDeliveriesDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/deliveries/getdeliveries"; + static String getDeliveriesLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/deliveries/getdeliveries"; + +//Tenants + static String getTenantInfoDev = "https://jupiter.nearle.app/$mainDev/api/v1/tenants/gettenantinfo"; + static String getTenantInfoLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/gettenantinfo"; + + static String getTenantLocationByIdDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/gettenantlocations/"; + static String getTenantLocationByIdLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/gettenantlocations/"; + + static String getLocationsByIdDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/gettenantlocation/"; + static String getLocationsByIdLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/gettenantlocation/"; + + static String getTenantPricingDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/gettenantpricing"; + static String getTenantPricingLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/gettenantpricing"; + + + + + //Notification + static String notifyUrlDev = "https://jupiter.nearle.app/$mainDev/api/v1/utils/sendnotifications" ; + static String notifyUrlLive = "https://jupiter.nearle.app/$mainRoute/api/v1/utils/sendnotifications" ; + + //App Locations + static String appLocationsDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/utils/getapplocations"; + static String appLocationsLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/utils/getapplocations"; + + //Get Partners + static String getPartnerInfoDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/partners/getpartners/"; + static String getPartnerInfoLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/partners/getpartners/"; + + //App Category + static String appCategoryDev= "https://fiesta.nearle.app/$mainDev/api/v1/mobutils/getsubcategories"; + static String appCategoryLive= "https://fiesta.nearle.app/$mainRoute/api/v1/mob/utils/getsubcategories"; + + static String getAppCategoryLive = "${liveRoute}utils/getcategories/"; + + //Tenant User + static String createTenantUserDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/createtenantuser"; + static String createTenantUserLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/createtenantuser"; + +//Admin + static String adminTokenDev="https://fiesta.nearle.app/$mainDev/api/v1/mob/utils/getapplocationconfig"; + static String adminTokenLive="https://fiesta.nearle.app/$mainRoute/api/v1/mob/utils/getapplocationconfig"; + + +//Location + static String getLocationByIdDev = "https://fiesta.nearle.app/$mainDev/api/v1/mobtenants/gettenantlocations/"; + static String getLocationByIdLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/gettenantlocations/"; + + static String updateLocationDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/updatelocation"; + static String updateLocationLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/updatelocation"; + + static String createLocationDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/createlocation"; + static String createLocationLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/createlocation"; + + + //Tenant Staffs + static String getStaffsDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/getstaffs"; + static String getStaffsLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/getstaffs"; + + static String createStaffDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/createstaff"; + static String createStaffLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/createstaff"; + + static String updateStaffDev = "https://fiesta.nearle.app/$mainDev/api/v1/mob/tenants/updatestaff"; + static String updateStaffLive = "https://fiesta.nearle.app/$mainRoute/api/v1/mob/tenants/updatestaff"; + + + /// https://jupiter.nearle.app/live/api/v1/products/getallproducts?categoryid=1001&subcategoryid=0 + /// Get Products + static String getProductLive = "${liveRoute}products/getallproducts"; + + static String updateProductLive = "${liveRoute}products/update"; + + static String getRidersLive = "${liveRouteV2}partners/getriders/"; + + static String updateDeliveryLive = "${liveRoute}deliveries/updatedelivery"; + + static String notifyRiderLive = "${liveRoute1}utils/notifyuser"; + + static String createDeliveryLive = "${liveRoute}deliveries/createdeliveries"; + + + + // orders/getorders/?applocationid=0&status=created&fromdate=2025-07-17&todate=2025-07-17&pageno=1&pagesize=10&keyword= + // static String getOrdersLive = "${liveRoute}/orders/getorders"; + +} diff --git a/lib/Helper/Constants/Assetconstants.dart b/lib/Helper/Constants/Assetconstants.dart new file mode 100644 index 0000000..f42b4a2 --- /dev/null +++ b/lib/Helper/Constants/Assetconstants.dart @@ -0,0 +1,31 @@ +class AssetConstants { + static const String nearleDarkLogo = "assets/images/nearledark.png"; + static const String nearleLogin = "assets/images/nearleLogin.png"; + static const String nearlelightlogo = "assets/images/nearlelightlogo.png"; + static const String nearleAppbarTop = "assets/images/NearleAppbarTop.png"; + static const String nearleAppbarDarkLogo = "assets/images/nearle_dark_logo.png"; + static const String nearleAppbarBottom = "assets/images/NearleAppbarbottom.png"; + static const String MoreBackground = "assets/images/moreTopBackground.png"; + static const String NearleAppbarIcon = "assets/images/launcher_icon.png"; + static const String privacyPolicy="assets/images/privacypolicy.png"; + static const String NoRecords = "assets/images/errandsnoRecords.png"; + static const String appbarTopBackground = "assets/images/moreTopBackground2.png"; + static const String nearleTextLogo = "assets/images/nearletextlogo.png"; + static const String introBanner1="assets/images/introbanner1.png"; + static const String introBanner2="assets/images/introbanner2.png"; + static const String nearleWhiteLogo="assets/images/nearle_white_logo.png"; + static const String nearleTextLogoWhite="assets/images/nearletextwhitelogo.png"; + static const String noOrderFound = "assets/images/no_products_found.png"; + static const String noOrdersFound = "assets/images/noOrders.png"; + static const String noProductsFound = "assets/images/no_products_found.png"; + static const String onBoarding1 = "assets/images/onboarding images (7).png"; + static const String onBoarding2 = "assets/images/onboarding images (6).png"; + static const String onBoarding3 = "assets/images/onboarding images (7).png"; + static const String noCustomersFound = "assets/images/nocustomersnow.png"; + static const String otpImage = "assets/images/otp_image.png"; + static const String loginImage = "assets/images/login_image.png"; + static const String nearledailylogodark = "assets/images/nearledailylogodark.png"; + static const String nearledailyImage = "assets/images/nearledailyImage.png"; + static const String noProfile = "assets/images/noProfile.png"; + +} \ No newline at end of file diff --git a/lib/Helper/Constants/Colorconstants.dart b/lib/Helper/Constants/Colorconstants.dart new file mode 100644 index 0000000..b1613b8 --- /dev/null +++ b/lib/Helper/Constants/Colorconstants.dart @@ -0,0 +1,15 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; + +class ColorConstants { + static const primaryColor = Color(0xFF662582); + static Color? secondaryColor = Colors.white; + static Color? textFieldColor = Colors.grey[700]!; + static Color? lightColor = Color.fromRGBO(244, 244, 244, 1); + static Color? errandsColor = Colors.blue[100]!; + static Color? primaryColor1 = const Color(0xFFE7D3EF); + static Color? darkGreyColor=Color(0XFF575756); + static Color? lightGreyBg=Colors.grey.shade100; + static Color? blackColor=Colors.black; +} \ No newline at end of file diff --git a/lib/Helper/Constants/api_config.dart b/lib/Helper/Constants/api_config.dart new file mode 100644 index 0000000..44b4947 --- /dev/null +++ b/lib/Helper/Constants/api_config.dart @@ -0,0 +1,44 @@ +import 'Apiconstants.dart'; + +class ApiConfig { + static void setLive() { + ApiConstants.describeUrl = ApiConstants.describeUrlLive; + ApiConstants.login = ApiConstants.loginLive; + ApiConstants.configUrl = ApiConstants.configUrlLive; + ApiConstants.user = ApiConstants.userLive; + ApiConstants.getCustomerByTenantId = ApiConstants.getCustomerByTenantIdLive; + ApiConstants.getDeliveries = ApiConstants.getDeliveriesLive; + ApiConstants.notifyUrl = ApiConstants.notifyUrlLive; + ApiConstants.updateOrderStatus = ApiConstants.updateOrderStatusLive; + ApiConstants.getOrderSummary = ApiConstants.getOrderSummaryLive; + ApiConstants.getTenantInfo = ApiConstants.getTenantInfoLive; + ApiConstants.appLocations = ApiConstants.appLocationsLive; + ApiConstants.getPartnerInfo = ApiConstants.getPartnerInfoLive; + ApiConstants.appCategory = ApiConstants.getAppCategoryLive; + ApiConstants.createTenantUser = ApiConstants.createTenantUserLive; + ApiConstants.createCustomer = ApiConstants.createCustomerLive; + ApiConstants.createDeliveryAddress = ApiConstants.createDeliveryAddressLive; + ApiConstants.getCustomerAddress = ApiConstants.getCustomerAddressLive; + ApiConstants.getTenantLocationById = ApiConstants.getTenantLocationByIdLive; + ApiConstants.getLocationsById = ApiConstants.getLocationsByIdLive; + ApiConstants.adminToken = ApiConstants.adminTokenLive; + ApiConstants.getTenantPricing = ApiConstants.getTenantPricingLive; + ApiConstants.createOrder = ApiConstants.createOrderLive; + ApiConstants.getOrders = ApiConstants.getOrdersLive; + ApiConstants.getLocationById = ApiConstants.getLocationByIdLive; + ApiConstants.updateLocation = ApiConstants.updateLocationLive; + ApiConstants.createLocation = ApiConstants.createLocationLive; + ApiConstants.getStaffs = ApiConstants.getStaffsLive; + ApiConstants.createStaff = ApiConstants.createStaffLive; + ApiConstants.updateStaff = ApiConstants.updateStaffLive; + ApiConstants.userUpdate = ApiConstants.userUpdateLive; + ApiConstants.getCustomerSearchByTenantId = + ApiConstants.getCustomerSearchByTenantIdLive; + ApiConstants.getProducts = ApiConstants.getProductLive; + ApiConstants.updateProduct = ApiConstants.updateProductLive; + ApiConstants.getRiders = ApiConstants.getRidersLive; + ApiConstants.updateDelivery = ApiConstants.updateDeliveryLive; + ApiConstants.notifyRider = ApiConstants.notifyRiderLive; + ApiConstants.createDelivery = ApiConstants.createDeliveryLive; + } +} \ No newline at end of file diff --git a/lib/Helper/Locationservice/Locationservice.dart b/lib/Helper/Locationservice/Locationservice.dart new file mode 100644 index 0000000..4f7e601 --- /dev/null +++ b/lib/Helper/Locationservice/Locationservice.dart @@ -0,0 +1,89 @@ + +import 'package:geolocator/geolocator.dart'; +import 'package:http/http.dart'; + +import '../../Model/Response/Appconfig/Appconfigresponse.dart'; +import '../Constants/Apiconstants.dart'; +import 'app_config_service.dart'; +import 'dart:convert' as convert; + +class LocationService { + AppConfigurationService appConfigurationService = AppConfigurationService(); + + + Future getGoogleApi() async{ + var result = await appConfigurationService.getAppConfig("${ApiConstants.configUrl}?configid=1"); + return result; + + } + + Future getPlaceId(String input) async{ + final String key = "AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8"; + // https://maps.googleapis.com/maps/api/place/autocomplete/json?input=podanur&components=country:IN&key=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8 + String base = "https://maps.googleapis.com/maps/api/place/autocomplete/json"; + String path = "$base?input=$input&components=country:IN&key=$key"; + print(path); + var response = await get(Uri.parse(path)); + var json = convert.jsonDecode(response.body); + print(convert.jsonDecode(response.body)); + print(response.body); + var placeId = json['predictions']; + return placeId; + } + + Future> getPlaces(String input) async{ + final String key = "AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8"; + + String base = "https://maps.googleapis.com/maps/api/place/details/json"; + String path = "$base?key=$key&placeid=$input"; + print('path $path'); + var response = await get(Uri.parse(path)); + var json = convert.jsonDecode(response.body); + print(convert.jsonDecode(response.body)); + var results = json['result']; + + return results; + + } + + + Future getLocation() async { + getGoogleApi(); + bool serviceEnabled; + LocationPermission permission; + + // Test if location services are enabled. + // serviceEnabled = await Geolocator.isLocationServiceEnabled(); + // if (!serviceEnabled) { + // // permission = await Geolocator.requestPermission(); + // await Geolocator.openLocationSettings(); + // + // // Location services are not enabled don't continue + // // accessing the position and request users of the + // // App to enable the location services. + // return Future.error('Location services are disabled.'); + // } + + permission = await Geolocator.checkPermission(); + if (permission == LocationPermission.denied) { + permission = await Geolocator.requestPermission(); + if (permission == LocationPermission.denied) { + return Future.error('Location permissions are denied'); + } + } + + if (permission == LocationPermission.deniedForever) { + await Geolocator.openLocationSettings(); + // Permissions are denied forever, handle appropriately. + return Future.error( + 'Location permissions are permanently denied, we cannot request permissions.'); + } + + Position position = await Geolocator.getCurrentPosition(); + + print(position); + return position; + } + + +} \ No newline at end of file diff --git a/lib/Helper/Locationservice/app_config_service.dart b/lib/Helper/Locationservice/app_config_service.dart new file mode 100644 index 0000000..2ca40be --- /dev/null +++ b/lib/Helper/Locationservice/app_config_service.dart @@ -0,0 +1,39 @@ +import 'dart:convert'; +import 'package:http/http.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../Model/Response/Appconfig/Appconfigresponse.dart'; + +class AppConfigurationService{ + + Future getAppConfig( + String urldata, + ) async { + AppConfigResponse? appConfigResponse; + try { + final url = Uri.parse(urldata); + + final response = await get(url, headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + // 'Authorization': '$token', + }); + print('appConfigResponsesproviderurldata!!!!!!!!${urldata.toString()}'); + Map parsedJson = json.decode(response.body.toString()); + + appConfigResponse = AppConfigResponse.fromJson(parsedJson); + SharedPreferences prefs = await SharedPreferences.getInstance(); + + // prefs.setString('clientid', appConfigResponse.details?.clientid??''); + prefs.setString('fcmkey', appConfigResponse.details?.fcmkey??''); + prefs.setString('googleApiKey',appConfigResponse.details?.googleapikey??''); + + // print('appConfigResponseclientid${appConfigResponse.details?.clientid}'); + print('appConfigResponsegoogleapikey${appConfigResponse.details?.googleapikey}'); + } catch (e) { + print(e.toString()); + print("error"); + } + return appConfigResponse; + } + +} \ No newline at end of file diff --git a/lib/Helper/Logger.dart b/lib/Helper/Logger.dart new file mode 100644 index 0000000..51bc40d --- /dev/null +++ b/lib/Helper/Logger.dart @@ -0,0 +1,12 @@ +import 'package:logger/logger.dart'; + +var logger = Logger( + printer: PrettyPrinter( + methodCount: 2, // Number of method calls to be displayed + errorMethodCount: 8, // Number of method calls if stacktrace is provided + lineLength: 300, // Width of the output + colors: true, // Colorful log messages + printEmojis: true, // Print an emoji for each log message + printTime: false // Should each log print contain a timestamp + ), +); \ No newline at end of file diff --git a/lib/Helper/adaptive.dart b/lib/Helper/adaptive.dart new file mode 100644 index 0000000..e048e11 --- /dev/null +++ b/lib/Helper/adaptive.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:get/get_core/src/get_main.dart'; +class ResponsiveWidget extends StatelessWidget { + final Widget? largeScreen; + final Widget? mediumScreen; + final Widget? smallScreen; + final Widget? bigScreen; + const ResponsiveWidget( + {Key? key, + @required this.largeScreen, + this.mediumScreen, + this.smallScreen,this.bigScreen}) + : super(key: key); + + + static bool isSmallScreen(BuildContext context) { + return Get.height > 920; + } + + static bool isMediumScreen(BuildContext context) { + return Get.height >=900 && + Get.height <=1200; + } + + static bool isLargeScreen(BuildContext context) { + return Get.height > 1200 && + Get.height <=1400; + } + + static bool isBigScreen(BuildContext context) { + return Get.height > 1400; + } + + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (context, constraints) { + if (constraints.maxHeight > 1400) { + return bigScreen!; + } else if (constraints.maxHeight <= 1400 && constraints.maxHeight > 1200) { + return largeScreen!; + } else if(constraints.maxHeight <= 1200 && constraints.maxHeight >=900) { + return mediumScreen!; + } + else{ + return smallScreen!; + } + }, + ); + } +} diff --git a/lib/Helper/customDio.dart b/lib/Helper/customDio.dart new file mode 100644 index 0000000..a49e139 --- /dev/null +++ b/lib/Helper/customDio.dart @@ -0,0 +1,170 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:dio/adapter.dart'; +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + + +class CustomDio{ + + +Dio? _dio; +CustomDio(){ + BaseOptions options = BaseOptions(connectTimeout: 100000,receiveTimeout: 100000); + // options.baseUrl = hostApi; + _dio = Dio(options); + // _dio.interceptors.add(LogInterceptor()); +} + +String? token; +String? stripeDevKey; +getToken()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + token= prefs.getString('token')!; + stripeDevKey= prefs.getString('stripedevkey')!; + print("devkey====$stripeDevKey"); +} + +Future get({@required String? url}) async { + await getToken(); + (_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = + (HttpClient client) { + client.badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + return client; + }; + var data = {'token':'$token'}; + print("wrl$url"); + + Response? response; + try{ + response = await _dio?.get(url!,options: Options( + responseType: ResponseType.plain, + headers: data,contentType: "application/json" + )); + } + catch(e){ + print(e.toString()); + } + return response; +} + +Future post({@required String? url, + @required dynamic params,Map? header +}) async { + // await getToken(); + + + (_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = + (HttpClient client) { + client.badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + return client; + }; + + Response? response; + try{ + response = await _dio!.post(url!,data: params!,options + :Options(responseType: ResponseType.json,contentType: "application/json",headers: header)); + } + on DioError catch (e) { + print('dioerror fetch'); + if (e.type == DioErrorType.response) { + print('catched'); + } + if (e.type == DioErrorType.connectTimeout) { + print('check your connection'); + } + + if (e.type == DioErrorType.receiveTimeout) { + print('unable to connect to the server'); + } + + if (e.type == DioErrorType.other) { + print('Something went wrong'); + } + print('try errors'); + print('errorsssssssssssssssss.....'); + print(e.response!); + print(e.response!.data); + print(e.message); + print(e); + } + + return response; +} + +//verify + Future verifyPost({@required String? url, + @required Map? params, Map? header + }) async { + + (_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = + (HttpClient client) { + client.badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + return client; + }; + + print("data${params.toString()}"); + Response? response; + try{ + response = await _dio!.post(url!,data: params,options + :Options(responseType: ResponseType.json, + headers:header, + contentType: "application/json")); + } + catch(e){ + print(e.toString()); + } + print("ressscatcherror${response.toString()}"); + return response; + } + + +//app config +Future newGet({@required String? url}) async { + + (_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = + (HttpClient client) { + client.badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + return client; + }; + Response? response; + try{ + response = await _dio?.get(url!,options + :Options(responseType: ResponseType.json)); + } + catch(e){ + print(e.toString()); + } + return response!; +} + + + +Future put({@required String? url,@required Map? params,@required Map? header}) async { + await getToken(); + + + (_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = + (HttpClient client) { + client.badCertificateCallback = + (X509Certificate cert, String host, int port) => true; + return client; + }; + + var data = {'x-access-token': '$token'}; + + Response? response; + try{ + response = await _dio!.put(url!,data:params,options: Options(responseType: ResponseType.json,headers: data,contentType: "application/json")); + } + catch(e){ + print(e.toString()); + } + return response!; +} +} \ No newline at end of file diff --git a/lib/Helper/custombutton.dart b/lib/Helper/custombutton.dart new file mode 100644 index 0000000..e2a6360 --- /dev/null +++ b/lib/Helper/custombutton.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; + +import 'Constants/Colorconstants.dart'; + +class RoundedButton extends StatelessWidget { + const RoundedButton( + {Key? key, + required this.onPressed, + required this.title, + required this.color, + required this.height, + required this.width, + required this.controller, + required this.textStyle}) + : super(key: key); + final VoidCallback onPressed; + final String title; + final Color color; + final double height; + final double width; + final RoundedLoadingButtonController controller; + final TextStyle textStyle; + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () {}, + child: Center( + child: RoundedLoadingButton( + height:height, + width: width, + color: color, + controller: controller, + onPressed: onPressed, + successColor: ColorConstants.primaryColor, + child: Text( + title, + style: textStyle, + ))), + ); + } +} diff --git a/lib/Helper/customederaction.dart b/lib/Helper/customederaction.dart new file mode 100644 index 0000000..5bd5710 --- /dev/null +++ b/lib/Helper/customederaction.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; + +import 'Constants/Colorconstants.dart'; + + +class CustomDecoration { + static InputDecoration textFieldStyle( + {String? labelTextStr = "", + String? hintTextStr = "", + Widget? prefixIcon}) { + return InputDecoration( + fillColor: Colors.white, + labelText: labelTextStr, + labelStyle: const TextStyle( + color: Color.fromRGBO(139, 137, 137, 1.0), + ), + hintText: hintTextStr, + prefixIcon: prefixIcon, + counterText: "", + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(5), + borderSide: BorderSide(color: Colors.grey[200]!, width: 2) + + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(5), + borderSide: BorderSide(color: Colors.grey[200]!, width: 2)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(5), + borderSide: + const BorderSide(color: ColorConstants.primaryColor, width: 2)), + ); + } +} diff --git a/lib/Helper/location_service.dart b/lib/Helper/location_service.dart new file mode 100644 index 0000000..69da978 --- /dev/null +++ b/lib/Helper/location_service.dart @@ -0,0 +1,85 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; +import 'Logger.dart'; + +class GooglePlacesService { + + String? latitude; + String? longitude; + String? city; + int? radius; + + GooglePlacesService(); + Future>> getPlacesPredictions(String input) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + final url = Uri.parse( + 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input&components=country:IN&key=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); + // 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=$input$city&location=$latitude,$longitude&radius=15000&bounds=$latitude,$longitude&components=country:IN&types=establishment&key=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); + logger.i(url); + final response = await http.get(url); + + if (response.statusCode == 200) { + final Map data = json.decode(response.body); + final predictions = data['predictions'] as List; + return predictions.map((prediction) => prediction as Map).toList(); + } else { + throw Exception('Failed to load autocomplete suggestions'); + } + } + + Future> getPlaceDetails(String placeId) async { + final url = Uri.parse( + 'https://maps.googleapis.com/maps/api/place/details/json?place_id=$placeId&key=AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); + + final response = await http.get(url); + + if (response.statusCode == 200) { + final details = json.decode(response.body)['result']; + return Map.from(details); + } else { + throw Exception('Failed to load place details'); + } + } + + Future getPlaceIdFromAddress(String address) async { + const String apiKey = 'AIzaSyDQ2c_pOSOFYSjxGMwkFvCVWKjYOM9siow'; // Replace with your Google API key + final String url = 'https://maps.googleapis.com/maps/api/geocode/json?address=${Uri.encodeComponent(address)}&key=$apiKey'; + + final response = await http.get(Uri.parse(url)); + + if (response.statusCode == 200) { + final data = json.decode(response.body); + + if (data['results'].isNotEmpty) { + String placeId = data['results'][0]['place_id']; + logger.i('The placeId from GooglePlace APi : ${placeId}'); + return placeId; + } else { + print('No results found for the provided address.'); + } + } else { + print('Failed to fetch Place ID. Status code: ${response.statusCode}'); + } + return null; + } + + Future getDistance(double pickupLat, double pickupLong, double dropLat, double dropLong) async { + const apiKey = 'AIzaSyDQ2c_pOSOFYSjxGMwkFvCVWKjYOM9siow'; + final url = + 'https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=$pickupLat,$pickupLong&destinations=$dropLat,$dropLong&key=$apiKey'; + + final response = await http.get(Uri.parse(url)); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + final distanceText = data['rows'][0]['elements'][0]['distance']['text']; + final distanceValue = data['rows'][0]['elements'][0]['distance']['value'] / 1000; // Convert meters to kilometers + print('Distance: $distanceText'); + return distanceValue; + } else { + throw Exception('Failed to load distance'); + } + } + +} \ No newline at end of file diff --git a/lib/Helper/toast.dart b/lib/Helper/toast.dart new file mode 100644 index 0000000..caa1b02 --- /dev/null +++ b/lib/Helper/toast.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +import 'Constants/Colorconstants.dart'; + +class Toast{ + static void showToast(String message){ + Fluttertoast.showToast( + msg: message, + textColor: ColorConstants.secondaryColor, + timeInSecForIosWeb: 1, + webShowClose: true, + backgroundColor: Colors.grey[500], + gravity: ToastGravity.TOP_RIGHT, + fontSize: 15.0 + + ); + } +} \ No newline at end of file diff --git a/lib/Helper/utility.dart b/lib/Helper/utility.dart new file mode 100644 index 0000000..1d8e151 --- /dev/null +++ b/lib/Helper/utility.dart @@ -0,0 +1,150 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import 'Constants/Colorconstants.dart'; + +class Utility{ + static Color getLightColors(String character){ + final List alphabets=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; + final List colors = [ + Colors.blue[100]!, + Colors.indigo[100]!, + Colors.lime[100]!, + Colors.teal[100]!, + Colors.cyan[100]!, + Colors.amber[100]!, + Colors.brown[100]!, + Colors.green[100]!, + Colors.lightGreen[100]!, + Colors.red[100]!, + Colors.deepPurple[100]!, + Colors.blueGrey[100]!, + Colors.yellow[100]!, + Colors.deepOrange[100]!, + Colors.teal[100]!, + Colors.cyan[100]!, + Colors.amber[100]!, + Colors.blueGrey[100]!, + Colors.green[100]!, + Colors.lightGreen[100]!, + Colors.red[100]!, + Colors.deepPurple[100]!, + Colors.pink[100]!, + Colors.deepPurple[100]!, + Colors.purpleAccent[100]!, + Colors.orange[100]! + ]; + return RegExp(r"^[a-zA-Z]").hasMatch(character)?colors[alphabets.indexOf(character.toUpperCase())]:colors[0]; + } + + static void openPhoneCallApp(String phoneNumber) { + launch("tel:$phoneNumber"); + } + + + static Future openMap(double latitude, double longitude) async { + String googleUrl = + 'https://www.google.com/maps/search/?api=1&query=$latitude,$longitude'; + if (await canLaunch(googleUrl) != null) { + await launch(googleUrl); + } else { + throw 'Could not open the map.'; + } + } +} +class UtilityPromotion{ + static Color getLightColors(String character){ + + final List alphabets=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; + final List colors = [ + Colors.blue[200]!, + Colors.indigo[200]!, + Colors.lime[200]!, + Colors.teal[200]!, + Colors.cyan[200]!, + Colors.deepPurple[200]!, + Colors.brown[200]!, + Colors.green[200]!, + Colors.lightGreen[200]!, + Colors.red[200]!, + Colors.deepPurple[200]!, + Colors.deepPurple[200]!, + Colors.yellow[200]!, + Colors.deepOrange[200]!, + Colors.teal[200]!, + Colors.cyan[200]!, + Colors.deepPurple[200]!, + Colors.deepPurple[200]!, + Colors.green[200]!, + Colors.lightGreen[200]!, + Colors.red[200]!, + Colors.deepPurple[200]!, + Colors.pink[200]!, + Colors.deepPurple[200]!, + Colors.purpleAccent[200]!, + Colors.orange[200]! + ]; + return RegExp(r"^[a-zA-Z]").hasMatch(character)?colors[alphabets.indexOf(character.toUpperCase())]:colors[0]; + } + +} + + +class UtilityCustomers{ + static Color getLightColors(String character){ + final List alphabets=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; + final List colors = [ + ColorConstants.primaryColor, + Colors.blue, + Colors.redAccent, + Colors.black54, + Colors.redAccent, + Colors.black54, + Colors.black54, + Colors.orange, + Colors.purpleAccent, + Colors.purple, + Colors.pinkAccent, + Colors.teal, + Colors.blue, + Colors.redAccent, + Colors.black54, + Colors.redAccent, + Colors.black54, + Colors.purpleAccent, + Colors.purple, + Colors.orange, + Colors.pinkAccent, + Colors.teal, + Colors.blue, + Colors.redAccent, + Colors.black54, + Colors.redAccent, + Colors.black54, + Colors.pink + ]; + return RegExp(r"^[a-zA-Z]").hasMatch(character)?colors[alphabets.indexOf(character.toUpperCase())]:colors[0]; + } +} + + +final Color shoppingColor = Colors.orange[100]!; +final Color wellnessColor = Colors.cyan[100]!; +final Color servicesColor = Colors.red[100]!; +class UtilityModules{ + static Color getLightColors(String character){ + final List alphabets=['RE','GR','SH','HE','HA']; + final List colors = [ + Colors.amber[100]!, + Colors.purple[100]!, + Colors.orange[100]!, + Colors.cyan[100]!, + Colors.red[100]!, + ]; + return RegExp(r"^[a-zA-Z]").hasMatch(character)?colors[alphabets.indexOf(character.toUpperCase())]:colors[0]; + } +} + + diff --git a/lib/Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart b/lib/Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart new file mode 100644 index 0000000..53c35bb --- /dev/null +++ b/lib/Model/Request/Authentication/Createuser/Createdeliveryaddress/Createdeliveryaddressrequest.dart @@ -0,0 +1,60 @@ +class CreateDeliveryAddress { + int? locationid; + int? customerid; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? doorno; + String? landmark; + String? latitude; + String? longitude; + int? primaryaddress; + + CreateDeliveryAddress( + {this.locationid, + this.customerid, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.doorno, + this.landmark, + this.latitude, + this.longitude, + this.primaryaddress}); + + CreateDeliveryAddress.fromJson(Map json) { + locationid = json['locationid']; + customerid = json['customerid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + doorno = json['doorno']; + landmark = json['landmark']; + latitude = json['latitude']; + longitude = json['longitude']; + primaryaddress = json['defaultaddress']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['customerid'] = this.customerid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['doorno'] = this.doorno; + data['landmark'] = this.landmark; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['defaultaddress'] = this.primaryaddress; + return data; + } +} diff --git a/lib/Model/Request/Authentication/Createuser/Createuserresponse.dart b/lib/Model/Request/Authentication/Createuser/Createuserresponse.dart new file mode 100644 index 0000000..5c303f1 --- /dev/null +++ b/lib/Model/Request/Authentication/Createuser/Createuserresponse.dart @@ -0,0 +1,303 @@ +class CreateTenantUser { + int? tenantid; + int? partnerid; + int? configid; + String? tenantname; + String? tenanttype; + String? registrationno; + String? devicetype; + String? deviceid; + String? tenanttoken; + String? companyname; + String? firstname; + String? primaryemail; + String? primarycontact; + int? categoryid; + int? subcategoryid; + int? moduleid; + int? allocationid; + String? address; + String? suburb; + String? state; + String? city; + String? postcode; + String? latitude; + String? longitude; + String? tenantimage; + int? applocationid; + int? approved; + int? roleid; + Tenantlocations? tenantlocations; + Tenantsubscriptions? tenantsubscriptions; + + CreateTenantUser( + {this.tenantid, + this.partnerid, + this.configid, + this.tenantname, + this.tenanttype, + this.registrationno, + this.devicetype, + this.deviceid, + this.tenanttoken, + this.companyname, + this.firstname, + this.primaryemail, + this.primarycontact, + this.categoryid, + this.subcategoryid, + this.moduleid, + this.address, + this.suburb, + this.state, + this.city, + this.postcode, + this.latitude, + this.longitude, + this.applocationid, + this.approved, + this.roleid, + this.tenantlocations, + this.tenantsubscriptions, + this.allocationid, + this.tenantimage, + }); + + CreateTenantUser.fromJson(Map json) { + tenantid = json['tenantid']; + partnerid = json['partnerid']; + configid = json['configid']; + tenantname = json['tenantname']; + tenanttype = json['tenanttype']; + registrationno = json['registrationno']; + devicetype = json['devicetype']; + deviceid = json['deviceid']; + tenanttoken = json['tenanttoken']; + companyname = json['companyname']; + firstname = json['firstname']; + primaryemail = json['primaryemail']; + primarycontact = json['primarycontact']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + moduleid = json['moduleid']; + address = json['address']; + suburb = json['suburb']; + state = json['state']; + city = json['city']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + applocationid = json['applocationid']; + approved = json['approved']; + allocationid = json['allocationid']; + roleid = json['roleid']; + tenantimage = json['tenantimage']; + tenantlocations = json['tenantlocations'] != null + ? new Tenantlocations.fromJson(json['tenantlocations']) + : null; + tenantsubscriptions = json['tenantsubscriptions'] != null + ? new Tenantsubscriptions.fromJson(json['tenantsubscriptions']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['tenantid'] = this.tenantid; + data['partnerid'] = this.partnerid; + data['configid'] = this.configid; + data['tenantname'] = this.tenantname; + data['tenanttype'] = this.tenanttype; + data['registrationno'] = this.registrationno; + data['devicetype'] = this.devicetype; + data['deviceid'] = this.deviceid; + data['tenanttoken'] = this.tenanttoken; + data['companyname'] = this.companyname; + data['firstname'] = this.firstname; + data['primaryemail'] = this.primaryemail; + data['primarycontact'] = this.primarycontact; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['moduleid'] = this.moduleid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['state'] = this.state; + data['city'] = this.city; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['applocationid'] = this.applocationid; + data['approved'] = this.approved; + data['allocationid'] = this.allocationid; + data['roleid'] = this.roleid; + data['tenantimage'] = this.tenantimage; + if (this.tenantlocations != null) { + data['tenantlocations'] = this.tenantlocations!.toJson(); + } + if (this.tenantsubscriptions != null) { + data['tenantsubscriptions'] = this.tenantsubscriptions!.toJson(); + } + return data; + } +} + +class Tenantlocations { + int? locationid; + int? applocationid; + int? tenantid; + int? moduleid; + String? locationname; + String? email; + String? contactno; + String? address; + String? suburb; + String? state; + String? city; + String? postcode; + String? latitude; + String? longitude; + int? partnerid; + String? opentime; + String? closetime; + int? deliverytype; + int? deliverymins; + int? cancelsecs; + + Tenantlocations( + {this.locationid, + this.applocationid, + this.tenantid, + this.moduleid, + this.locationname, + this.email, + this.contactno, + this.address, + this.suburb, + this.state, + this.city, + this.postcode, + this.latitude, + this.longitude, + this.partnerid, + this.opentime, + this.closetime, + this.deliverytype, + this.deliverymins, + this.cancelsecs}); + + Tenantlocations.fromJson(Map json) { + locationid = json['locationid']; + applocationid = json['applocationid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + locationname = json['locationname']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + state = json['state']; + city = json['city']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + partnerid = json['partnerid']; + opentime = json['opentime']; + closetime = json['closetime']; + deliverytype = json['deliverytype']; + deliverymins = json['deliverymins']; + cancelsecs = json['cancelsecs']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['applocationid'] = this.applocationid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['locationname'] = this.locationname; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['state'] = this.state; + data['city'] = this.city; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['partnerid'] = this.partnerid; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['deliverytype'] = this.deliverytype; + data['deliverymins'] = this.deliverymins; + data['cancelsecs'] = this.cancelsecs; + return data; + } +} + +class Tenantsubscriptions { + int? subscriptionid; + int? tenantid; + String? transactiondate; + int? moduleid; + int? applocationid; + int? categoryid; + int? subcategoryid; + String? validitydate; + double? subscriptionprice; + int? quantity; + double? taxamount; + int? taxpercent; + double? totalamount; + int? paymentstatus; + + Tenantsubscriptions( + {this.subscriptionid, + this.tenantid, + this.transactiondate, + this.moduleid, + this.applocationid, + this.categoryid, + this.subcategoryid, + this.validitydate, + this.subscriptionprice, + this.quantity, + this.taxamount, + this.taxpercent, + this.totalamount, + this.paymentstatus}); + + Tenantsubscriptions.fromJson(Map json) { + subscriptionid = json['subscriptionid']; + tenantid = json['tenantid']; + transactiondate = json['transactiondate']; + moduleid = json['moduleid']; + applocationid = json['applocationid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + validitydate = json['validitydate']; + subscriptionprice = json['subscriptionprice'].toDouble(); + quantity = json['quantity']; + taxamount = json['taxamount'].toDouble(); + taxpercent = json['taxpercent']; + totalamount = json['totalamount'].toDouble(); + paymentstatus = json['paymentstatus']; + } + + Map toJson() { + final Map data = new Map(); + data['subscriptionid'] = this.subscriptionid; + data['tenantid'] = this.tenantid; + data['transactiondate'] = this.transactiondate; + data['moduleid'] = this.moduleid; + data['applocationid'] = this.applocationid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['validitydate'] = this.validitydate; + data['subscriptionprice'] = this.subscriptionprice; + data['quantity'] = this.quantity; + data['taxamount'] = this.taxamount; + data['taxpercent'] = this.taxpercent; + data['totalamount'] = this.totalamount; + data['paymentstatus'] = this.paymentstatus; + return data; + } +} diff --git a/lib/Model/Request/Authentication/Loginrequest.dart b/lib/Model/Request/Authentication/Loginrequest.dart new file mode 100644 index 0000000..92cb34a --- /dev/null +++ b/lib/Model/Request/Authentication/Loginrequest.dart @@ -0,0 +1,32 @@ +class LoginRequest { + String? contactno; + int? configid; + String? userfcmtoken; + String? devicetype; + String? deviceid; + + LoginRequest( + {this.contactno, + this.configid, + this.userfcmtoken, + this.devicetype, + this.deviceid}); + + LoginRequest.fromJson(Map json) { + contactno = json['contactno']; + configid = json['configid']; + userfcmtoken = json['userfcmtoken']; + devicetype = json['devicetype']; + deviceid = json['deviceid']; + } + + Map toJson() { + final Map data = new Map(); + data['contactno'] = this.contactno; + data['configid'] = this.configid; + data['userfcmtoken'] = this.userfcmtoken; + data['devicetype'] = this.devicetype; + data['deviceid'] = this.deviceid; + return data; + } +} diff --git a/lib/Model/Request/Authentication/Sms/Smsrequest.dart b/lib/Model/Request/Authentication/Sms/Smsrequest.dart new file mode 100644 index 0000000..a72a3ba --- /dev/null +++ b/lib/Model/Request/Authentication/Sms/Smsrequest.dart @@ -0,0 +1,66 @@ +class SmsRequest { + String? locale; + int? channelTimeout; + // String? clientRef; + int? codeLength; + String? code; + String? brand; + List? workflow; + + SmsRequest( + {this.locale, + this.channelTimeout, + // this.clientRef, + this.codeLength, + this.code, + this.brand, + this.workflow}); + + SmsRequest.fromJson(Map json) { + locale = json['locale']; + channelTimeout = json['channel_timeout']; + // clientRef = json['client_ref']; + codeLength = json['code_length']; + code = json['code']; + brand = json['brand']; + if (json['workflow'] != null) { + workflow = []; + json['workflow'].forEach((v) { + workflow!.add(new Workflow.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['locale'] = this.locale; + data['channel_timeout'] = this.channelTimeout; + // data['client_ref'] = this.clientRef; + data['code_length'] = this.codeLength; + data['code'] = this.code; + data['brand'] = this.brand; + if (this.workflow != null) { + data['workflow'] = this.workflow!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Workflow { + String? channel; + String? to; + + Workflow({this.channel, this.to}); + + Workflow.fromJson(Map json) { + channel = json['channel']; + to = json['to']; + } + + Map toJson() { + final Map data = new Map(); + data['channel'] = this.channel; + data['to'] = this.to; + return data; + } +} diff --git a/lib/Model/Request/Createcustomer/Createcustomerrequest.dart b/lib/Model/Request/Createcustomer/Createcustomerrequest.dart new file mode 100644 index 0000000..2fe6ca1 --- /dev/null +++ b/lib/Model/Request/Createcustomer/Createcustomerrequest.dart @@ -0,0 +1,97 @@ +class CreateCustomers { + int? customerid; + int? configid; + int? tenantid; + String? firstname; + int? applocationid; + String? profileimage; + String? dialcode; + String? contactno; + String? devicetype; + String? deviceid; + String? customertoken; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? landmark; + String? doorno; + String? latitude; + String? longitude; + int? primaryaddress; + + CreateCustomers( + {this.customerid, + this.configid, + this.tenantid, + this.firstname, + this.applocationid, + this.profileimage, + this.dialcode, + this.contactno, + this.devicetype, + this.deviceid, + this.customertoken, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.landmark, + this.doorno, + this.latitude, + this.longitude, + this.primaryaddress + }); + + CreateCustomers.fromJson(Map json) { + customerid = json['customerid']; + configid = json['configid']; + tenantid = json['tenantid']; + firstname = json['firstname']; + applocationid = json['applocationid']; + profileimage = json['profileimage']; + dialcode = json['dialcode']; + contactno = json['contactno']; + devicetype = json['devicetype']; + deviceid = json['deviceid']; + customertoken = json['customertoken']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + landmark = json['landmark']; + doorno = json['doorno']; + latitude = json['latitude']; + longitude = json['longitude']; + primaryaddress = json['primaryaddress']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['configid'] = this.configid; + data['tenantid'] = this.tenantid; + data['firstname'] = this.firstname; + data['applocationid'] = this.applocationid; + data['profileimage'] = this.profileimage; + data['dialcode'] = this.dialcode; + data['contactno'] = this.contactno; + data['devicetype'] = this.devicetype; + data['deviceid'] = this.deviceid; + data['customertoken'] = this.customertoken; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['primaryaddress'] = this.primaryaddress; + return data; + } +} diff --git a/lib/Model/Request/Createorder/Createorderrequest.dart b/lib/Model/Request/Createorder/Createorderrequest.dart new file mode 100644 index 0000000..88f7898 --- /dev/null +++ b/lib/Model/Request/Createorder/Createorderrequest.dart @@ -0,0 +1,464 @@ +class CreateOrder { + Orders? orders; + Pickup? pickup; + Drop? drop; + + CreateOrder({this.orders, this.pickup, this.drop}); + + CreateOrder.fromJson(Map json) { + orders = + json['orders'] != null ? new Orders.fromJson(json['orders']) : null; + pickup = + json['pickup'] != null ? new Pickup.fromJson(json['pickup']) : null; + drop = json['drop'] != null ? new Drop.fromJson(json['drop']) : null; + } + + Map toJson() { + final Map data = new Map(); + if (this.orders != null) { + data['orders'] = this.orders!.toJson(); + } + if (this.pickup != null) { + data['pickup'] = this.pickup!.toJson(); + } + if (this.drop != null) { + data['drop'] = this.drop!.toJson(); + } + return data; + } +} + +class Orders { + int? orderheaderid; + int? tenantid; + int? applocationid; + int? locationid; + int? moduleid; + int? categoryid; + int? subcategoryid; + int? configid; + String? orderid; + String? orderdate; + String? deliverytime; + String? deliverytype; + String? orderstatus; + String? pending; + String? processing; + String? ready; + String? delivered; + String? cancellled; + int? customerid; + String? pickupcustomer; + String? pickupcontactno; + String? pickuplandmark; + String? pickuplocation; + String? pickupcity; + int? pickuplocationid; + String? pickupaddress; + String? pickuplat; + String? pickuplong; + int? deliveryid; + String? deliverycustomer; + String? deliverycontactno; + int? deliverylocationid; + String? deliverylat; + String? deliverylong; + String? deliveryaddress; + String? deliverylandmark; + String? deliverylocation; + String? deliverycity; + double? orderamount; + double? taxamount; + double? ordercharges; + double? ordervalue; + int? itemcount; + int? paymenttype; + int? paymentstatus; + double? deliverycharge; + String? ordernotes; + String? kms; + int? smsdelivery; + String? remarks; + int? tenantuserid; + int? partneruserid; + int? partnerid; + + Orders( + {this.orderheaderid, + this.tenantid, + this.applocationid, + this.locationid, + this.moduleid, + this.categoryid, + this.subcategoryid, + this.configid, + this.orderid, + this.orderdate, + this.deliverytime, + this.deliverytype, + this.orderstatus, + this.pending, + this.processing, + this.ready, + this.delivered, + this.cancellled, + this.customerid, + this.pickupcustomer, + this.pickupcontactno, + this.pickuplandmark, + this.pickuplocation, + this.pickupcity, + this.pickuplocationid, + this.pickupaddress, + this.pickuplat, + this.pickuplong, + this.deliveryid, + this.deliverycustomer, + this.deliverycontactno, + this.deliverylocationid, + this.deliverylat, + this.deliverylong, + this.deliveryaddress, + this.deliverylandmark, + this.deliverylocation, + this.deliverycity, + this.orderamount, + this.taxamount, + this.ordercharges, + this.ordervalue, + this.itemcount, + this.paymenttype, + this.paymentstatus, + this.deliverycharge, + this.ordernotes, + this.kms, + this.smsdelivery, + this.remarks, + this.tenantuserid, + this.partneruserid, + this.partnerid}); + + Orders.fromJson(Map json) { + orderheaderid = json['orderheaderid']; + tenantid = json['tenantid']; + applocationid = json['applocationid']; + locationid = json['locationid']; + moduleid = json['moduleid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + configid = json['configid']; + orderid = json['orderid']; + orderdate = json['orderdate']; + deliverytime = json['deliverytime']; + deliverytype = json['deliverytype']; + orderstatus = json['orderstatus']; + pending = json['pending']; + processing = json['processing']; + ready = json['ready']; + delivered = json['delivered']; + cancellled = json['cancellled']; + customerid = json['customerid']; + pickupcustomer = json['pickupcustomer']; + pickupcontactno = json['pickupcontactno']; + pickuplandmark = json['pickuplandmark']; + pickuplocation = json['pickuplocation']; + pickupcity = json['pickupcity']; + pickuplocationid = json['pickuplocationid']; + pickupaddress = json['pickupaddress']; + pickuplat = json['pickuplat']; + pickuplong = json['pickuplong']; + deliveryid = json['deliveryid']; + deliverycustomer = json['deliverycustomer']; + deliverycontactno = json['deliverycontactno']; + deliverylocationid = json['deliverylocationid']; + deliverylat = json['deliverylat']; + deliverylong = json['deliverylong']; + deliveryaddress = json['deliveryaddress']; + deliverylandmark = json['deliverylandmark']; + deliverylocation = json['deliverylocation']; + deliverycity = json['deliverycity']; + orderamount = json['orderamount'].toDouble(); + taxamount = json['taxamount'].toDouble(); + ordercharges = json['ordercharges'].toDouble(); + ordervalue = json['ordervalue'].toDouble(); + itemcount = json['itemcount']; + paymenttype = json['paymenttype']; + paymentstatus = json['paymentstatus']; + deliverycharge = json['deliverycharge'].toDouble(); + ordernotes = json['ordernotes']; + kms = json['kms']; + smsdelivery = json['smsdelivery']; + remarks = json['remarks']; + tenantuserid = json['tenantuserid']; + partneruserid = json['partneruserid']; + partnerid = json['partnerid']; + } + + Map toJson() { + final Map data = new Map(); + data['orderheaderid'] = this.orderheaderid; + data['tenantid'] = this.tenantid; + data['applocationid'] = this.applocationid; + data['locationid'] = this.locationid; + data['moduleid'] = this.moduleid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['configid'] = this.configid; + data['orderid'] = this.orderid; + data['orderdate'] = this.orderdate; + data['deliverytime'] = this.deliverytime; + data['deliverytype'] = this.deliverytype; + data['orderstatus'] = this.orderstatus; + data['pending'] = this.pending; + data['processing'] = this.processing; + data['ready'] = this.ready; + data['delivered'] = this.delivered; + data['cancellled'] = this.cancellled; + data['customerid'] = this.customerid; + data['pickupcustomer'] = this.pickupcustomer; + data['pickupcontactno'] = this.pickupcontactno; + data['pickuplandmark'] = this.pickuplandmark; + data['pickuplocation'] = this.pickuplocation; + data['pickupcity'] = this.pickupcity; + data['pickuplocationid'] = this.pickuplocationid; + data['pickupaddress'] = this.pickupaddress; + data['pickuplat'] = this.pickuplat; + data['pickuplong'] = this.pickuplong; + data['deliveryid'] = this.deliveryid; + data['deliverycustomer'] = this.deliverycustomer; + data['deliverycontactno'] = this.deliverycontactno; + data['deliverylocationid'] = this.deliverylocationid; + data['deliverylat'] = this.deliverylat; + data['deliverylong'] = this.deliverylong; + data['deliveryaddress'] = this.deliveryaddress; + data['deliverylandmark'] = this.deliverylandmark; + data['deliverylocation'] = this.deliverylocation; + data['deliverycity'] = this.deliverycity; + data['orderamount'] = this.orderamount; + data['taxamount'] = this.taxamount; + data['ordercharges'] = this.ordercharges; + data['ordervalue'] = this.ordervalue; + data['itemcount'] = this.itemcount; + data['paymenttype'] = this.paymenttype; + data['paymentstatus'] = this.paymentstatus; + data['deliverycharge'] = this.deliverycharge; + data['ordernotes'] = this.ordernotes; + data['kms'] = this.kms; + data['smsdelivery'] = this.smsdelivery; + data['remarks'] = this.remarks; + data['tenantuserid'] = this.tenantuserid; + data['partneruserid'] = this.partneruserid; + data['partnerid'] = this.partnerid; + return data; + } +} + +class Pickup { + int? customerid; + int? configid; + int? locationid; + String? firstname; + int? applocationid; + String? profileimage; + String? dialcode; + String? contactno; + String? devicetype; + String? deviceid; + String? customertoken; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? landmark; + String? doorno; + String? latitude; + String? longitude; + int? tenantid; + String? email; + int? primaryaddress; + + Pickup( + {this.customerid, + this.configid, + this.locationid, + this.firstname, + this.applocationid, + this.profileimage, + this.dialcode, + this.contactno, + this.devicetype, + this.deviceid, + this.customertoken, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.landmark, + this.doorno, + this.latitude, + this.longitude, + this.tenantid, + this.email, + this.primaryaddress}); + + Pickup.fromJson(Map json) { + customerid = json['customerid']; + configid = json['configid']; + locationid = json['locationid']; + firstname = json['firstname']; + applocationid = json['applocationid']; + profileimage = json['profileimage']; + dialcode = json['dialcode']; + contactno = json['contactno']; + devicetype = json['devicetype']; + deviceid = json['deviceid']; + customertoken = json['customertoken']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + landmark = json['landmark']; + doorno = json['doorno']; + latitude = json['latitude']; + longitude = json['longitude']; + tenantid = json['tenantid']; + email = json['email']; + primaryaddress = json['primaryaddress']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['configid'] = this.configid; + data['locationid'] = this.locationid; + data['firstname'] = this.firstname; + data['applocationid'] = this.applocationid; + data['profileimage'] = this.profileimage; + data['dialcode'] = this.dialcode; + data['contactno'] = this.contactno; + data['devicetype'] = this.devicetype; + data['deviceid'] = this.deviceid; + data['customertoken'] = this.customertoken; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['tenantid'] = this.tenantid; + data['email'] = this.email; + data['primaryaddress'] = this.primaryaddress; + return data; + } +} + +class Drop { + int? customerid; + int? configid; + int? locationid; + String? firstname; + int? applocationid; + String? profileimage; + String? dialcode; + String? contactno; + String? devicetype; + String? deviceid; + String? customertoken; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? landmark; + String? doorno; + String? latitude; + String? longitude; + int? tenantid; + String? email; + int? primaryaddress; + + Drop( + {this.customerid, + this.configid, + this.locationid, + this.firstname, + this.applocationid, + this.profileimage, + this.dialcode, + this.contactno, + this.devicetype, + this.deviceid, + this.customertoken, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.landmark, + this.doorno, + this.latitude, + this.longitude, + this.tenantid, + this.email, + this.primaryaddress}); + + Drop.fromJson(Map json) { + customerid = json['customerid']; + configid = json['configid']; + locationid = json['locationid']; + firstname = json['firstname']; + applocationid = json['applocationid']; + profileimage = json['profileimage']; + dialcode = json['dialcode']; + contactno = json['contactno']; + devicetype = json['devicetype']; + deviceid = json['deviceid']; + customertoken = json['customertoken']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + landmark = json['landmark']; + doorno = json['doorno']; + latitude = json['latitude']; + longitude = json['longitude']; + tenantid = json['tenantid']; + email = json['email']; + primaryaddress = json['primaryaddress']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['configid'] = this.configid; + data['locationid'] = this.locationid; + data['firstname'] = this.firstname; + data['applocationid'] = this.applocationid; + data['profileimage'] = this.profileimage; + data['dialcode'] = this.dialcode; + data['contactno'] = this.contactno; + data['devicetype'] = this.devicetype; + data['deviceid'] = this.deviceid; + data['customertoken'] = this.customertoken; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['tenantid'] = this.tenantid; + data['email'] = this.email; + data['primaryaddress'] = this.primaryaddress; + return data; + } +} \ No newline at end of file diff --git a/lib/Model/Request/Location/Addlocation/Addlocationrequest.dart b/lib/Model/Request/Location/Addlocation/Addlocationrequest.dart new file mode 100644 index 0000000..11008d6 --- /dev/null +++ b/lib/Model/Request/Location/Addlocation/Addlocationrequest.dart @@ -0,0 +1,92 @@ +class AddLocation { + int? locationid; + int? tenantid; + int? moduleid; + int? applocationid; + String? locationname; + String? email; + String? contactno; + String? address; + String? suburb; + String? state; + String? city; + String? postcode; + String? latitude; + String? longitude; + int? partnerid; + String? opentime; + String? closetime; + int? deliverytype; + int? deliverymins; + int? cancelsecs; + + AddLocation( + {this.locationid, + this.tenantid, + this.moduleid, + this.applocationid, + this.locationname, + this.email, + this.contactno, + this.address, + this.suburb, + this.state, + this.city, + this.postcode, + this.latitude, + this.longitude, + this.partnerid, + this.opentime, + this.closetime, + this.deliverytype, + this.deliverymins, + this.cancelsecs}); + + AddLocation.fromJson(Map json) { + locationid = json['locationid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + applocationid = json['applocationid']; + locationname = json['locationname']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + state = json['state']; + city = json['city']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + partnerid = json['partnerid']; + opentime = json['opentime']; + closetime = json['closetime']; + deliverytype = json['deliverytype']; + deliverymins = json['deliverymins']; + cancelsecs = json['cancelsecs']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['applocationid'] = this.applocationid; + data['locationname'] = this.locationname; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['state'] = this.state; + data['city'] = this.city; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['partnerid'] = this.partnerid; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['deliverytype'] = this.deliverytype; + data['deliverymins'] = this.deliverymins; + data['cancelsecs'] = this.cancelsecs; + return data; + } +} diff --git a/lib/Model/Request/Location/Updatelocation/Updatelocationrequest.dart b/lib/Model/Request/Location/Updatelocation/Updatelocationrequest.dart new file mode 100644 index 0000000..93b28d3 --- /dev/null +++ b/lib/Model/Request/Location/Updatelocation/Updatelocationrequest.dart @@ -0,0 +1,92 @@ +class UpdateLocation { + int? locationid; + int? tenantid; + int? moduleid; + int? applocationid; + String? locationname; + String? email; + String? contactno; + String? address; + String? suburb; + String? state; + String? city; + String? postcode; + String? latitude; + String? longitude; + int? partnerid; + String? opentime; + String? closetime; + int? deliverytype; + int? deliverymins; + int? cancelsecs; + + UpdateLocation( + {this.locationid, + this.tenantid, + this.moduleid, + this.applocationid, + this.locationname, + this.email, + this.contactno, + this.address, + this.suburb, + this.state, + this.city, + this.postcode, + this.latitude, + this.longitude, + this.partnerid, + this.opentime, + this.closetime, + this.deliverytype, + this.deliverymins, + this.cancelsecs}); + + UpdateLocation.fromJson(Map json) { + locationid = json['locationid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + applocationid = json['applocationid']; + locationname = json['locationname']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + state = json['state']; + city = json['city']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + partnerid = json['partnerid']; + opentime = json['opentime']; + closetime = json['closetime']; + deliverytype = json['deliverytype']; + deliverymins = json['deliverymins']; + cancelsecs = json['cancelsecs']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['applocationid'] = this.applocationid; + data['locationname'] = this.locationname; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['state'] = this.state; + data['city'] = this.city; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['partnerid'] = this.partnerid; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['deliverytype'] = this.deliverytype; + data['deliverymins'] = this.deliverymins; + data['cancelsecs'] = this.cancelsecs; + return data; + } +} diff --git a/lib/Model/Request/Notification/Notification_request_rider.dart b/lib/Model/Request/Notification/Notification_request_rider.dart new file mode 100644 index 0000000..9fbd7f6 --- /dev/null +++ b/lib/Model/Request/Notification/Notification_request_rider.dart @@ -0,0 +1,40 @@ +class RiderNotificationRequest { + String? token; + NotificationRider? notification; + RiderNotificationRequest({this.token, this.notification}); + RiderNotificationRequest.fromJson(Map json) { + token = json['token']; + notification = json['notification'] != null + ? new NotificationRider.fromJson(json['notification']) + : null; + } + Map toJson() { + final Map data = new Map(); + data['token'] = this.token; + if (this.notification != null) { + data['notification'] = this.notification!.toJson(); + } + return data; + } +} +class NotificationRider { + String? title; + String? body; + String? sound; + String? image; + NotificationRider({this.title, this.body, this.sound, this.image}); + NotificationRider.fromJson(Map json) { + title = json['title']; + body = json['body']; + sound = json['sound']; + image = json['image']; + } + Map toJson() { + final Map data = new Map(); + data['title'] = this.title; + data['body'] = this.body; + data['sound'] = this.sound; + data['image'] = this.image; + return data; + } +} \ No newline at end of file diff --git a/lib/Model/Request/Notification/Notificationrequest.dart b/lib/Model/Request/Notification/Notificationrequest.dart new file mode 100644 index 0000000..8e9b565 --- /dev/null +++ b/lib/Model/Request/Notification/Notificationrequest.dart @@ -0,0 +1,69 @@ +class NotificationRequest { + String? priority; + List? registrationIds; + Data? data; + Notification? notification; + + NotificationRequest( + {this.priority, this.registrationIds, this.data, this.notification}); + + NotificationRequest.fromJson(Map json) { + priority = json['priority']; + registrationIds = json['registration_ids'].cast(); + data = json['data'] != null ? new Data.fromJson(json['data']) : null; + notification = json['notification'] != null + ? new Notification.fromJson(json['notification']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['priority'] = this.priority; + data['registration_ids'] = this.registrationIds; + if (this.data != null) { + data['data'] = this.data!.toJson(); + } + if (this.notification != null) { + data['notification'] = this.notification!.toJson(); + } + return data; + } +} + +class Data { + String? accessid; + + Data({this.accessid}); + + Data.fromJson(Map json) { + accessid = json['accessid']; + } + + Map toJson() { + final Map data = new Map(); + data['accessid'] = this.accessid; + return data; + } +} + +class Notification { + String? title; + String? body; + String? sound; + + Notification({this.title, this.body, this.sound}); + + Notification.fromJson(Map json) { + title = json['title']; + body = json['body']; + sound = json['sound']; + } + + Map toJson() { + final Map data = new Map(); + data['title'] = this.title; + data['body'] = this.body; + data['sound'] = this.sound; + return data; + } +} diff --git a/lib/Model/Request/Orders/Cancelorderrequest.dart b/lib/Model/Request/Orders/Cancelorderrequest.dart new file mode 100644 index 0000000..50c8495 --- /dev/null +++ b/lib/Model/Request/Orders/Cancelorderrequest.dart @@ -0,0 +1,21 @@ +class CancelOrderRequest { + int? orderheaderid; + String? orderstatus; + String? cancelled; + + CancelOrderRequest({this.orderheaderid, this.orderstatus, this.cancelled}); + + CancelOrderRequest.fromJson(Map json) { + orderheaderid = json['orderheaderid']; + orderstatus = json['orderstatus']; + cancelled = json['cancelled']; + } + + Map toJson() { + final Map data = new Map(); + data['orderheaderid'] = this.orderheaderid; + data['orderstatus'] = this.orderstatus; + data['cancelled'] = this.cancelled; + return data; + } +} diff --git a/lib/Model/Request/Staffs/Addstaffs/Addstaffsrequest.dart b/lib/Model/Request/Staffs/Addstaffs/Addstaffsrequest.dart new file mode 100644 index 0000000..60a5e43 --- /dev/null +++ b/lib/Model/Request/Staffs/Addstaffs/Addstaffsrequest.dart @@ -0,0 +1,80 @@ +class CreateStaffRequest { + int? userid; + String? authname; + int? configid; + String? contactno; + String? firstname; + String? lastrname; + String? email; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + int? roleid; + int? applocationid; + int? partnerid; + int? tenantid; + int? locationid; + + CreateStaffRequest( + {this.userid, + this.authname, + this.configid, + this.contactno, + this.firstname, + this.lastrname, + this.email, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.roleid, + this.applocationid, + this.partnerid, + this.tenantid, + this.locationid}); + + CreateStaffRequest.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + contactno = json['contactno']; + firstname = json['firstname']; + lastrname = json['lastrname']; + email = json['email']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + roleid = json['roleid']; + applocationid = json['applocationid']; + partnerid = json['partnerid']; + tenantid = json['tenantid']; + locationid = json['locationid']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['contactno'] = this.contactno; + data['firstname'] = this.firstname; + data['lastrname'] = this.lastrname; + data['email'] = this.email; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['roleid'] = this.roleid; + data['applocationid'] = this.applocationid; + data['partnerid'] = this.partnerid; + data['tenantid'] = this.tenantid; + data['locationid'] = this.locationid; + return data; + } +} diff --git a/lib/Model/Request/Staffs/UpdateStaff/Updatestaffrequest.dart b/lib/Model/Request/Staffs/UpdateStaff/Updatestaffrequest.dart new file mode 100644 index 0000000..a96dcc4 --- /dev/null +++ b/lib/Model/Request/Staffs/UpdateStaff/Updatestaffrequest.dart @@ -0,0 +1,80 @@ +class UpdateStaffRequest { + int? userid; + String? authname; + int? configid; + String? contactno; + String? firstname; + String? lastrname; + String? email; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + int? roleid; + int? applocationid; + int? partnerid; + int? tenantid; + int? locationid; + + UpdateStaffRequest( + {this.userid, + this.authname, + this.configid, + this.contactno, + this.firstname, + this.lastrname, + this.email, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.roleid, + this.applocationid, + this.partnerid, + this.tenantid, + this.locationid}); + + UpdateStaffRequest.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + contactno = json['contactno']; + firstname = json['firstname']; + lastrname = json['lastrname']; + email = json['email']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + roleid = json['roleid']; + applocationid = json['applocationid']; + partnerid = json['partnerid']; + tenantid = json['tenantid']; + locationid = json['locationid']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['contactno'] = this.contactno; + data['firstname'] = this.firstname; + data['lastrname'] = this.lastrname; + data['email'] = this.email; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['roleid'] = this.roleid; + data['applocationid'] = this.applocationid; + data['partnerid'] = this.partnerid; + data['tenantid'] = this.tenantid; + data['locationid'] = this.locationid; + return data; + } +} diff --git a/lib/Model/Request/User/Updateuser/Updateuserrequest.dart b/lib/Model/Request/User/Updateuser/Updateuserrequest.dart new file mode 100644 index 0000000..004ce5d --- /dev/null +++ b/lib/Model/Request/User/Updateuser/Updateuserrequest.dart @@ -0,0 +1,40 @@ +class UserUpdateRequest { + int? userid; + String? authname; + int? configid; + String? contactno; + String? firstname; + String? lastname; + String? email; + + UserUpdateRequest( + {this.userid, + this.authname, + this.configid, + this.contactno, + this.firstname, + this.lastname, + this.email}); + + UserUpdateRequest.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + contactno = json['contactno']; + firstname = json['firstname']; + lastname = json['lastname']; + email = json['email']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['contactno'] = this.contactno; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['email'] = this.email; + return data; + } +} diff --git a/lib/Model/Request/create_delivery_request/create_delivery_request.dart b/lib/Model/Request/create_delivery_request/create_delivery_request.dart new file mode 100644 index 0000000..d94951b --- /dev/null +++ b/lib/Model/Request/create_delivery_request/create_delivery_request.dart @@ -0,0 +1,161 @@ +class CreateDelivery { + int? deliveryid; + int? applocationid; + int? partnerid; + int? tenantid; + int? locationid; + int? configid; + int? moduleid; + int? userid; + int? orderheaderid; + int? categoryid; + int? subcategoryid; + String? orderid; + String? deliverydate; + String? assigntime; + int? orderamount; + int? itemcount; + String? ordernotes; + String? orderstatus; + int? customerid; + String? pickupcustomer; + String? pickupcontactno; + int? pickuplocationid; + String? pickupaddress; + String? pickuplocation; + String? pickuplat; + String? pickuplon; + int? deliverycustomerid; + String? deliverycustomer; + String? deliverycontactno; + int? deliverylocationid; + String? deliveryaddress; + String? deliverylocation; + String? droplat; + String? droplon; + String? kms; + double? deliverycharges; + int? paymenttype; + + CreateDelivery( + {this.deliveryid, + this.applocationid, + this.partnerid, + this.tenantid, + this.locationid, + this.configid, + this.moduleid, + this.userid, + this.orderheaderid, + this.categoryid, + this.subcategoryid, + this.orderid, + this.deliverydate, + this.orderamount, + this.itemcount, + this.ordernotes, + this.orderstatus, + this.customerid, + this.pickupcustomer, + this.pickupcontactno, + this.pickuplocationid, + this.pickupaddress, + this.pickuplocation, + this.pickuplat, + this.pickuplon, + this.deliverycustomerid, + this.deliverycustomer, + this.deliverycontactno, + this.deliverylocationid, + this.deliveryaddress, + this.deliverylocation, + this.droplat, + this.droplon, + this.kms, + this.deliverycharges, + this.paymenttype, + this.assigntime, + }); + + CreateDelivery.fromJson(Map json) { + deliveryid = json['deliveryid']; + applocationid = json['applocationid']; + partnerid = json['Partnerid']; + tenantid = json['Tenantid']; + locationid = json['Locationid']; + configid = json['configid']; + moduleid = json['moduleid']; + userid = json['userid']; + orderheaderid = json['orderheaderid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + orderid = json['orderid']; + deliverydate = json['deliverydate']; + orderamount = json['orderamount']; + itemcount = json['itemcount']; + ordernotes = json['ordernotes']; + orderstatus = json['orderstatus']; + customerid = json['customerid']; + pickupcustomer = json['pickupcustomer']; + pickupcontactno = json['pickupcontactno']; + pickuplocationid = json['pickuplocationid']; + pickupaddress = json['pickupaddress']; + pickuplocation = json['pickuplocation']; + pickuplat = json['pickuplat']; + pickuplon = json['pickuplon']; + deliverycustomerid = json['deliverycustomerid']; + deliverycustomer = json['deliverycustomer']; + deliverycontactno = json['deliverycontactno']; + deliverylocationid = json['deliverylocationid']; + deliveryaddress = json['deliveryaddress']; + deliverylocation = json['deliverylocation']; + droplat = json['droplat']; + droplon = json['droplon']; + kms = json['kms']; + deliverycharges = json['deliverycharges']; + paymenttype = json['paymenttype']; + assigntime = json['assigntime']; + } + + Map toJson() { + final Map data = new Map(); + data['deliveryid'] = this.deliveryid; + data['applocationid'] = this.applocationid; + data['Partnerid'] = this.partnerid; + data['Tenantid'] = this.tenantid; + data['Locationid'] = this.locationid; + data['configid'] = this.configid; + data['moduleid'] = this.moduleid; + data['userid'] = this.userid; + data['orderheaderid'] = this.orderheaderid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['orderid'] = this.orderid; + data['deliverydate'] = this.deliverydate; + data['orderamount'] = this.orderamount; + data['itemcount'] = this.itemcount; + data['ordernotes'] = this.ordernotes; + data['orderstatus'] = this.orderstatus; + data['customerid'] = this.customerid; + data['pickupcustomer'] = this.pickupcustomer; + data['pickupcontactno'] = this.pickupcontactno; + data['pickuplocationid'] = this.pickuplocationid; + data['pickupaddress'] = this.pickupaddress; + data['pickuplocation'] = this.pickuplocation; + data['pickuplat'] = this.pickuplat; + data['pickuplon'] = this.pickuplon; + data['deliverycustomerid'] = this.deliverycustomerid; + data['deliverycustomer'] = this.deliverycustomer; + data['deliverycontactno'] = this.deliverycontactno; + data['deliverylocationid'] = this.deliverylocationid; + data['deliveryaddress'] = this.deliveryaddress; + data['deliverylocation'] = this.deliverylocation; + data['droplat'] = this.droplat; + data['droplon'] = this.droplon; + data['kms'] = this.kms; + data['deliverycharges'] = this.deliverycharges; + data['paymenttype'] = this.paymenttype; + data['assigntime'] = this.assigntime; + return data; + } +} diff --git a/lib/Model/Request/products/update_product.dart b/lib/Model/Request/products/update_product.dart new file mode 100644 index 0000000..5655ba8 --- /dev/null +++ b/lib/Model/Request/products/update_product.dart @@ -0,0 +1,18 @@ +class ProductUpdateRequest { + int? productid; + String? productstatus; + + ProductUpdateRequest({this.productid, this.productstatus}); + + ProductUpdateRequest.fromJson(Map json) { + productid = json['productid']; + productstatus = json['productstatus']; + } + + Map toJson() { + final Map data = new Map(); + data['productlocationid'] = this.productid; + data['status'] = this.productstatus; + return data; + } +} diff --git a/lib/Model/Request/update_delivery/update_delivery.dart b/lib/Model/Request/update_delivery/update_delivery.dart new file mode 100644 index 0000000..50a0f80 --- /dev/null +++ b/lib/Model/Request/update_delivery/update_delivery.dart @@ -0,0 +1,96 @@ +class UpdateDeliveryRequest { + int? deliveryid; + int? userid; + int? orderheaderid; + int? deliverylocationid; + int? smsdelivery; + String? orderstatus; + String? starttime; + String? assigntime; + String? arrivaltime; + String? pickuptime; + String? deliverytime; + String? canceltime; + String? riderslat; + String? riderslon; + String? deliverylat; + String? deliverylong; + String? kms; + String? actualkms; + double? deliveryamt; + String? notes; + String? feedback; + + UpdateDeliveryRequest( + {this.deliveryid, + this.userid, + this.orderheaderid, + this.deliverylocationid, + this.smsdelivery, + this.orderstatus, + this.starttime, + this.assigntime, + this.arrivaltime, + this.pickuptime, + this.deliverytime, + this.canceltime, + this.riderslat, + this.riderslon, + this.deliverylat, + this.deliverylong, + this.kms, + this.actualkms, + this.deliveryamt, + this.notes, + this.feedback}); + + UpdateDeliveryRequest.fromJson(Map json) { + deliveryid = json['deliveryid']; + userid = json['userid']; + orderheaderid = json['orderheaderid']; + deliverylocationid = json['deliverylocationid']; + smsdelivery = json['smsdelivery']; + orderstatus = json['orderstatus']; + starttime = json['starttime']; + assigntime = json['assigntime']; + arrivaltime = json['arrivaltime']; + pickuptime = json['pickuptime']; + deliverytime = json['deliverytime']; + canceltime = json['canceltime']; + riderslat = json['riderslat']; + riderslon = json['riderslon']; + deliverylat = json['deliverylat']; + deliverylong = json['deliverylong']; + kms = json['kms']; + actualkms = json['actualkms']; + deliveryamt = json['deliveryamt']; + notes = json['notes']; + feedback = json['feedback']; + } + + Map toJson() { + final Map data = new Map(); + data['deliveryid'] = this.deliveryid; + data['userid'] = this.userid; + data['orderheaderid'] = this.orderheaderid; + data['deliverylocationid'] = this.deliverylocationid; + data['smsdelivery'] = this.smsdelivery; + data['orderstatus'] = this.orderstatus; + data['starttime'] = this.starttime; + data['assigntime'] = this.assigntime; + data['arrivaltime'] = this.arrivaltime; + data['pickuptime'] = this.pickuptime; + data['deliverytime'] = this.deliverytime; + data['canceltime'] = this.canceltime; + data['riderslat'] = this.riderslat; + data['riderslon'] = this.riderslon; + data['deliverylat'] = this.deliverylat; + data['deliverylong'] = this.deliverylong; + data['kms'] = this.kms; + data['actualkms'] = this.actualkms; + data['deliveryamt'] = this.deliveryamt; + data['notes'] = this.notes; + data['feedback'] = this.feedback; + return data; + } +} diff --git a/lib/Model/Response/Admintoken/Admintokenresponse.dart b/lib/Model/Response/Admintoken/Admintokenresponse.dart new file mode 100644 index 0000000..c3326aa --- /dev/null +++ b/lib/Model/Response/Admintoken/Admintokenresponse.dart @@ -0,0 +1,129 @@ +class GetAdminToken { + int? code; + Details? details; + String? message; + bool? status; + + GetAdminToken({this.code, this.details, this.message, this.status}); + + GetAdminToken.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new Details.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class Details { + int? applocationid; + String? locationname; + String? image; + String? city; + String? state; + String? postcode; + String? latitude; + String? longitude; + String? opentime; + String? closetime; + int? radius; + List? applocationadmins; + + Details( + {this.applocationid, + this.locationname, + this.image, + this.city, + this.state, + this.postcode, + this.latitude, + this.longitude, + this.opentime, + this.closetime, + this.radius, + this.applocationadmins}); + + Details.fromJson(Map json) { + applocationid = json['applocationid']; + locationname = json['locationname']; + image = json['image']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + opentime = json['opentime']; + closetime = json['closetime']; + radius = json['radius']; + if (json['applocationadmins'] != null) { + applocationadmins = []; + json['applocationadmins'].forEach((v) { + applocationadmins!.add(new Applocationadmins.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['applocationid'] = this.applocationid; + data['locationname'] = this.locationname; + data['image'] = this.image; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['radius'] = this.radius; + if (this.applocationadmins != null) { + data['applocationadmins'] = + this.applocationadmins!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Applocationadmins { + int? applocationconfigid; + int? applocationid; + int? userid; + String? userfcmtokem; + String? notify; + + Applocationadmins( + {this.applocationconfigid, + this.applocationid, + this.userid, + this.userfcmtokem, + this.notify}); + + Applocationadmins.fromJson(Map json) { + applocationconfigid = json['applocationconfigid']; + applocationid = json['applocationid']; + userid = json['userid']; + userfcmtokem = json['userfcmtokem']; + notify = json['notify']; + } + + Map toJson() { + final Map data = new Map(); + data['applocationconfigid'] = this.applocationconfigid; + data['applocationid'] = this.applocationid; + data['userid'] = this.userid; + data['userfcmtokem'] = this.userfcmtokem; + data['notify'] = this.notify; + return data; + } +} diff --git a/lib/Model/Response/Appcategory/Appcategoryresponse.dart b/lib/Model/Response/Appcategory/Appcategoryresponse.dart new file mode 100644 index 0000000..4cf9787 --- /dev/null +++ b/lib/Model/Response/Appcategory/Appcategoryresponse.dart @@ -0,0 +1,68 @@ +// class AppCategory { +// int? code; +// List? details; +// String? message; +// bool? status; +// +// AppCategory({this.code, this.details, this.message, this.status}); +// +// AppCategory.fromJson(Map json) { +// code = json['code']; +// if (json['details'] != null) { +// details = []; +// json['details'].forEach((v) { +// details!.add(new AppCategoryDetails.fromJson(v)); +// }); +// } +// message = json['message']; +// status = json['status']; +// } +// +// Map toJson() { +// final Map data = new Map(); +// data['code'] = this.code; +// if (this.details != null) { +// data['details'] = this.details!.map((v) => v.toJson()).toList(); +// } +// data['message'] = this.message; +// data['status'] = this.status; +// return data; +// } +// } +// +// class AppCategoryDetails { +// int? subcategoryid; +// int? categoryid; +// String? subcategoryname; +// String? catgeoryname; +// int? moduleid; +// String? status; +// +// AppCategoryDetails( +// {this.subcategoryid, +// this.categoryid, +// this.subcategoryname, +// this.catgeoryname, +// this.moduleid, +// this.status}); +// +// AppCategoryDetails.fromJson(Map json) { +// subcategoryid = json['subcategoryid']; +// categoryid = json['categoryid']; +// subcategoryname = json['subcategoryname']; +// catgeoryname = json['catgeoryname']; +// moduleid = json['moduleid']; +// status = json['status']; +// } +// +// Map toJson() { +// final Map data = new Map(); +// data['subcategoryid'] = this.subcategoryid; +// data['categoryid'] = this.categoryid; +// data['subcategoryname'] = this.subcategoryname; +// data['catgeoryname'] = this.catgeoryname; +// data['moduleid'] = this.moduleid; +// data['status'] = this.status; +// return data; +// } +// } diff --git a/lib/Model/Response/Appcategory/app_category_response.dart b/lib/Model/Response/Appcategory/app_category_response.dart new file mode 100644 index 0000000..8538586 --- /dev/null +++ b/lib/Model/Response/Appcategory/app_category_response.dart @@ -0,0 +1,129 @@ +class GetAppCategories { + bool? status; + String? message; + List? details; + + GetAppCategories({this.status, this.message, this.details}); + + factory GetAppCategories.fromJson(Map json) { + return GetAppCategories( + status: json['status'] as bool?, + message: json['message'] as String?, + details: json['details'] != null + ? (json['details'] as List) + .map((v) => AppCategoryDetails.fromJson(v)) + .toList() + : null, + ); + } +} + +class AppCategoryDetails { + int? categoryid; + String? categoryname; + String? categorytype; + int? sortorder; + int? moduleid; + String? imageurl; + String? iconurl; + String? profileurl; + int? crossaxis; + int? mainaxis; + String? status; + + AppCategoryDetails( + {this.categoryid, + this.categoryname, + this.categorytype, + this.sortorder, + this.moduleid, + this.imageurl, + this.iconurl, + this.profileurl, + this.crossaxis, + this.mainaxis, + this.status}); + + AppCategoryDetails.fromJson(Map json) { + categoryid = json['categoryid']; + categoryname = json['categoryname']; + categorytype = json['categorytype']; + sortorder = json['sortorder']; + moduleid = json['moduleid']; + imageurl = json['imageurl']; + iconurl = json['iconurl']; + profileurl = json['profileurl']; + crossaxis = json['crossaxis']; + mainaxis = json['mainaxis']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['categoryid'] = this.categoryid; + data['categoryname'] = this.categoryname; + data['categorytype'] = this.categorytype; + data['sortorder'] = this.sortorder; + data['moduleid'] = this.moduleid; + data['imageurl'] = this.imageurl; + data['iconurl'] = this.iconurl; + data['profileurl'] = this.profileurl; + data['crossaxis'] = this.crossaxis; + data['mainaxis'] = this.mainaxis; + data['status'] = this.status; + return data; + } +} + + +class GetSubCategoriesResponse { + int? code; + List? details; + String? message; + bool? status; + + GetSubCategoriesResponse({this.code, this.details, this.message, this.status}); + + GetSubCategoriesResponse.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(SubCategory.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } +} + +class SubCategory { + int? subcategoryid; + int? categoryid; + String? subcategoryname; + String? catgeoryname; + int? moduleid; + String? status; + + SubCategory({ + this.subcategoryid, + this.categoryid, + this.subcategoryname, + this.catgeoryname, + this.moduleid, + this.status, + }); + + SubCategory.fromJson(Map json) { + subcategoryid = json['subcategoryid']; + categoryid = json['categoryid']; + subcategoryname = json['subcategoryname']; + catgeoryname = json['catgeoryname']; + moduleid = json['moduleid']; + status = json['status']; + } +} + + + + diff --git a/lib/Model/Response/Appconfig/Appconfigresponse.dart b/lib/Model/Response/Appconfig/Appconfigresponse.dart new file mode 100644 index 0000000..743029b --- /dev/null +++ b/lib/Model/Response/Appconfig/Appconfigresponse.dart @@ -0,0 +1,92 @@ +class AppConfigResponse { + int? code; + bool? status; + String? message; + Details? details; + + AppConfigResponse({this.code, this.status, this.message, this.details}); + + AppConfigResponse.fromJson(Map json) { + code = json['code']; + status = json['status']; + message = json['message']; + details = + json['details'] != null ? new Details.fromJson(json['details']) : null; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['status'] = this.status; + data['message'] = this.message; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + return data; + } +} + +class Details { + int? configid; + String? appname; + String? paymentdevkey; + String? paymentlivekey; + String? fcmkey; + String? googleapikey; + int? applocationradius; + int? smsproviderid; + String? providerapi; + String? providerkey; + String? sender; + String? templateid; + int? defaultprovider; + + Details( + {this.configid, + this.appname, + this.paymentdevkey, + this.paymentlivekey, + this.fcmkey, + this.googleapikey, + this.applocationradius, + this.smsproviderid, + this.providerapi, + this.providerkey, + this.sender, + this.templateid, + this.defaultprovider}); + + Details.fromJson(Map json) { + configid = json['configid']; + appname = json['appname']; + paymentdevkey = json['paymentdevkey']; + paymentlivekey = json['paymentlivekey']; + fcmkey = json['fcmkey']; + googleapikey = json['googleapikey']; + applocationradius = json['applocationradius']; + smsproviderid = json['smsproviderid']; + providerapi = json['providerapi']; + providerkey = json['providerkey']; + sender = json['sender']; + templateid = json['templateid']; + defaultprovider = json['defaultprovider']; + } + + Map toJson() { + final Map data = new Map(); + data['configid'] = this.configid; + data['appname'] = this.appname; + data['paymentdevkey'] = this.paymentdevkey; + data['paymentlivekey'] = this.paymentlivekey; + data['fcmkey'] = this.fcmkey; + data['googleapikey'] = this.googleapikey; + data['applocationradius'] = this.applocationradius; + data['smsproviderid'] = this.smsproviderid; + data['providerapi'] = this.providerapi; + data['providerkey'] = this.providerkey; + data['sender'] = this.sender; + data['templateid'] = this.templateid; + data['defaultprovider'] = this.defaultprovider; + return data; + } +} diff --git a/lib/Model/Response/Applocations/Applocationresponse.dart b/lib/Model/Response/Applocations/Applocationresponse.dart new file mode 100644 index 0000000..6454cf9 --- /dev/null +++ b/lib/Model/Response/Applocations/Applocationresponse.dart @@ -0,0 +1,76 @@ +class GetAppLocations { + int? code; + bool? status; + String? message; + List? details; + + GetAppLocations({this.code, this.status, this.message, this.details}); + + GetAppLocations.fromJson(Map json) { + code = json['code']; + status = json['status']; + message = json['message']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new AppLocationDetails.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['status'] = this.status; + data['message'] = this.message; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class AppLocationDetails { + int? applocationid; + String? locationname; + String? image; + String? city; + String? state; + String? postcode; + String? latitude; + String? longitude; + + AppLocationDetails( + {this.applocationid, + this.locationname, + this.image, + this.city, + this.state, + this.postcode, + this.latitude, + this.longitude}); + + AppLocationDetails.fromJson(Map json) { + applocationid = json['applocationid']; + locationname = json['locationname']; + image = json['image']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + } + + Map toJson() { + final Map data = new Map(); + data['applocationid'] = this.applocationid; + data['locationname'] = this.locationname; + data['image'] = this.image; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + return data; + } +} diff --git a/lib/Model/Response/Authentication/Createtenantuser/Createtenantuserresponse.dart b/lib/Model/Response/Authentication/Createtenantuser/Createtenantuserresponse.dart new file mode 100644 index 0000000..ea63d29 --- /dev/null +++ b/lib/Model/Response/Authentication/Createtenantuser/Createtenantuserresponse.dart @@ -0,0 +1,169 @@ +class CreateTenantUserResponse { + int? code; + Details? details; + String? message; + bool? status; + + CreateTenantUserResponse( + {this.code, this.details, this.message, this.status}); + + CreateTenantUserResponse.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new Details.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class Details { + int? userid; + String? authname; + int? configid; + int? authmode; + int? roleid; + String? firstname; + String? lastname; + String? fullname; + String? password; + String? email; + String? contactno; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? userfcmtoken; + int? pin; + int? partnerid; + int? locationid; + int? tenantid; + String? tenantname; + String? tenantaddress; + String? tenantcity; + String? tenantpostcode; + String? tenantlat; + String? tenantlong; + String? locationname; + int? applocationid; + int? moduleid; + int? categoryid; + int? subcategoryid; + + Details( + {this.userid, + this.authname, + this.configid, + this.authmode, + this.roleid, + this.firstname, + this.lastname, + this.fullname, + this.password, + this.email, + this.contactno, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.userfcmtoken, + this.pin, + this.partnerid, + this.locationid, + this.tenantid, + this.tenantname, + this.tenantaddress, + this.tenantcity, + this.tenantpostcode, + this.tenantlat, + this.tenantlong, + this.locationname, + this.applocationid, + this.moduleid, + this.categoryid, + this.subcategoryid}); + + Details.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + authmode = json['authmode']; + roleid = json['roleid']; + firstname = json['firstname']; + lastname = json['lastname']; + fullname = json['fullname']; + password = json['password']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + userfcmtoken = json['userfcmtoken']; + pin = json['pin']; + partnerid = json['partnerid']; + locationid = json['locationid']; + tenantid = json['tenantid']; + tenantname = json['tenantname']; + tenantaddress = json['tenantaddress']; + tenantcity = json['tenantcity']; + tenantpostcode = json['tenantpostcode']; + tenantlat = json['tenantlat']; + tenantlong = json['tenantlong']; + locationname = json['locationname']; + applocationid = json['applocationid']; + moduleid = json['moduleid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['authmode'] = this.authmode; + data['roleid'] = this.roleid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['fullname'] = this.fullname; + data['password'] = this.password; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['userfcmtoken'] = this.userfcmtoken; + data['pin'] = this.pin; + data['partnerid'] = this.partnerid; + data['locationid'] = this.locationid; + data['tenantid'] = this.tenantid; + data['tenantname'] = this.tenantname; + data['tenantaddress'] = this.tenantaddress; + data['tenantcity'] = this.tenantcity; + data['tenantpostcode'] = this.tenantpostcode; + data['tenantlat'] = this.tenantlat; + data['tenantlong'] = this.tenantlong; + data['locationname'] = this.locationname; + data['applocationid'] = this.applocationid; + data['moduleid'] = this.moduleid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + return data; + } +} diff --git a/lib/Model/Response/Authentication/Loginresponse.dart b/lib/Model/Response/Authentication/Loginresponse.dart new file mode 100644 index 0000000..3926571 --- /dev/null +++ b/lib/Model/Response/Authentication/Loginresponse.dart @@ -0,0 +1,185 @@ +class LoginResponse { + int? code; + Details? details; + String? message; + bool? status; + + LoginResponse({this.code, this.details, this.message, this.status}); + + LoginResponse.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new Details.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class Details { + int? userid; + String? authname; + int? configid; + int? authmode; + int? roleid; + String? firstname; + String? lastname; + String? fullname; + String? password; + String? email; + String? contactno; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? userfcmtoken; + int? pin; + int? partnerid; + int? locationid; + int? applocationid; + int? tenantid; + String? tenantname; + String? tenantaddress; + String? tenantcity; + String? tenantpostcode; + String? tenantlat; + String? tenantlong; + String? locationname; + String? applocation; + String? applatitude; + String? applongitude; + int? appradius; + int? moduleid; + int? categoryid; + int? subcategoryid; + + Details( + {this.userid, + this.authname, + this.configid, + this.authmode, + this.roleid, + this.firstname, + this.lastname, + this.fullname, + this.password, + this.email, + this.contactno, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.userfcmtoken, + this.pin, + this.partnerid, + this.locationid, + this.applocationid, + this.tenantid, + this.tenantname, + this.tenantaddress, + this.tenantcity, + this.tenantpostcode, + this.tenantlat, + this.tenantlong, + this.locationname, + this.applocation, + this.applatitude, + this.applongitude, + this.appradius, + this.moduleid, + this.categoryid, + this.subcategoryid}); + + Details.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + authmode = json['authmode']; + roleid = json['roleid']; + firstname = json['firstname']; + lastname = json['lastname']; + fullname = json['fullname']; + password = json['password']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + userfcmtoken = json['userfcmtoken']; + pin = json['pin']; + partnerid = json['partnerid']; + locationid = json['locationid']; + applocationid = json['applocationid']; + tenantid = json['tenantid']; + tenantname = json['tenantname']; + tenantaddress = json['tenantaddress']; + tenantcity = json['tenantcity']; + tenantpostcode = json['tenantpostcode']; + tenantlat = json['tenantlat']; + tenantlong = json['tenantlong']; + locationname = json['locationname']; + applocation = json['applocation']; + applatitude = json['applatitude']; + applongitude = json['applongitude']; + appradius = json['appradius']; + moduleid = json['moduleid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['authmode'] = this.authmode; + data['roleid'] = this.roleid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['fullname'] = this.fullname; + data['password'] = this.password; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['userfcmtoken'] = this.userfcmtoken; + data['pin'] = this.pin; + data['partnerid'] = this.partnerid; + data['locationid'] = this.locationid; + data['applocationid'] = this.applocationid; + data['tenantid'] = this.tenantid; + data['tenantname'] = this.tenantname; + data['tenantaddress'] = this.tenantaddress; + data['tenantcity'] = this.tenantcity; + data['tenantpostcode'] = this.tenantpostcode; + data['tenantlat'] = this.tenantlat; + data['tenantlong'] = this.tenantlong; + data['locationname'] = this.locationname; + data['applocation'] = this.applocation; + data['applatitude'] = this.applatitude; + data['applongitude'] = this.applongitude; + data['appradius'] = this.appradius; + data['moduleid'] = this.moduleid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + return data; + } +} + diff --git a/lib/Model/Response/Authentication/Sms/Smsresponse.dart b/lib/Model/Response/Authentication/Sms/Smsresponse.dart new file mode 100644 index 0000000..c42ea79 --- /dev/null +++ b/lib/Model/Response/Authentication/Sms/Smsresponse.dart @@ -0,0 +1,18 @@ +class SmsResponse { + String? requestId; + String? checkUrl; + + SmsResponse({this.requestId, this.checkUrl}); + + SmsResponse.fromJson(Map json) { + requestId = json['request_id']; + checkUrl = json['check_url']; + } + + Map toJson() { + final Map data = new Map(); + data['request_id'] = this.requestId; + data['check_url'] = this.checkUrl; + return data; + } +} diff --git a/lib/Model/Response/Createcustomer/Createcustomerresponse.dart b/lib/Model/Response/Createcustomer/Createcustomerresponse.dart new file mode 100644 index 0000000..b75b95c --- /dev/null +++ b/lib/Model/Response/Createcustomer/Createcustomerresponse.dart @@ -0,0 +1,112 @@ +class CreateCustomerResponse { + int? code; + Details? details; + String? message; + bool? status; + + CreateCustomerResponse({this.code, this.details, this.message, this.status}); + + CreateCustomerResponse.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new Details.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class Details { + int? customerid; + String? firstname; + String? lastname; + String? contactno; + String? email; + int? deliverylocationid; + String? address; + String? suburb; + String? city; + String? state; + String? landmark; + String? doorno; + String? postcode; + String? latitude; + String? longitude; + int? applocationid; + int? tenantlocationid; + int? status; + + Details( + {this.customerid, + this.firstname, + this.lastname, + this.contactno, + this.email, + this.deliverylocationid, + this.address, + this.suburb, + this.city, + this.state, + this.landmark, + this.doorno, + this.postcode, + this.latitude, + this.longitude, + this.applocationid, + this.tenantlocationid, + this.status}); + + Details.fromJson(Map json) { + customerid = json['customerid']; + firstname = json['firstname']; + lastname = json['lastname']; + contactno = json['contactno']; + email = json['email']; + deliverylocationid = json['deliverylocationid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + landmark = json['landmark']; + doorno = json['doorno']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + applocationid = json['applocationid']; + tenantlocationid = json['tenantlocationid']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['contactno'] = this.contactno; + data['email'] = this.email; + data['deliverylocationid'] = this.deliverylocationid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['applocationid'] = this.applocationid; + data['tenantlocationid'] = this.tenantlocationid; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart b/lib/Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart new file mode 100644 index 0000000..1eb0b50 --- /dev/null +++ b/lib/Model/Response/Createcustomer/Createdeliveryaddress/Createdeliveryaddressresponsel.dart @@ -0,0 +1,97 @@ +class CreateDeliveryAddressResponse { + int? code; + bool? status; + String? message; + List
? details; + + CreateDeliveryAddressResponse( + {this.code, this.status, this.message, this.details}); + + CreateDeliveryAddressResponse.fromJson(Map json) { + code = json['code']; + status = json['status']; + message = json['message']; + if (json['details'] != null) { + details =
[]; + json['details'].forEach((v) { + details!.add(new Details.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['status'] = this.status; + data['message'] = this.message; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Details { + int? locationid; + int? customerid; + String? address; + String? suburb; + String? city; + String? state; + String? landmark; + String? doorno; + String? postcode; + String? latitude; + String? longitude; + String? defaultaddress; + int? status; + + Details( + {this.locationid, + this.customerid, + this.address, + this.suburb, + this.city, + this.state, + this.landmark, + this.doorno, + this.postcode, + this.latitude, + this.longitude, + this.defaultaddress, + this.status}); + + Details.fromJson(Map json) { + locationid = json['locationid']; + customerid = json['customerid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + landmark = json['landmark']; + doorno = json['doorno']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + defaultaddress = json['defaultaddress']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['customerid'] = this.customerid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['defaultaddress'] = this.defaultaddress; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Createorder/CreateOrderResponsemodel.dart b/lib/Model/Response/Createorder/CreateOrderResponsemodel.dart new file mode 100644 index 0000000..cb16200 --- /dev/null +++ b/lib/Model/Response/Createorder/CreateOrderResponsemodel.dart @@ -0,0 +1,299 @@ + +class CreateOrderResponse { + int? code; + OrderResponseDetails? details; + String? message; + bool? status; + + CreateOrderResponse({this.code, this.details, this.message, this.status}); + + CreateOrderResponse.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new OrderResponseDetails.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class OrderResponseDetails { + int? orderheaderid; + int? applocationid; + String? applocation; + int? tenantid; + int? partnerid; + int? locationid; + int? categoryid; + int? subcategoryid; + int? moduleid; + int? configid; + String? orderid; + String? orderdate; + String? deliverydate; + String? orderstatus; + String? deliverystatus; + int? itemcount; + String? ordernotes; + String? kms; + String? actualkms; + String? pending; + String? processing; + String? ready; + String? cancelled; + String? delivered; + String? assigntime; + String? starttime; + String? arrivaltime; + String? pickuptime; + String? deliverytime; + String? canceltime; + double? deliverycharge; + double? deliveryamt; + int? customerid; + String? pickupcustomer; + String? pickupcontactno; + int? pickuplocationid; + String? pickupaddress; + String? pickupsuburb; + String? pickupcity; + String? pickuplat; + String? pickuplong; + int? deliveryid; + int? deliverycustomerid; + String? deliverycustomer; + String? deliverycontactno; + int? deliverylocationid; + String? deliveryaddress; + String? deliverysuburb; + String? deliverylat; + String? deliverylong; + String? deliverytype; + int? paymenttype; + String? tenantname; + String? tenanttoken; + String? tenantsuburb; + String? tenantcity; + String? tenantcontactno; + String? tenantpostcode; + String? locationname; + String? locationsuburb; + String? locationcity; + String? locationcontactno; + String? rider; + int? smsdelivery; + + OrderResponseDetails( + {this.orderheaderid, + this.applocationid, + this.applocation, + this.tenantid, + this.partnerid, + this.locationid, + this.categoryid, + this.subcategoryid, + this.moduleid, + this.configid, + this.orderid, + this.orderdate, + this.deliverydate, + this.orderstatus, + this.deliverystatus, + this.itemcount, + this.ordernotes, + this.kms, + this.actualkms, + this.pending, + this.processing, + this.ready, + this.cancelled, + this.delivered, + this.assigntime, + this.starttime, + this.arrivaltime, + this.pickuptime, + this.deliverytime, + this.canceltime, + this.deliverycharge, + this.deliveryamt, + this.customerid, + this.pickupcustomer, + this.pickupcontactno, + this.pickuplocationid, + this.pickupaddress, + this.pickupsuburb, + this.pickupcity, + this.pickuplat, + this.pickuplong, + this.deliveryid, + this.deliverycustomerid, + this.deliverycustomer, + this.deliverycontactno, + this.deliverylocationid, + this.deliveryaddress, + this.deliverysuburb, + this.deliverylat, + this.deliverylong, + this.deliverytype, + this.paymenttype, + this.tenantname, + this.tenanttoken, + this.tenantsuburb, + this.tenantcity, + this.tenantcontactno, + this.tenantpostcode, + this.locationname, + this.locationsuburb, + this.locationcity, + this.locationcontactno, + this.rider, + this.smsdelivery}); + + OrderResponseDetails.fromJson(Map json) { + orderheaderid = json['orderheaderid']; + applocationid = json['applocationid']; + applocation = json['applocation']; + tenantid = json['tenantid']; + partnerid = json['partnerid']; + locationid = json['locationid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + moduleid = json['moduleid']; + configid = json['configid']; + orderid = json['orderid']; + orderdate = json['orderdate']; + deliverydate = json['deliverydate']; + orderstatus = json['orderstatus']; + deliverystatus = json['deliverystatus']; + itemcount = json['itemcount']; + ordernotes = json['ordernotes']; + kms = json['kms']; + actualkms = json['actualkms']; + pending = json['Pending']; + processing = json['processing']; + ready = json['ready']; + cancelled = json['cancelled']; + delivered = json['delivered']; + assigntime = json['assigntime']; + starttime = json['starttime']; + arrivaltime = json['arrivaltime']; + pickuptime = json['pickuptime']; + deliverytime = json['deliverytime']; + canceltime = json['canceltime']; + deliverycharge = json['deliverycharge'].toDouble(); + deliveryamt = json['deliveryamt'].toDouble(); + customerid = json['customerid']; + pickupcustomer = json['pickupcustomer']; + pickupcontactno = json['pickupcontactno']; + pickuplocationid = json['pickuplocationid']; + pickupaddress = json['pickupaddress']; + pickupsuburb = json['pickupsuburb']; + pickupcity = json['pickupcity']; + pickuplat = json['pickuplat']; + pickuplong = json['pickuplong']; + deliveryid = json['deliveryid']; + deliverycustomerid = json['deliverycustomerid']; + deliverycustomer = json['deliverycustomer']; + deliverycontactno = json['deliverycontactno']; + deliverylocationid = json['deliverylocationid']; + deliveryaddress = json['deliveryaddress']; + deliverysuburb = json['deliverysuburb']; + deliverylat = json['deliverylat']; + deliverylong = json['deliverylong']; + deliverytype = json['deliverytype']; + paymenttype = json['paymenttype']; + tenantname = json['tenantname']; + tenanttoken = json['tenanttoken']; + tenantsuburb = json['tenantsuburb']; + tenantcity = json['tenantcity']; + tenantcontactno = json['tenantcontactno']; + tenantpostcode = json['tenantpostcode']; + locationname = json['locationname']; + locationsuburb = json['locationsuburb']; + locationcity = json['locationcity']; + locationcontactno = json['locationcontactno']; + rider = json['rider']; + smsdelivery = json['smsdelivery']; + } + + Map toJson() { + final Map data = new Map(); + data['orderheaderid'] = this.orderheaderid; + data['applocationid'] = this.applocationid; + data['applocation'] = this.applocation; + data['tenantid'] = this.tenantid; + data['partnerid'] = this.partnerid; + data['locationid'] = this.locationid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['moduleid'] = this.moduleid; + data['configid'] = this.configid; + data['orderid'] = this.orderid; + data['orderdate'] = this.orderdate; + data['deliverydate'] = this.deliverydate; + data['orderstatus'] = this.orderstatus; + data['deliverystatus'] = this.deliverystatus; + data['itemcount'] = this.itemcount; + data['ordernotes'] = this.ordernotes; + data['kms'] = this.kms; + data['actualkms'] = this.actualkms; + data['Pending'] = this.pending; + data['processing'] = this.processing; + data['ready'] = this.ready; + data['cancelled'] = this.cancelled; + data['delivered'] = this.delivered; + data['assigntime'] = this.assigntime; + data['starttime'] = this.starttime; + data['arrivaltime'] = this.arrivaltime; + data['pickuptime'] = this.pickuptime; + data['deliverytime'] = this.deliverytime; + data['canceltime'] = this.canceltime; + data['deliverycharge'] = this.deliverycharge; + data['deliveryamt'] = this.deliveryamt; + data['customerid'] = this.customerid; + data['pickupcustomer'] = this.pickupcustomer; + data['pickupcontactno'] = this.pickupcontactno; + data['pickuplocationid'] = this.pickuplocationid; + data['pickupaddress'] = this.pickupaddress; + data['pickupsuburb'] = this.pickupsuburb; + data['pickupcity'] = this.pickupcity; + data['pickuplat'] = this.pickuplat; + data['pickuplong'] = this.pickuplong; + data['deliveryid'] = this.deliveryid; + data['deliverycustomerid'] = this.deliverycustomerid; + data['deliverycustomer'] = this.deliverycustomer; + data['deliverycontactno'] = this.deliverycontactno; + data['deliverylocationid'] = this.deliverylocationid; + data['deliveryaddress'] = this.deliveryaddress; + data['deliverysuburb'] = this.deliverysuburb; + data['deliverylat'] = this.deliverylat; + data['deliverylong'] = this.deliverylong; + data['deliverytype'] = this.deliverytype; + data['paymenttype'] = this.paymenttype; + data['tenantname'] = this.tenantname; + data['tenanttoken'] = this.tenanttoken; + data['tenantsuburb'] = this.tenantsuburb; + data['tenantcity'] = this.tenantcity; + data['tenantcontactno'] = this.tenantcontactno; + data['tenantpostcode'] = this.tenantpostcode; + data['locationname'] = this.locationname; + data['locationsuburb'] = this.locationsuburb; + data['locationcity'] = this.locationcity; + data['locationcontactno'] = this.locationcontactno; + data['rider'] = this.rider; + data['smsdelivery'] = this.smsdelivery; + return data; + } +} + + diff --git a/lib/Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart b/lib/Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart new file mode 100644 index 0000000..95ff8ac --- /dev/null +++ b/lib/Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart @@ -0,0 +1,117 @@ +class GetCustomerByTenantId { + int? code; + List? details; + String? message; + bool? status; + + GetCustomerByTenantId({this.code, this.details, this.message, this.status}); + + GetCustomerByTenantId.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new GetCustomerByTenantIdDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class GetCustomerByTenantIdDetails { + int? customerid; + String? firstname; + String? lastname; + String? contactno; + String? email; + int? deliverylocationid; + String? address; + String? suburb; + String? city; + String? state; + String? landmark; + String? doorno; + String? postcode; + String? latitude; + String? longitude; + int? applocationid; + int? tenantlocationid; + int? status; + + GetCustomerByTenantIdDetails( + {this.customerid, + this.firstname, + this.lastname, + this.contactno, + this.email, + this.deliverylocationid, + this.address, + this.suburb, + this.city, + this.state, + this.landmark, + this.doorno, + this.postcode, + this.latitude, + this.longitude, + this.applocationid, + this.tenantlocationid, + this.status}); + + GetCustomerByTenantIdDetails.fromJson(Map json) { + customerid = json['customerid']; + firstname = json['firstname']; + lastname = json['lastname']; + contactno = json['contactno']; + email = json['email']; + deliverylocationid = json['deliverylocationid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + landmark = json['landmark']; + doorno = json['doorno']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + applocationid = json['applocationid']; + tenantlocationid = json['tenantlocationid']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['contactno'] = this.contactno; + data['email'] = this.email; + data['deliverylocationid'] = this.deliverylocationid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['applocationid'] = this.applocationid; + data['tenantlocationid'] = this.tenantlocationid; + data['status'] = this.status; + return data; + } +} + diff --git a/lib/Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart b/lib/Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart new file mode 100644 index 0000000..cc5dec9 --- /dev/null +++ b/lib/Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart @@ -0,0 +1,116 @@ +class GetDropCustomerByTenantId { + int? code; + List? details; + String? message; + bool? status; + + GetDropCustomerByTenantId({this.code, this.details, this.message, this.status}); + + GetDropCustomerByTenantId.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new GetDropCustomerByTenantIdDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class GetDropCustomerByTenantIdDetails { + int? customerid; + String? firstname; + String? lastname; + String? contactno; + String? email; + int? deliverylocationid; + String? address; + String? suburb; + String? city; + String? state; + String? landmark; + String? doorno; + String? postcode; + String? latitude; + String? longitude; + int? applocationid; + int? tenantlocationid; + int? status; + + GetDropCustomerByTenantIdDetails( + {this.customerid, + this.firstname, + this.lastname, + this.contactno, + this.email, + this.deliverylocationid, + this.address, + this.suburb, + this.city, + this.state, + this.landmark, + this.doorno, + this.postcode, + this.latitude, + this.longitude, + this.applocationid, + this.tenantlocationid, + this.status}); + + GetDropCustomerByTenantIdDetails.fromJson(Map json) { + customerid = json['customerid']; + firstname = json['firstname']; + lastname = json['lastname']; + contactno = json['contactno']; + email = json['email']; + deliverylocationid = json['deliverylocationid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + landmark = json['landmark']; + doorno = json['doorno']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + applocationid = json['applocationid']; + tenantlocationid = json['tenantlocationid']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['contactno'] = this.contactno; + data['email'] = this.email; + data['deliverylocationid'] = this.deliverylocationid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['applocationid'] = this.applocationid; + data['tenantlocationid'] = this.tenantlocationid; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Getcustomeraddress/GetCustomerAddress.dart b/lib/Model/Response/Getcustomeraddress/GetCustomerAddress.dart new file mode 100644 index 0000000..62defcd --- /dev/null +++ b/lib/Model/Response/Getcustomeraddress/GetCustomerAddress.dart @@ -0,0 +1,97 @@ +class GetCustomerAddress { + int? code; + bool? status; + String? message; + List? details; + + GetCustomerAddress({this.code, this.status, this.message, this.details}); + + GetCustomerAddress.fromJson(Map json) { + code = json['code']; + status = json['status']; + message = json['message']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new CustomerAddressDetail.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['status'] = this.status; + data['message'] = this.message; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class CustomerAddressDetail { + int? locationid; + int? customerid; + String? address; + String? suburb; + String? city; + String? state; + String? landmark; + String? doorno; + String? postcode; + String? latitude; + String? longitude; + String? defaultaddress; + int? status; + + CustomerAddressDetail( + {this.locationid, + this.customerid, + this.address, + this.suburb, + this.city, + this.state, + this.landmark, + this.doorno, + this.postcode, + this.latitude, + this.longitude, + this.defaultaddress, + this.status}); + + CustomerAddressDetail.fromJson(Map json) { + locationid = json['locationid']; + customerid = json['customerid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + landmark = json['landmark']; + doorno = json['doorno']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + defaultaddress = json['defaultaddress']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['customerid'] = this.customerid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['landmark'] = this.landmark; + data['doorno'] = this.doorno; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['defaultaddress'] = this.defaultaddress; + data['status'] = this.status; + return data; + } +} + diff --git a/lib/Model/Response/Getcustomerbynumber/Getcustomerbynumberresponse.dart b/lib/Model/Response/Getcustomerbynumber/Getcustomerbynumberresponse.dart new file mode 100644 index 0000000..13c1f20 --- /dev/null +++ b/lib/Model/Response/Getcustomerbynumber/Getcustomerbynumberresponse.dart @@ -0,0 +1,144 @@ +class GetCustomerByNumber { + int? status; + String? message; + int? code; + Customerdata? customerdata; + + GetCustomerByNumber( + {this.status, this.message, this.code, this.customerdata}); + + GetCustomerByNumber.fromJson(Map json) { + status = json['status']; + message = json['message']; + code = json['code']; + customerdata = json['customerdata'] != null + ? new Customerdata.fromJson(json['customerdata']) + : null; + } + + Map toJson() { + final Map data = new Map(); + data['status'] = this.status; + data['message'] = this.message; + data['code'] = this.code; + if (this.customerdata != null) { + data['customerdata'] = this.customerdata!.toJson(); + } + return data; + } + + static List fromJsonList(List list) { + return list.map((item) => GetCustomerByNumber.fromJson(item)).toList(); + } +} + +class Customerdata { + int? customerid; + int? authmode; + int? configid; + String? devicetype; + String? accountid; + String? firstname; + String? lastname; + String? contactno; + String? email; + String? profileimage; + String? doorno; + String? address; + String? landmark; + String? suburb; + String? city; + String? state; + String? postcode; + String? countrycode; + String? customertoken; + String? latitude; + String? longitude; + String? status; + String? created; + int? locationid; + + Customerdata( + {this.customerid, + this.authmode, + this.configid, + this.devicetype, + this.accountid, + this.firstname, + this.lastname, + this.contactno, + this.email, + this.profileimage, + this.doorno, + this.address, + this.landmark, + this.suburb, + this.city, + this.state, + this.postcode, + this.countrycode, + this.customertoken, + this.latitude, + this.longitude, + this.status, + this.created, + this.locationid}); + + Customerdata.fromJson(Map json) { + customerid = json['customerid']; + authmode = json['authmode']; + configid = json['configid']; + devicetype = json['devicetype']; + accountid = json['accountid']; + firstname = json['firstname']; + lastname = json['lastname']; + contactno = json['contactno']; + email = json['email']; + profileimage = json['profileimage']; + doorno = json['doorno']; + address = json['address']; + landmark = json['landmark']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + countrycode = json['countrycode']; + customertoken = json['customertoken']; + latitude = json['latitude']; + longitude = json['longitude']; + status = json['status']; + created = json['created']; + locationid = json['locationid']; + } + + Map toJson() { + final Map data = new Map(); + data['customerid'] = this.customerid; + data['authmode'] = this.authmode; + data['configid'] = this.configid; + data['devicetype'] = this.devicetype; + data['accountid'] = this.accountid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['contactno'] = this.contactno; + data['email'] = this.email; + data['profileimage'] = this.profileimage; + data['doorno'] = this.doorno; + data['address'] = this.address; + data['landmark'] = this.landmark; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['countrycode'] = this.countrycode; + data['customertoken'] = this.customertoken; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['status'] = this.status; + data['created'] = this.created; + data['locationid'] = this.locationid; + return data; + } + + +} diff --git a/lib/Model/Response/Location/Addlocation/Addlocationresponse.dart b/lib/Model/Response/Location/Addlocation/Addlocationresponse.dart new file mode 100644 index 0000000..322e789 --- /dev/null +++ b/lib/Model/Response/Location/Addlocation/Addlocationresponse.dart @@ -0,0 +1,21 @@ +class AddLocationResponse { + int? code; + String? message; + bool? status; + + AddLocationResponse({this.code, this.message, this.status}); + + AddLocationResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Location/Updatelocation/Updatelocationresponse.dart b/lib/Model/Response/Location/Updatelocation/Updatelocationresponse.dart new file mode 100644 index 0000000..c57d7d2 --- /dev/null +++ b/lib/Model/Response/Location/Updatelocation/Updatelocationresponse.dart @@ -0,0 +1,21 @@ +class UpdateLocationResponse { + int? code; + String? message; + bool? status; + + UpdateLocationResponse({this.code, this.message, this.status}); + + UpdateLocationResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Location/getlocationbyidmodel.dart b/lib/Model/Response/Location/getlocationbyidmodel.dart new file mode 100644 index 0000000..1a6e258 --- /dev/null +++ b/lib/Model/Response/Location/getlocationbyidmodel.dart @@ -0,0 +1,124 @@ +class GetLocationByTenantId { + int? code; + List
? details; + String? message; + bool? status; + + GetLocationByTenantId({this.code, this.details, this.message, this.status}); + + GetLocationByTenantId.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details =
[]; + json['details'].forEach((v) { + details!.add(new Details.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class Details { + int? locationid; + int? applocationid; + int? tenantid; + int?moduleid; + String? locationname; + String? locationemail; + String? locationcontact; + String? locationlatitude; + String? locationlong; + String? locationaddress; + String? locationsuburb; + String? locationcity; + String? locationstate; + String? locationpostcode; + String? opentime; + String? closetime; + int? partnerid; + int? deliveryradius; + int? deliverymins; + int? cancelsecs; + + Details( + {this.locationid, + this.applocationid, + this.tenantid, + this.moduleid, + this.locationname, + this.locationemail, + this.locationcontact, + this.locationlatitude, + this.locationlong, + this.locationaddress, + this.locationsuburb, + this.locationcity, + this.locationstate, + this.locationpostcode, + this.opentime, + this.closetime, + this.partnerid, + this.deliveryradius, + this.deliverymins, + this.cancelsecs}); + + Details.fromJson(Map json) { + locationid = json['locationid']; + applocationid = json['applocationid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + locationname = json['locationname']; + locationemail = json['locationemail']; + locationcontact = json['locationcontact']; + locationlatitude = json['locationlatitude']; + locationlong = json['locationlong']; + locationaddress = json['locationaddress']; + locationsuburb = json['locationsuburb']; + locationcity = json['locationcity']; + locationstate = json['locationstate']; + locationpostcode = json['locationpostcode']; + opentime = json['opentime']; + closetime = json['closetime']; + partnerid = json['partnerid']; + deliveryradius = json['deliveryradius']; + deliverymins = json['deliverymins']; + cancelsecs = json['cancelsecs']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['applocationid'] = this.applocationid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['locationname'] = this.locationname; + data['locationemail'] = this.locationemail; + data['locationcontact'] = this.locationcontact; + data['locationlatitude'] = this.locationlatitude; + data['locationlong'] = this.locationlong; + data['locationaddress'] = this.locationaddress; + data['locationsuburb'] = this.locationsuburb; + data['locationcity'] = this.locationcity; + data['locationstate'] = this.locationstate; + data['locationpostcode'] = this.locationpostcode; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['partnerid'] = this.partnerid; + data['deliveryradius'] = this.deliveryradius; + data['deliverymins'] = this.deliverymins; + data['cancelsecs'] = this.cancelsecs; + return data; + } +} diff --git a/lib/Model/Response/Notification/Notificationresponse.dart b/lib/Model/Response/Notification/Notificationresponse.dart new file mode 100644 index 0000000..749aad0 --- /dev/null +++ b/lib/Model/Response/Notification/Notificationresponse.dart @@ -0,0 +1,21 @@ +class NotificationResponse { + int? code; + String? message; + bool? status; + + NotificationResponse({this.code, this.message, this.status}); + + NotificationResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Orders/Getorderresponse.dart b/lib/Model/Response/Orders/Getorderresponse.dart new file mode 100644 index 0000000..a2f7cb1 --- /dev/null +++ b/lib/Model/Response/Orders/Getorderresponse.dart @@ -0,0 +1,317 @@ +class GetOrders { + int? code; + List? details; + String? message; + bool? status; + + GetOrders({this.code, this.details, this.message, this.status}); + + GetOrders.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new OrderDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class OrderDetails { + int? orderheaderid; + int? applocationid; + int? tenantid; + int? partnerid; + int? locationid; + int? categoryid; + int? subcategoryid; + int? moduleid; + int? configid; + String? orderid; + String? orderdate; + String? deliverydate; + String? orderstatus; + int? itemcount; + String? ordernotes; + String? kms; + String? actualkms; + String? pending; + String? processing; + String? ready; + String? cancelled; + String? completed; + String? assigned; + String? accepted; + String? picked; + String? canceltime; + String? delivered; + String? assigntime; + String? starttime; + String? arrivaltime; + String? pickuptime; + String? deliverytime; + int? deliverycharge; + int? deliveryamt; + int? customerid; + String? pickupcustomer; + String? pickupcontactno; + int? pickuplocationid; + String? pickupaddress; + String? pickupsuburb; + String? pickupcity; + String? pickuplat; + String? pickuplong; + int? deliveryid; + String? deliverycustomer; + String? deliverycontactno; + int? deliverylocationid; + String? deliveryaddress; + String? deliverysuburb; + String? deliverylat; + String? deliverylong; + int? paymenttype; + String? tenantname; + String? tenanttoken; + String? tenantsuburb; + String? tenantcity; + String? tenantcontactno; + String? tenantpostcode; + String? locationname; + String? locationsuburb; + String? locationcity; + String? locationcontactno; + String? rider; + String? ridercontactno; + int? smsdelivery; + String? customertoken; + String? ridertoken; + + OrderDetails( + {this.orderheaderid, + this.applocationid, + this.tenantid, + this.partnerid, + this.locationid, + this.categoryid, + this.subcategoryid, + this.moduleid, + this.configid, + this.orderid, + this.orderdate, + this.deliverydate, + this.orderstatus, + this.itemcount, + this.ordernotes, + this.kms, + this.actualkms, + this.pending, + this.processing, + this.ready, + this.cancelled, + this.completed, + this.assigned, + this.accepted, + this.picked, + this.canceltime, + this.assigntime, + this.starttime, + this.arrivaltime, + this.pickuptime, + this.deliverytime, + this.delivered, + this.deliverycharge, + this.deliveryamt, + this.customerid, + this.pickupcustomer, + this.pickupcontactno, + this.pickuplocationid, + this.pickupaddress, + this.pickupsuburb, + this.pickupcity, + this.pickuplat, + this.pickuplong, + this.deliveryid, + this.deliverycustomer, + this.deliverycontactno, + this.deliverylocationid, + this.deliveryaddress, + this.deliverysuburb, + this.deliverylat, + this.deliverylong, + this.paymenttype, + this.tenantname, + this.tenanttoken, + this.tenantsuburb, + this.tenantcity, + this.tenantcontactno, + this.tenantpostcode, + this.locationname, + this.locationsuburb, + this.locationcity, + this.locationcontactno, + this.rider, + this.smsdelivery, + this.ridercontactno, + this.customertoken, + this.ridertoken + + }); + + OrderDetails.fromJson(Map json) { + orderheaderid = json['orderheaderid']; + applocationid = json['applocationid']; + tenantid = json['tenantid']; + partnerid = json['partnerid']; + locationid = json['locationid']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + moduleid = json['moduleid']; + configid = json['configid']; + orderid = json['orderid']; + orderdate = json['orderdate']; + deliverydate = json['deliverydate']; + orderstatus = json['orderstatus']; + itemcount = json['itemcount']; + ordernotes = json['ordernotes']; + kms = json['kms']; + actualkms = json['actualkms']; + pending = json['Pending']; + processing = json['processing']; + ready = json['ready']; + cancelled = json['cancelled']; + completed = json['completed']; + assigned = json['assigned']; + accepted = json['accepted']; + picked = json['picked']; + assigntime = json['assigntime']; + starttime = json['starttime']; + arrivaltime = json['arrivaltime']; + pickuptime = json['pickuptime']; + deliverytime = json['deliverytime']; + canceltime = json['canceltime']; + delivered = json['delivered']; + deliverycharge = json['deliverycharge']; + deliveryamt = json['deliveryamt']; + customerid = json['customerid']; + pickupcustomer = json['pickupcustomer']; + pickupcontactno = json['pickupcontactno']; + pickuplocationid = json['pickuplocationid']; + pickupaddress = json['pickupaddress']; + pickupsuburb = json['pickupsuburb']; + pickupcity = json['pickupcity']; + pickuplat = json['pickuplat']; + pickuplong = json['pickuplong']; + deliveryid = json['deliveryid']; + deliverycustomer = json['deliverycustomer']; + deliverycontactno = json['deliverycontactno']; + deliverylocationid = json['deliverylocationid']; + deliveryaddress = json['deliveryaddress']; + deliverysuburb = json['deliverysuburb']; + deliverylat = json['deliverylat']; + deliverylong = json['deliverylong']; + paymenttype = json['paymenttype']; + tenantname = json['tenantname']; + tenanttoken = json['tenanttoken']; + tenantsuburb = json['tenantsuburb']; + tenantcity = json['tenantcity']; + tenantcontactno = json['tenantcontactno']; + tenantpostcode = json['tenantpostcode']; + locationname = json['locationname']; + locationsuburb = json['locationsuburb']; + locationcity = json['locationcity']; + locationcontactno = json['locationcontactno']; + rider = json['rider']; + smsdelivery = json['smsdelivery']; + ridercontactno = json['ridercontactno']; + customertoken = json['customertoken']; + ridertoken = json['ridertoken']; + } + + Map toJson() { + final Map data = new Map(); + data['orderheaderid'] = this.orderheaderid; + data['applocationid'] = this.applocationid; + data['tenantid'] = this.tenantid; + data['partnerid'] = this.partnerid; + data['locationid'] = this.locationid; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['moduleid'] = this.moduleid; + data['configid'] = this.configid; + data['orderid'] = this.orderid; + data['orderdate'] = this.orderdate; + data['deliverydate'] = this.deliverydate; + data['orderstatus'] = this.orderstatus; + data['itemcount'] = this.itemcount; + data['ordernotes'] = this.ordernotes; + data['kms'] = this.kms; + data['actualkms'] = this.actualkms; + data['Pending'] = this.pending; + data['processing'] = this.processing; + data['ready'] = this.ready; + data['cancelled'] = this.cancelled; + data['completed'] = this.completed; + data['assigned'] = this.assigned; + data['accepted'] = this.accepted; + data['picked'] = this.picked; + data['delivered'] = this.delivered; + data['assigntime'] = this.assigntime; + data['starttime'] = this.starttime; + data['arrivaltime'] = this.arrivaltime; + data['pickuptime'] = this.pickuptime; + data['deliverytime'] = this.deliverytime; + data['canceltime'] = this.canceltime; + data['delivered'] = this.delivered; + data['deliverycharge'] = this.deliverycharge; + data['deliveryamt'] = this.deliveryamt; + data['customerid'] = this.customerid; + data['pickupcustomer'] = this.pickupcustomer; + data['pickupcontactno'] = this.pickupcontactno; + data['pickuplocationid'] = this.pickuplocationid; + data['pickupaddress'] = this.pickupaddress; + data['pickupsuburb'] = this.pickupsuburb; + data['pickupcity'] = this.pickupcity; + data['pickuplat'] = this.pickuplat; + data['pickuplong'] = this.pickuplong; + data['deliveryid'] = this.deliveryid; + data['deliverycustomer'] = this.deliverycustomer; + data['deliverycontactno'] = this.deliverycontactno; + data['deliverylocationid'] = this.deliverylocationid; + data['deliveryaddress'] = this.deliveryaddress; + data['deliverysuburb'] = this.deliverysuburb; + data['deliverylat'] = this.deliverylat; + data['deliverylong'] = this.deliverylong; + data['paymenttype'] = this.paymenttype; + data['tenantname'] = this.tenantname; + data['tenanttoken'] = this.tenanttoken; + data['tenantsuburb'] = this.tenantsuburb; + data['tenantcity'] = this.tenantcity; + data['tenantcontactno'] = this.tenantcontactno; + data['tenantpostcode'] = this.tenantpostcode; + data['locationname'] = this.locationname; + data['locationsuburb'] = this.locationsuburb; + data['locationcity'] = this.locationcity; + data['locationcontactno'] = this.locationcontactno; + data['rider'] = this.rider; + data['smsdelivery'] = this.smsdelivery; + data['ridercontactno'] = this.ridercontactno; + data['customertoken'] = this.customertoken; + data['ridertoken'] = this.ridertoken; + return data; + } +} + + diff --git a/lib/Model/Response/Partners/Getpartnerinforequest.dart b/lib/Model/Response/Partners/Getpartnerinforequest.dart new file mode 100644 index 0000000..9295028 --- /dev/null +++ b/lib/Model/Response/Partners/Getpartnerinforequest.dart @@ -0,0 +1,112 @@ +class GetPartnersInfo { + int? code; + List? details; + String? message; + bool? status; + + GetPartnersInfo({this.code, this.details, this.message, this.status}); + + GetPartnersInfo.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new PartnerInfoDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class PartnerInfoDetails { + int? partnerid; + int? partnertypeid; + int? applocationid; + String? partnername; + String? registrationno; + String? primartcontact; + String? primaryemail; + String? contactno; + int? bizcategoryid; + int? bizsubcategoryid; + String? address; + String? suburb; + String? state; + String? city; + String? postcode; + String? partnerinfo; + String? partnerimage; + + PartnerInfoDetails( + {this.partnerid, + this.partnertypeid, + this.applocationid, + this.partnername, + this.registrationno, + this.primartcontact, + this.primaryemail, + this.contactno, + this.bizcategoryid, + this.bizsubcategoryid, + this.address, + this.suburb, + this.state, + this.city, + this.postcode, + this.partnerinfo, + this.partnerimage}); + + PartnerInfoDetails.fromJson(Map json) { + partnerid = json['partnerid']; + partnertypeid = json['partnertypeid']; + applocationid = json['applocationid']; + partnername = json['partnername']; + registrationno = json['registrationno']; + primartcontact = json['primartcontact']; + primaryemail = json['primaryemail']; + contactno = json['contactno']; + bizcategoryid = json['bizcategoryid']; + bizsubcategoryid = json['bizsubcategoryid']; + address = json['address']; + suburb = json['suburb']; + state = json['state']; + city = json['city']; + postcode = json['postcode']; + partnerinfo = json['partnerinfo']; + partnerimage = json['partnerimage']; + } + + Map toJson() { + final Map data = new Map(); + data['partnerid'] = this.partnerid; + data['partnertypeid'] = this.partnertypeid; + data['applocationid'] = this.applocationid; + data['partnername'] = this.partnername; + data['registrationno'] = this.registrationno; + data['primartcontact'] = this.primartcontact; + data['primaryemail'] = this.primaryemail; + data['contactno'] = this.contactno; + data['bizcategoryid'] = this.bizcategoryid; + data['bizsubcategoryid'] = this.bizsubcategoryid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['state'] = this.state; + data['city'] = this.city; + data['postcode'] = this.postcode; + data['partnerinfo'] = this.partnerinfo; + data['partnerimage'] = this.partnerimage; + return data; + } +} diff --git a/lib/Model/Response/Riders/get_rider_model.dart b/lib/Model/Response/Riders/get_rider_model.dart new file mode 100644 index 0000000..bea532e --- /dev/null +++ b/lib/Model/Response/Riders/get_rider_model.dart @@ -0,0 +1,184 @@ +class GetRiderPoolsModel { + int? code; + List? details; + String? message; + bool? status; + + GetRiderPoolsModel({this.code, this.details, this.message, this.status}); + + GetRiderPoolsModel.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new GetRiderDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class GetRiderDetails { + int? userid; + String? authname; + int? configid; + int? authmode; + int? roleid; + String? firstname; + String? lastname; + String? fullname; + String? password; + String? email; + String? contactno; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? userfcmtoken; + int? pin; + int? partnerid; + String? identificationno; + String? vehiclename; + String? vehicleno; + String? licenseno; + String? insoranceno; + String? insurancedate; + int? shiftid; + String? starttime; + String? endtime; + int? shifthours; + double? basefare; + double? additionalcharges; + int? orders; + double? fuelcharge; + String? logdate; + String? status; + + GetRiderDetails( + {this.userid, + this.authname, + this.configid, + this.authmode, + this.roleid, + this.firstname, + this.lastname, + this.fullname, + this.password, + this.email, + this.contactno, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.userfcmtoken, + this.pin, + this.partnerid, + this.identificationno, + this.vehiclename, + this.vehicleno, + this.licenseno, + this.insoranceno, + this.insurancedate, + this.shiftid, + this.starttime, + this.endtime, + this.shifthours, + this.basefare, + this.additionalcharges, + this.orders, + this.fuelcharge, + this.logdate, + this.status}); + + GetRiderDetails.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + authmode = json['authmode']; + roleid = json['roleid']; + firstname = json['firstname']; + lastname = json['lastname']; + fullname = json['fullname']; + password = json['password']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + userfcmtoken = json['userfcmtoken']; + pin = json['pin']; + partnerid = json['partnerid']; + identificationno = json['identificationno']; + vehiclename = json['vehiclename']; + vehicleno = json['vehicleno']; + licenseno = json['licenseno']; + insoranceno = json['insoranceno']; + insurancedate = json['insurancedate']; + shiftid = json['shiftid']; + starttime = json['starttime']; + endtime = json['endtime']; + shifthours = json['shifthours']; + basefare = json['basefare'].toDouble(); + additionalcharges = json['additionalcharges'].toDouble(); + orders = json['orders']; + fuelcharge = json['fuelcharge'].toDouble(); + logdate = json['logdate']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['authmode'] = this.authmode; + data['roleid'] = this.roleid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['fullname'] = this.fullname; + data['password'] = this.password; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['userfcmtoken'] = this.userfcmtoken; + data['pin'] = this.pin; + data['partnerid'] = this.partnerid; + data['identificationno'] = this.identificationno; + data['vehiclename'] = this.vehiclename; + data['vehicleno'] = this.vehicleno; + data['licenseno'] = this.licenseno; + data['insoranceno'] = this.insoranceno; + data['insurancedate'] = this.insurancedate; + data['shiftid'] = this.shiftid; + data['starttime'] = this.starttime; + data['endtime'] = this.endtime; + data['shifthours'] = this.shifthours; + data['basefare'] = this.basefare; + data['additionalcharges'] = this.additionalcharges; + data['orders'] = this.orders; + data['fuelcharge'] = this.fuelcharge; + data['logdate'] = this.logdate; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Staffs/Addstaffs/Addstaffresponse.dart b/lib/Model/Response/Staffs/Addstaffs/Addstaffresponse.dart new file mode 100644 index 0000000..600013c --- /dev/null +++ b/lib/Model/Response/Staffs/Addstaffs/Addstaffresponse.dart @@ -0,0 +1,21 @@ +class CreateStaffResponse { + int? code; + String? message; + bool? status; + + CreateStaffResponse({this.code, this.message, this.status}); + + CreateStaffResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Staffs/Getstaffsresponse.dart b/lib/Model/Response/Staffs/Getstaffsresponse.dart new file mode 100644 index 0000000..8f29c9e --- /dev/null +++ b/lib/Model/Response/Staffs/Getstaffsresponse.dart @@ -0,0 +1,136 @@ +class GetStaffsResponse { + int? code; + List? details; + String? message; + bool? status; + + GetStaffsResponse({this.code, this.details, this.message, this.status}); + + GetStaffsResponse.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new StaffDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class StaffDetails { + int? userid; + String? authname; + int? configid; + int? authmode; + int? roleid; + String? firstname; + String? lastname; + String? fullname; + String? password; + String? email; + String? contactno; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? userfcmtoken; + int? pin; + int? applocationid; + int? partnerid; + int? tenantid; + int? locationid; + String? locationname; + + StaffDetails( + {this.userid, + this.authname, + this.configid, + this.authmode, + this.roleid, + this.firstname, + this.lastname, + this.fullname, + this.password, + this.email, + this.contactno, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.userfcmtoken, + this.pin, + this.applocationid, + this.partnerid, + this.tenantid, + this.locationid, + this.locationname}); + + StaffDetails.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + authmode = json['authmode']; + roleid = json['roleid']; + firstname = json['firstname']; + lastname = json['lastname']; + fullname = json['fullname']; + password = json['password']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + userfcmtoken = json['userfcmtoken']; + pin = json['pin']; + applocationid = json['applocationid']; + partnerid = json['partnerid']; + tenantid = json['tenantid']; + locationid = json['locationid']; + locationname = json['locationname']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['authmode'] = this.authmode; + data['roleid'] = this.roleid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['fullname'] = this.fullname; + data['password'] = this.password; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['userfcmtoken'] = this.userfcmtoken; + data['pin'] = this.pin; + data['applocationid'] = this.applocationid; + data['partnerid'] = this.partnerid; + data['tenantid'] = this.tenantid; + data['locationid'] = this.locationid; + data['locationname'] = this.locationname; + return data; + } +} diff --git a/lib/Model/Response/Staffs/Updatestaff/Updatestaffresponse.dart b/lib/Model/Response/Staffs/Updatestaff/Updatestaffresponse.dart new file mode 100644 index 0000000..41f0578 --- /dev/null +++ b/lib/Model/Response/Staffs/Updatestaff/Updatestaffresponse.dart @@ -0,0 +1,21 @@ +class UpdateStaffResponse { + int? code; + String? message; + bool? status; + + UpdateStaffResponse({this.code, this.message, this.status}); + + UpdateStaffResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Summary/Cancelorderresponse.dart b/lib/Model/Response/Summary/Cancelorderresponse.dart new file mode 100644 index 0000000..d56a677 --- /dev/null +++ b/lib/Model/Response/Summary/Cancelorderresponse.dart @@ -0,0 +1,21 @@ +class CancelOrderResponse { + int? code; + String? message; + bool? status; + + CancelOrderResponse({this.code, this.message, this.status}); + + CancelOrderResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/Summary/Getsummarysresponse.dart b/lib/Model/Response/Summary/Getsummarysresponse.dart new file mode 100644 index 0000000..2b0fda6 --- /dev/null +++ b/lib/Model/Response/Summary/Getsummarysresponse.dart @@ -0,0 +1,298 @@ +class GetDeliveries { + int? code; + List? details; + String? message; + bool? status; + + GetDeliveries({this.code, this.details, this.message, this.status}); + + GetDeliveries.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new DeliveriesDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class DeliveriesDetails { + int? deliveryid; + int? orderheaderid; + int? applocationid; + int? configid; + int? partnerid; + int? tenantid; + int? moduleid; + int? locationid; + int? categoryid; + int? userid; + int? subcategoryid; + String? orderid; + String? deliverydate; + String? orderstatus; + String? starttime; + String? arrivaltime; + String? pickuptime; + String? deliverytime; + String? canceltime; + int? itemcount; + int? orderamount; + int? customerid; + String? pickupcustomer; + String? pickupcontactno; + String? pickupaddress; + String? pickuplocation; + String? pickuplat; + String? pickuplon; + int? deliverycustomerid; + int? deliverylocationid; + String? deliverycustomer; + String? deliverycontactno; + String? deliveryaddress; + String? deliverylocation; + String? droplat; + String? droplon; + String? deliverylat; + String? deliverylong; + int? deliverycharges; + int? deliveryamt; + String? notes; + String? ordernotes; + String? riderslat; + String? riderslon; + int? firstmilekm; + int? firstmilecharges; + int? lastmilecharges; + int? ridercharges; + String? kms; + String? actualkms; + int? paymenttype; + String? tenantname; + String? tenantcontactno; + String? tenanttoken; + String? tenantsuburb; + String? tenantcity; + String? locationname; + String? locationcontactno; + String? locationsuburb; + String? ridername; + String? userfcmtoken; + int? queueid; + String? ridercontact; + + DeliveriesDetails( + {this.deliveryid, + this.orderheaderid, + this.applocationid, + this.configid, + this.partnerid, + this.tenantid, + this.moduleid, + this.locationid, + this.categoryid, + this.userid, + this.subcategoryid, + this.orderid, + this.deliverydate, + this.orderstatus, + this.starttime, + this.arrivaltime, + this.pickuptime, + this.deliverytime, + this.canceltime, + this.itemcount, + this.orderamount, + this.customerid, + this.pickupcustomer, + this.pickupcontactno, + this.pickupaddress, + this.pickuplocation, + this.pickuplat, + this.pickuplon, + this.deliverycustomerid, + this.deliverylocationid, + this.deliverycustomer, + this.deliverycontactno, + this.deliveryaddress, + this.deliverylocation, + this.droplat, + this.droplon, + this.deliverylat, + this.deliverylong, + this.deliverycharges, + this.deliveryamt, + this.notes, + this.ordernotes, + this.riderslat, + this.riderslon, + this.firstmilekm, + this.firstmilecharges, + this.lastmilecharges, + this.ridercharges, + this.kms, + this.actualkms, + this.paymenttype, + this.tenantname, + this.tenantcontactno, + this.tenanttoken, + this.tenantsuburb, + this.tenantcity, + this.locationname, + this.locationcontactno, + this.locationsuburb, + this.ridername, + this.userfcmtoken, + this.queueid, + this.ridercontact, + }); + + DeliveriesDetails.fromJson(Map json) { + deliveryid = json['deliveryid']; + orderheaderid = json['orderheaderid']; + applocationid = json['applocationid']; + configid = json['configid']; + partnerid = json['partnerid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + locationid = json['locationid']; + categoryid = json['categoryid']; + userid = json['userid']; + subcategoryid = json['subcategoryid']; + orderid = json['orderid']; + deliverydate = json['deliverydate']; + orderstatus = json['orderstatus']; + starttime = json['starttime']; + arrivaltime = json['arrivaltime']; + pickuptime = json['pickuptime']; + deliverytime = json['deliverytime']; + canceltime = json['canceltime']; + itemcount = json['itemcount']; + orderamount = json['orderamount']; + customerid = json['customerid']; + pickupcustomer = json['pickupcustomer']; + pickupcontactno = json['pickupcontactno']; + pickupaddress = json['Pickupaddress']; + pickuplocation = json['pickuplocation']; + pickuplat = json['pickuplat']; + pickuplon = json['pickuplon']; + deliverycustomerid = json['deliverycustomerid']; + deliverylocationid = json['deliverylocationid']; + deliverycustomer = json['deliverycustomer']; + deliverycontactno = json['deliverycontactno']; + deliveryaddress = json['deliveryaddress']; + deliverylocation = json['deliverylocation']; + droplat = json['droplat']; + droplon = json['droplon']; + deliverylat = json['deliverylat']; + deliverylong = json['deliverylong']; + deliverycharges = json['deliverycharges']; + deliveryamt = json['deliveryamt']; + notes = json['notes']; + ordernotes = json['ordernotes']; + riderslat = json['riderslat']; + riderslon = json['riderslon']; + firstmilekm = json['firstmilekm']; + firstmilecharges = json['firstmilecharges']; + lastmilecharges = json['lastmilecharges']; + ridercharges = json['ridercharges']; + kms = json['kms']; + actualkms = json['actualkms']; + paymenttype = json['paymenttype']; + tenantname = json['tenantname']; + tenantcontactno = json['tenantcontactno']; + tenanttoken = json['tenanttoken']; + tenantsuburb = json['tenantsuburb']; + tenantcity = json['tenantcity']; + locationname = json['locationname']; + locationcontactno = json['locationcontactno']; + locationsuburb = json['locationsuburb']; + ridername = json['ridername']; + userfcmtoken = json['userfcmtoken']; + queueid = json['queueid']; + ridercontact = json['ridercontact']; + } + + Map toJson() { + final Map data = new Map(); + data['deliveryid'] = this.deliveryid; + data['orderheaderid'] = this.orderheaderid; + data['applocationid'] = this.applocationid; + data['configid'] = this.configid; + data['partnerid'] = this.partnerid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['locationid'] = this.locationid; + data['categoryid'] = this.categoryid; + data['userid'] = this.userid; + data['subcategoryid'] = this.subcategoryid; + data['orderid'] = this.orderid; + data['deliverydate'] = this.deliverydate; + data['orderstatus'] = this.orderstatus; + data['starttime'] = this.starttime; + data['arrivaltime'] = this.arrivaltime; + data['pickuptime'] = this.pickuptime; + data['deliverytime'] = this.deliverytime; + data['canceltime'] = this.canceltime; + data['itemcount'] = this.itemcount; + data['orderamount'] = this.orderamount; + data['customerid'] = this.customerid; + data['pickupcustomer'] = this.pickupcustomer; + data['pickupcontactno'] = this.pickupcontactno; + data['Pickupaddress'] = this.pickupaddress; + data['pickuplocation'] = this.pickuplocation; + data['pickuplat'] = this.pickuplat; + data['pickuplon'] = this.pickuplon; + data['deliverycustomerid'] = this.deliverycustomerid; + data['deliverylocationid'] = this.deliverylocationid; + data['deliverycustomer'] = this.deliverycustomer; + data['deliverycontactno'] = this.deliverycontactno; + data['deliveryaddress'] = this.deliveryaddress; + data['deliverylocation'] = this.deliverylocation; + data['droplat'] = this.droplat; + data['droplon'] = this.droplon; + data['deliverylat'] = this.deliverylat; + data['deliverylong'] = this.deliverylong; + data['deliverycharges'] = this.deliverycharges; + data['deliveryamt'] = this.deliveryamt; + data['notes'] = this.notes; + data['ordernotes'] = this.ordernotes; + data['riderslat'] = this.riderslat; + data['riderslon'] = this.riderslon; + data['firstmilekm'] = this.firstmilekm; + data['firstmilecharges'] = this.firstmilecharges; + data['lastmilecharges'] = this.lastmilecharges; + data['ridercharges'] = this.ridercharges; + data['kms'] = this.kms; + data['actualkms'] = this.actualkms; + data['paymenttype'] = this.paymenttype; + data['tenantname'] = this.tenantname; + data['tenantcontactno'] = this.tenantcontactno; + data['tenanttoken'] = this.tenanttoken; + data['tenantsuburb'] = this.tenantsuburb; + data['tenantcity'] = this.tenantcity; + data['locationname'] = this.locationname; + data['locationcontactno'] = this.locationcontactno; + data['locationsuburb'] = this.locationsuburb; + data['ridername'] = this.ridername; + data['userfcmtoken'] = this.userfcmtoken; + data['queueid'] = this.queueid; + data['ridercontact'] = this.ridercontact; + return data; + } +} + diff --git a/lib/Model/Response/Summary/Ordersummaryresponse.dart b/lib/Model/Response/Summary/Ordersummaryresponse.dart new file mode 100644 index 0000000..9fe63b1 --- /dev/null +++ b/lib/Model/Response/Summary/Ordersummaryresponse.dart @@ -0,0 +1,68 @@ +class OrderSummary { + int? code; + OrderSummaryDetails? details; + String? message; + bool? status; + + OrderSummary({this.code, this.details, this.message, this.status}); + + OrderSummary.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new OrderSummaryDetails.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class OrderSummaryDetails { + int? total; + int? created; + int? pending; + int? accepted; + int? picked; + int? delivered; + int? cancelled; + + OrderSummaryDetails( + {this.total, + this.created, + this.pending, + this.accepted, + this.picked, + this.delivered, + this.cancelled}); + + OrderSummaryDetails.fromJson(Map json) { + total = json['total']; + created = json['created']; + pending = json['pending']; + accepted = json['accepted']; + picked = json['picked']; + delivered = json['delivered']; + cancelled = json['cancelled']; + } + + Map toJson() { + final Map data = new Map(); + data['total'] = this.total; + data['created'] = this.created; + data['pending'] = this.pending; + data['accepted'] = this.accepted; + data['picked'] = this.picked; + data['delivered'] = this.delivered; + data['cancelled'] = this.cancelled; + return data; + } +} diff --git a/lib/Model/Response/Tenantlocation/Getlocationbyidresponse.dart b/lib/Model/Response/Tenantlocation/Getlocationbyidresponse.dart new file mode 100644 index 0000000..4c12519 --- /dev/null +++ b/lib/Model/Response/Tenantlocation/Getlocationbyidresponse.dart @@ -0,0 +1,125 @@ +class GetLocationByTenantId { + int? code; + List? details; + String? message; + bool? status; + + GetLocationByTenantId({this.code, this.details, this.message, this.status}); + + GetLocationByTenantId.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(new TenantLocationDetails.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.map((v) => v.toJson()).toList(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class TenantLocationDetails { + int? locationid; + int? tenantid; + int? moduleid; + String? locationname; + String? locationemail; + String? locationcontact; + String? locationlatitude; + String? locationlong; + String? locationaddress; + String? locationsuburb; + String? locationstate; + String? locationcity; + String? locationpostcode; + String? opentime; + String? closetime; + int? partnerid; + int? deliveryradius; + int? deliverymins; + int? cancelsecs; + int? applocationid; + + TenantLocationDetails( + {this.locationid, + this.tenantid, + this.moduleid, + this.locationname, + this.locationemail, + this.locationcontact, + this.locationlatitude, + this.locationlong, + this.locationaddress, + this.locationsuburb, + this.locationstate, + this.locationcity, + this.locationpostcode, + this.opentime, + this.closetime, + this.partnerid, + this.deliveryradius, + this.deliverymins, + this.cancelsecs, + this.applocationid}); + + TenantLocationDetails.fromJson(Map json) { + locationid = json['locationid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + locationname = json['locationname']; + locationemail = json['locationemail']; + locationcontact = json['locationcontact']; + locationlatitude = json['locationlatitude']; + locationlong = json['locationlong']; + locationaddress = json['locationaddress']; + locationsuburb = json['locationsuburb']; + locationstate = json['locationstate']; + locationcity = json['locationcity']; + locationpostcode = json['locationpostcode']; + opentime = json['opentime']; + closetime = json['closetime']; + partnerid = json['partnerid']; + deliveryradius = json['deliveryradius']; + deliverymins = json['deliverymins']; + cancelsecs = json['cancelsecs']; + applocationid = json['applocationid']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['locationname'] = this.locationname; + data['locationemail'] = this.locationemail; + data['locationcontact'] = this.locationcontact; + data['locationlatitude'] = this.locationlatitude; + data['locationlong'] = this.locationlong; + data['locationaddress'] = this.locationaddress; + data['locationsuburb'] = this.locationsuburb; + data['locationstate'] = this.locationstate; + data['locationcity'] = this.locationcity; + data['locationpostcode'] = this.locationpostcode; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['partnerid'] = this.partnerid; + data['deliveryradius'] = this.deliveryradius; + data['deliverymins'] = this.deliverymins; + data['cancelsecs'] = this.cancelsecs; + data['applocationid'] = this.applocationid; + return data; + } +} + diff --git a/lib/Model/Response/Tenantlocation/Locationbyid/Locationidresponse.dart b/lib/Model/Response/Tenantlocation/Locationbyid/Locationidresponse.dart new file mode 100644 index 0000000..28f4359 --- /dev/null +++ b/lib/Model/Response/Tenantlocation/Locationbyid/Locationidresponse.dart @@ -0,0 +1,120 @@ +class GetLocationByLocaionId { + int? code; + GetLocationDetails? details; + String? message; + bool? status; + + GetLocationByLocaionId({this.code, this.details, this.message, this.status}); + + GetLocationByLocaionId.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new GetLocationDetails.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class GetLocationDetails { + int? locationid; + int? tenantid; + int? moduleid; + String? locationname; + String? locationemail; + String? locationcontact; + String? locationlatitude; + String? locationlong; + String? locationaddress; + String? locationsuburb; + String? locationstate; + String? locationcity; + String? locationpostcode; + String? opentime; + String? closetime; + int? partnerid; + int? deliveryradius; + int? deliverymins; + int? cancelsecs; + int? applocationid; + + GetLocationDetails( + {this.locationid, + this.tenantid, + this.moduleid, + this.locationname, + this.locationemail, + this.locationcontact, + this.locationlatitude, + this.locationlong, + this.locationaddress, + this.locationsuburb, + this.locationstate, + this.locationcity, + this.locationpostcode, + this.opentime, + this.closetime, + this.partnerid, + this.deliveryradius, + this.deliverymins, + this.cancelsecs, + this.applocationid}); + + GetLocationDetails.fromJson(Map json) { + locationid = json['locationid']; + tenantid = json['tenantid']; + moduleid = json['moduleid']; + locationname = json['locationname']; + locationemail = json['locationemail']; + locationcontact = json['locationcontact']; + locationlatitude = json['locationlatitude']; + locationlong = json['locationlong']; + locationaddress = json['locationaddress']; + locationsuburb = json['locationsuburb']; + locationstate = json['locationstate']; + locationcity = json['locationcity']; + locationpostcode = json['locationpostcode']; + opentime = json['opentime']; + closetime = json['closetime']; + partnerid = json['partnerid']; + deliveryradius = json['deliveryradius']; + deliverymins = json['deliverymins']; + cancelsecs = json['cancelsecs']; + applocationid = json['applocationid']; + } + + Map toJson() { + final Map data = new Map(); + data['locationid'] = this.locationid; + data['tenantid'] = this.tenantid; + data['moduleid'] = this.moduleid; + data['locationname'] = this.locationname; + data['locationemail'] = this.locationemail; + data['locationcontact'] = this.locationcontact; + data['locationlatitude'] = this.locationlatitude; + data['locationlong'] = this.locationlong; + data['locationaddress'] = this.locationaddress; + data['locationsuburb'] = this.locationsuburb; + data['locationstate'] = this.locationstate; + data['locationcity'] = this.locationcity; + data['locationpostcode'] = this.locationpostcode; + data['opentime'] = this.opentime; + data['closetime'] = this.closetime; + data['partnerid'] = this.partnerid; + data['deliveryradius'] = this.deliveryradius; + data['deliverymins'] = this.deliverymins; + data['cancelsecs'] = this.cancelsecs; + data['applocationid'] = this.applocationid; + return data; + } +} diff --git a/lib/Model/Response/Tenantpricing/Tenantpricingresponse.dart b/lib/Model/Response/Tenantpricing/Tenantpricingresponse.dart new file mode 100644 index 0000000..d80bcd0 --- /dev/null +++ b/lib/Model/Response/Tenantpricing/Tenantpricingresponse.dart @@ -0,0 +1,105 @@ +class GetTenantPricing { + int? code; + GetTenantPricingDetails? details; + String? message; + bool? status; + + GetTenantPricing({this.code, this.details, this.message, this.status}); + + GetTenantPricing.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new GetTenantPricingDetails.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class GetTenantPricingDetails { + int? tenantpricingid; + int? pricingid; + int? tenantid; + int? applocationid; + int? pricingtypeid; + String? pricingtype; + int? locationid; + String? slab; + int? configid; + String? pricingdate; + int? baseprice; + double? priceperkm; + int? minkm; + int? maxkm; + int? orders; + int? othercharges; + + GetTenantPricingDetails( + {this.tenantpricingid, + this.pricingid, + this.tenantid, + this.applocationid, + this.pricingtypeid, + this.pricingtype, + this.locationid, + this.slab, + this.configid, + this.pricingdate, + this.baseprice, + this.priceperkm, + this.minkm, + this.maxkm, + this.orders, + this.othercharges}); + + GetTenantPricingDetails.fromJson(Map json) { + tenantpricingid = json['tenantpricingid']; + pricingid = json['pricingid']; + tenantid = json['tenantid']; + applocationid = json['applocationid']; + pricingtypeid = json['pricingtypeid']; + pricingtype = json['pricingtype']; + locationid = json['locationid']; + slab = json['slab']; + configid = json['configid']; + pricingdate = json['pricingdate']; + baseprice = json['baseprice']; + priceperkm = json['priceperkm'].toDouble(); + minkm = json['minkm']; + maxkm = json['maxkm']; + orders = json['orders']; + othercharges = json['othercharges']; + } + + Map toJson() { + final Map data = new Map(); + data['tenantpricingid'] = this.tenantpricingid; + data['pricingid'] = this.pricingid; + data['tenantid'] = this.tenantid; + data['applocationid'] = this.applocationid; + data['pricingtypeid'] = this.pricingtypeid; + data['pricingtype'] = this.pricingtype; + data['locationid'] = this.locationid; + data['slab'] = this.slab; + data['configid'] = this.configid; + data['pricingdate'] = this.pricingdate; + data['baseprice'] = this.baseprice; + data['priceperkm'] = this.priceperkm; + data['minkm'] = this.minkm; + data['maxkm'] = this.maxkm; + data['orders'] = this.orders; + data['othercharges'] = this.othercharges; + return data; + } +} + diff --git a/lib/Model/Response/Tenants/Tenantinforesponse.dart b/lib/Model/Response/Tenants/Tenantinforesponse.dart new file mode 100644 index 0000000..5a6de64 --- /dev/null +++ b/lib/Model/Response/Tenants/Tenantinforesponse.dart @@ -0,0 +1,197 @@ +class TenantInfo { + int? code; + TenantDetails? details; + String? message; + bool? status; + + TenantInfo({this.code, this.details, this.message, this.status}); + + TenantInfo.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new TenantDetails.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class TenantDetails { + int? tenantid; + String? tenantname; + String? locationname; + String? tenanttype; + String? registrationno; + String? tenanttoken; + String? companyname; + String? primaryemail; + String? primarycontact; + int? categoryid; + int? subcategoryid; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? latitude; + String? longitude; + String? tenantimage; + String? tenantinfo; + int? paymenttype; + int? paymode1; + int? paymode2; + int? promotion; + int? partnerid; + int? minorder; + int? applolcationid; + String? applocation; + int? approved; + int? moduleid; + String? subcategoryname; + String? firstname; + String? lastname; + String? accountname; + String? status; + int? allocationid; + String? allocationtype; + int? allocationmode; + int? locationid; + + TenantDetails( + {this.tenantid, + this.tenantname, + this.locationname, + this.tenanttype, + this.registrationno, + this.tenanttoken, + this.companyname, + this.primaryemail, + this.primarycontact, + this.categoryid, + this.subcategoryid, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.latitude, + this.longitude, + this.tenantimage, + this.tenantinfo, + this.paymenttype, + this.paymode1, + this.paymode2, + this.promotion, + this.partnerid, + this.minorder, + this.applolcationid, + this.applocation, + this.approved, + this.moduleid, + this.subcategoryname, + this.firstname, + this.lastname, + this.accountname, + this.status, + this.allocationid, + this.allocationtype, + this.allocationmode, + this.locationid, + }); + + TenantDetails.fromJson(Map json) { + tenantid = json['tenantid']; + tenantname = json['tenantname']; + locationname = json['locationname']; + tenanttype = json['tenanttype']; + registrationno = json['registrationno']; + tenanttoken = json['tenanttoken']; + companyname = json['companyname']; + primaryemail = json['primaryemail']; + primarycontact = json['primarycontact']; + categoryid = json['categoryid']; + subcategoryid = json['subcategoryid']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + latitude = json['latitude']; + longitude = json['longitude']; + tenantimage = json['tenantimage']; + tenantinfo = json['tenantinfo']; + paymenttype = json['paymenttype']; + paymode1 = json['paymode1']; + paymode2 = json['paymode2']; + promotion = json['promotion']; + partnerid = json['partnerid']; + minorder = json['minorder']; + applolcationid = json['applolcationid']; + applocation = json['applocation']; + approved = json['approved']; + moduleid = json['moduleid']; + subcategoryname = json['subcategoryname']; + firstname = json['firstname']; + lastname = json['lastname']; + accountname = json['Accountname']; + status = json['status']; + allocationid = json['allocationid']; + allocationtype = json['allocationtype']; + allocationmode = json['allocationmode']; + locationid = json['locationid']; + } + + Map toJson() { + final Map data = new Map(); + data['tenantid'] = this.tenantid; + data['tenantname'] = this.tenantname; + data['locationname'] = this.locationname; + data['tenanttype'] = this.tenanttype; + data['registrationno'] = this.registrationno; + data['tenanttoken'] = this.tenanttoken; + data['companyname'] = this.companyname; + data['primaryemail'] = this.primaryemail; + data['primarycontact'] = this.primarycontact; + data['categoryid'] = this.categoryid; + data['subcategoryid'] = this.subcategoryid; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['latitude'] = this.latitude; + data['longitude'] = this.longitude; + data['tenantimage'] = this.tenantimage; + data['tenantinfo'] = this.tenantinfo; + data['paymenttype'] = this.paymenttype; + data['paymode1'] = this.paymode1; + data['paymode2'] = this.paymode2; + data['promotion'] = this.promotion; + data['partnerid'] = this.partnerid; + data['minorder'] = this.minorder; + data['applolcationid'] = this.applolcationid; + data['applocation'] = this.applocation; + data['approved'] = this.approved; + data['moduleid'] = this.moduleid; + data['subcategoryname'] = this.subcategoryname; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['Accountname'] = this.accountname; + data['status'] = this.status; + data['allocationid'] = this.allocationid; + data['allocationtype'] = this.allocationtype; + data['allocationmode'] = this.allocationmode; + data['locationid'] = this.locationid; + return data; + } +} \ No newline at end of file diff --git a/lib/Model/Response/User/Updateuser/Updateuserresponse.dart b/lib/Model/Response/User/Updateuser/Updateuserresponse.dart new file mode 100644 index 0000000..1ec65bf --- /dev/null +++ b/lib/Model/Response/User/Updateuser/Updateuserresponse.dart @@ -0,0 +1,21 @@ +class UserUpdateResponse { + int? code; + String? message; + bool? status; + + UserUpdateResponse({this.code, this.message, this.status}); + + UserUpdateResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/Model/Response/User/Usermodelresponse.dart b/lib/Model/Response/User/Usermodelresponse.dart new file mode 100644 index 0000000..b050600 --- /dev/null +++ b/lib/Model/Response/User/Usermodelresponse.dart @@ -0,0 +1,156 @@ +class UserModelResponse { + int? code; + UserDetails? details; + String? message; + bool? status; + + UserModelResponse({this.code, this.details, this.message, this.status}); + + UserModelResponse.fromJson(Map json) { + code = json['code']; + details = + json['details'] != null ? new UserDetails.fromJson(json['details']) : null; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + if (this.details != null) { + data['details'] = this.details!.toJson(); + } + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} + +class UserDetails { + int? userid; + String? authname; + int? configid; + int? authmode; + int? roleid; + String? firstname; + String? lastname; + String? password; + String? email; + String? contactno; + String? address; + String? suburb; + String? city; + String? state; + String? postcode; + String? userfcmtoken; + int? pin; + int? partnerid; + int? tenantid; + String? fullname; + String? tenantname; + String? tenantaddress; + String? tenantcity; + String? tenantpostcode; + String? tenantlat; + String? tenantlong; + int? locationid; + String? locationname; + int? applocationid; + + UserDetails( + {this.userid, + this.authname, + this.configid, + this.authmode, + this.roleid, + this.firstname, + this.lastname, + this.password, + this.email, + this.contactno, + this.address, + this.suburb, + this.city, + this.state, + this.postcode, + this.userfcmtoken, + this.pin, + this.partnerid, + this.tenantid, + this.fullname, + this.tenantname, + this.tenantaddress, + this.tenantcity, + this.tenantpostcode, + this.tenantlat, + this.tenantlong, + this.locationid, + this.locationname, + this.applocationid}); + + UserDetails.fromJson(Map json) { + userid = json['userid']; + authname = json['authname']; + configid = json['configid']; + authmode = json['authmode']; + roleid = json['roleid']; + firstname = json['firstname']; + lastname = json['lastname']; + password = json['password']; + email = json['email']; + contactno = json['contactno']; + address = json['address']; + suburb = json['suburb']; + city = json['city']; + state = json['state']; + postcode = json['postcode']; + userfcmtoken = json['userfcmtoken']; + pin = json['pin']; + partnerid = json['partnerid']; + tenantid = json['tenantid']; + fullname = json['fullname']; + tenantname = json['tenantname']; + tenantaddress = json['tenantaddress']; + tenantcity = json['tenantcity']; + tenantpostcode = json['tenantpostcode']; + tenantlat = json['tenantlat']; + tenantlong = json['tenantlong']; + locationid = json['locationid']; + locationname = json['locationname']; + applocationid = json['applocationid']; + } + + Map toJson() { + final Map data = new Map(); + data['userid'] = this.userid; + data['authname'] = this.authname; + data['configid'] = this.configid; + data['authmode'] = this.authmode; + data['roleid'] = this.roleid; + data['firstname'] = this.firstname; + data['lastname'] = this.lastname; + data['password'] = this.password; + data['email'] = this.email; + data['contactno'] = this.contactno; + data['address'] = this.address; + data['suburb'] = this.suburb; + data['city'] = this.city; + data['state'] = this.state; + data['postcode'] = this.postcode; + data['userfcmtoken'] = this.userfcmtoken; + data['pin'] = this.pin; + data['partnerid'] = this.partnerid; + data['tenantid'] = this.tenantid; + data['fullname'] = this.fullname; + data['tenantname'] = this.tenantname; + data['tenantaddress'] = this.tenantaddress; + data['tenantcity'] = this.tenantcity; + data['tenantpostcode'] = this.tenantpostcode; + data['tenantlat'] = this.tenantlat; + data['tenantlong'] = this.tenantlong; + data['locationid'] = this.locationid; + data['locationname'] = this.locationname; + data['applocationid'] = this.applocationid; + return data; + } +} diff --git a/lib/Model/Response/create_delivery_response/create_delivery_request.dart b/lib/Model/Response/create_delivery_response/create_delivery_request.dart new file mode 100644 index 0000000..2c89d7e --- /dev/null +++ b/lib/Model/Response/create_delivery_response/create_delivery_request.dart @@ -0,0 +1,21 @@ +class CreateDeliveryResponse { + int? code; + String? message; + bool? status; + + CreateDeliveryResponse({this.code, this.message, this.status}); + + CreateDeliveryResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} \ No newline at end of file diff --git a/lib/Model/Response/products/product_info.dart b/lib/Model/Response/products/product_info.dart new file mode 100644 index 0000000..0f67c13 --- /dev/null +++ b/lib/Model/Response/products/product_info.dart @@ -0,0 +1,232 @@ +import 'dart:convert'; + +class ProductDetailResponse { + int? code; + List? details; + String? message; + Pricedetails? pricedetails; + bool? status; + + ProductDetailResponse({ + this.code, + this.details, + this.message, + this.pricedetails, + this.status, + }); + + factory ProductDetailResponse.fromJson(Map json) { + return ProductDetailResponse( + code: json['code'] is int ? json['code'] : null, + details: json['details'] != null + ? (json['details'] as List) + .map((v) => ProductDetails.fromJson(v as Map)) + .toList() + : null, + message: json['message'] as String?, + pricedetails: json['pricedetails'] != null + ? Pricedetails.fromJson(json['pricedetails'] as Map) + : null, + status: json['status'] is bool ? json['status'] : null, + ); + } + + Map toJson() { + return { + 'code': code, + 'details': details?.map((v) => v.toJson()).toList(), + 'message': message, + 'pricedetails': pricedetails?.toJson(), + 'status': status, + }; + } +} + +class ProductDetails { + int? orderdetailid; + int? orderheaderid; + int? tenantid; + int? locationid; + int? productid; + String? productname; + String? productdescription; + int? supplyqty; + int? balanceqty; + int? orderqty; + double? price; // ← double + int? unitid; + String? unitname; + int? productaddonid; + int? addontypeid; + int? productmapid; + int? productvariantid; + String? productaddondescription; + int? discountid; + String? discountname; + String? discountcode; + String? discountterms; + int? discountpercentage; + double? discountamount; // ← double + double? landingamount; // ← double + int? taxpercentage; + double? taxamount; // ← double + double? othercharges; // ← double + double? totaltaxamount; // ← double + double? productsumprice; // ← double + String? itemstatus; + String? delivered; + int? orderamount; // ← Note: JSON key is "Orderamount" (capital O) + String? productimage; + + ProductDetails({ + this.orderdetailid, + this.orderheaderid, + this.tenantid, + this.locationid, + this.productid, + this.productname, + this.productdescription, + this.supplyqty, + this.balanceqty, + this.orderqty, + this.price, + this.unitid, + this.unitname, + this.productaddonid, + this.addontypeid, + this.productmapid, + this.productvariantid, + this.productaddondescription, + this.discountid, + this.discountname, + this.discountcode, + this.discountterms, + this.discountpercentage, + this.discountamount, + this.landingamount, + this.taxpercentage, + this.taxamount, + this.othercharges, + this.totaltaxamount, + this.productsumprice, + this.itemstatus, + this.delivered, + this.orderamount, + this.productimage, + }); + + factory ProductDetails.fromJson(Map json) { + return ProductDetails( + orderdetailid: json['orderdetailid'] is int ? json['orderdetailid'] : null, + orderheaderid: json['orderheaderid'] is int ? json['orderheaderid'] : null, + tenantid: json['tenantid'] is int ? json['tenantid'] : null, + locationid: json['locationid'] is int ? json['locationid'] : null, + productid: json['productid'] is int ? json['productid'] : null, + productname: json['productname'] as String?, + productdescription: json['productdescription'] as String?, + supplyqty: json['supplyqty'] is int ? json['supplyqty'] : null, + balanceqty: json['balanceqty'] is int ? json['balanceqty'] : null, + orderqty: json['orderqty'] is int ? json['orderqty'] : null, + price: _toDouble(json['price']), + unitid: json['unitid'] is int ? json['unitid'] : null, + unitname: json['unitname'] as String?, + productaddonid: json['productaddonid'] is int ? json['productaddonid'] : null, + addontypeid: json['addontypeid'] is int ? json['addontypeid'] : null, + productmapid: json['productmapid'] is int ? json['productmapid'] : null, + productvariantid: json['productvariantid'] is int ? json['productvariantid'] : null, + productaddondescription: json['productaddondescription'] as String?, + discountid: json['discountid'] is int ? json['discountid'] : null, + discountname: json['discountname'] as String?, + discountcode: json['discountcode'] as String?, + discountterms: json['discountterms'] as String?, + discountpercentage: json['discountpercentage'] is int ? json['discountpercentage'] : null, + discountamount: _toDouble(json['discountamount']), + landingamount: _toDouble(json['landingamount']), + taxpercentage: json['taxpercentage'] is int ? json['taxpercentage'] : null, + taxamount: _toDouble(json['taxamount']), + othercharges: _toDouble(json['othercharges']), + totaltaxamount: _toDouble(json['totaltaxamount']), + productsumprice: _toDouble(json['productsumprice']), + itemstatus: json['itemstatus'] as String?, + delivered: json['delivered'] as String?, + orderamount: json['Orderamount'] is int ? json['Orderamount'] : null, // Capital O! + productimage: json['productimage'] as String?, + ); + } + + Map toJson() { + return { + 'orderdetailid': orderdetailid, + 'orderheaderid': orderheaderid, + 'tenantid': tenantid, + 'locationid': locationid, + 'productid': productid, + 'productname': productname, + 'productdescription': productdescription, + 'supplyqty': supplyqty, + 'balanceqty': balanceqty, + 'orderqty': orderqty, + 'price': price, + 'unitid': unitid, + 'unitname': unitname, + 'productaddonid': productaddonid, + 'addontypeid': addontypeid, + 'productmapid': productmapid, + 'productvariantid': productvariantid, + 'productaddondescription': productaddondescription, + 'discountid': discountid, + 'discountname': discountname, + 'discountcode': discountcode, + 'discountterms': discountterms, + 'discountpercentage': discountpercentage, + 'discountamount': discountamount, + 'landingamount': landingamount, + 'taxpercentage': taxpercentage, + 'taxamount': taxamount, + 'othercharges': othercharges, + 'totaltaxamount': totaltaxamount, + 'productsumprice': productsumprice, + 'itemstatus': itemstatus, + 'delivered': delivered, + 'Orderamount': orderamount, // Capital O in JSON + 'productimage': productimage, + }; + } + + // Helper to safely convert int or double → double? + static double? _toDouble(dynamic value) { + if (value == null) return null; + if (value is double) return value; + if (value is int) return value.toDouble(); + return null; + } +} + +class Pricedetails { + double? orderamount; // ← double + double? totaltaxamount; // ← double + + Pricedetails({this.orderamount, this.totaltaxamount}); + + factory Pricedetails.fromJson(Map json) { + return Pricedetails( + orderamount: _toDouble(json['orderamount']), + totaltaxamount: _toDouble(json['totaltaxamount']), + ); + } + + Map toJson() { + return { + 'orderamount': orderamount, + 'totaltaxamount': totaltaxamount, + }; + } + + // Reuse helper + static double? _toDouble(dynamic value) { + if (value == null) return null; + if (value is double) return value; + if (value is int) return value.toDouble(); + return null; + } +} \ No newline at end of file diff --git a/lib/Model/Response/products/product_response.dart b/lib/Model/Response/products/product_response.dart new file mode 100644 index 0000000..698bfb3 --- /dev/null +++ b/lib/Model/Response/products/product_response.dart @@ -0,0 +1,277 @@ +import 'dart:convert'; + +class GetProducts { + int? code; + List? details; // Changed from 'data' to 'details' + String? message; + bool? status; + + GetProducts({this.code, this.details, this.message, this.status}); + + GetProducts.fromJson(Map json) { + code = json['code']; + if (json['details'] != null) { + details = []; + json['details'].forEach((v) { + details!.add(ProductData.fromJson(v)); + }); + } + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = {}; + data['code'] = code; + if (details != null) { + data['details'] = details!.map((v) => v.toJson()).toList(); + } + data['message'] = message; + data['status'] = status; + return data; + } +} + +class ProductData { + int? productid; + int? applocationid; + int? productlocationid; + int? tenantid; + int? categoryid; + String? categoryname; + int? subcategoryid; + String? subcategoryname; + String? productname; + String? productimage; + String? productdesc; + String? productunit; + String? unitvalue; + double? productcost; + double? taxamount; + double? taxpercent; + int? producttax; + int? productstock; + int? productcombo; + int? variants; + int? quantity; + int? approve; + String? status; + + ProductData({ + this.productid, + this.applocationid, + this.productlocationid, + this.tenantid, + this.categoryid, + this.categoryname, + this.subcategoryid, + this.subcategoryname, + this.productname, + this.productimage, + this.productdesc, + this.productunit, + this.unitvalue, + this.productcost, + this.taxamount, + this.taxpercent, + this.producttax, + this.productstock, + this.productcombo, + this.variants, + this.quantity, + this.approve, + this.status, + }); + + ProductData.fromJson(Map json) { + productid = json['productid']; + applocationid = json['applocationid']; + productlocationid = json['productlocationid']; + tenantid = json['tenantid']; + categoryid = json['categoryid']; + categoryname = json['categoryname'] ?? ''; + subcategoryid = json['subcategoryid']; + subcategoryname = json['Subcategoryname'] ?? ''; + productname = json['productname']; + productimage = json['productimage']; + productdesc = json['productdesc']; + productunit = json['productunit']; + unitvalue = json['unitvalue']; + productcost = json['productcost'] is int + ? (json['productcost'] as int).toDouble() + : json['productcost']; + taxamount = json['taxamount']?.toDouble(); + taxpercent = json['taxpercent']?.toDouble(); + producttax = json['producttax']; + productstock = json['productstock']; + productcombo = json['productcombo']; + variants = json['variants']; + quantity = json['quantity']; + approve = json['approve']; + status = json['status']; + } + + Map toJson() { + final Map data = {}; + data['productid'] = productid; + data['applocationid'] = applocationid; + data['productlocationid'] = productlocationid; + data['tenantid'] = tenantid; + data['categoryid'] = categoryid; + data['categoryname'] = categoryname; + data['subcategoryid'] = subcategoryid; + data['Subcategoryname'] = subcategoryname; + data['productname'] = productname; + data['productimage'] = productimage; + data['productdesc'] = productdesc; + data['productunit'] = productunit; + data['unitvalue'] = unitvalue; + data['productcost'] = productcost; + data['taxamount'] = taxamount; + data['taxpercent'] = taxpercent; + data['producttax'] = producttax; + data['productstock'] = productstock; + data['productcombo'] = productcombo; + data['variants'] = variants; + data['quantity'] = quantity; + data['approve'] = approve; + data['status'] = status; + return data; + } + + // Optional: copyWith for immutable updates + ProductData copyWith({ + int? productid, + int? applocationid, + int? productlocationid, + int? tenantid, + int? categoryid, + String? categoryname, + int? subcategoryid, + String? subcategoryname, + String? productname, + String? productimage, + String? productdesc, + String? productunit, + String? unitvalue, + double? productcost, + double? taxamount, + double? taxpercent, + int? producttax, + int? productstock, + int? productcombo, + int? variants, + int? quantity, + int? approve, + String? status, + }) { + return ProductData( + productid: productid ?? this.productid, + applocationid: applocationid ?? this.applocationid, + productlocationid: productlocationid ?? this.productlocationid, + tenantid: tenantid ?? this.tenantid, + categoryid: categoryid ?? this.categoryid, + categoryname: categoryname ?? this.categoryname, + subcategoryid: subcategoryid ?? this.subcategoryid, + subcategoryname: subcategoryname ?? this.subcategoryname, + productname: productname ?? this.productname, + productimage: productimage ?? this.productimage, + productdesc: productdesc ?? this.productdesc, + productunit: productunit ?? this.productunit, + unitvalue: unitvalue ?? this.unitvalue, + productcost: productcost ?? this.productcost, + taxamount: taxamount ?? this.taxamount, + taxpercent: taxpercent ?? this.taxpercent, + producttax: producttax ?? this.producttax, + productstock: productstock ?? this.productstock, + productcombo: productcombo ?? this.productcombo, + variants: variants ?? this.variants, + quantity: quantity ?? this.quantity, + approve: approve ?? this.approve, + status: status ?? this.status, + ); + } +} + +// Keeping `Products` class for backward compatibility (optional) +class Products extends ProductData { + Products({ + int? productid, + int? applocationid, + int? productlocationid, + int? tenantid, + int? categoryid, + String? categoryname, + int? subcategoryid, + String? subcategoryname, + String? productname, + String? productimage, + String? productdesc, + String? productunit, + String? unitvalue, + double? productcost, + double? taxamount, + double? taxpercent, + int? producttax, + int? productstock, + int? productcombo, + int? variants, + int? quantity, + int? approve, + String? status, + }) : super( + productid: productid, + applocationid: applocationid, + productlocationid: productlocationid, + tenantid: tenantid, + categoryid: categoryid, + categoryname: categoryname, + subcategoryid: subcategoryid, + subcategoryname: subcategoryname, + productname: productname, + productimage: productimage, + productdesc: productdesc, + productunit: productunit, + unitvalue: unitvalue, + productcost: productcost, + taxamount: taxamount, + taxpercent: taxpercent, + producttax: producttax, + productstock: productstock, + productcombo: productcombo, + variants: variants, + quantity: quantity, + approve: approve, + status: status, + ); + + factory Products.fromJson(Map json) { + return Products( + productid: json['productid'], + applocationid: json['applocationid'], + productlocationid: json['productlocationid'], + tenantid: json['tenantid'], + categoryid: json['categoryid'], + categoryname: json['categoryname'] ?? '', + subcategoryid: json['subcategoryid'], + subcategoryname: json['Subcategoryname'] ?? '', + productname: json['productname'], + productimage: json['productimage'], + productdesc: json['productdesc'], + productunit: json['productunit'], + unitvalue: json['unitvalue'], + productcost: json['productcost'] is int + ? (json['productcost'] as int).toDouble() + : json['productcost'], + taxamount: json['taxamount']?.toDouble(), + taxpercent: json['taxpercent']?.toDouble(), + producttax: json['producttax'], + productstock: json['productstock'], + productcombo: json['productcombo'], + variants: json['variants'], + quantity: json['quantity'], + approve: json['approve'], + status: json['status'], + ); + } +} \ No newline at end of file diff --git a/lib/Model/Response/products/product_update_response.dart b/lib/Model/Response/products/product_update_response.dart new file mode 100644 index 0000000..0fa673f --- /dev/null +++ b/lib/Model/Response/products/product_update_response.dart @@ -0,0 +1,21 @@ +class ProductUpdateResponse { + int? code; + String? message; + bool? status; + + ProductUpdateResponse({this.code, this.message, this.status}); + + ProductUpdateResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} \ No newline at end of file diff --git a/lib/Model/Response/update_delivery_response/update_delivery_response.dart b/lib/Model/Response/update_delivery_response/update_delivery_response.dart new file mode 100644 index 0000000..6cea364 --- /dev/null +++ b/lib/Model/Response/update_delivery_response/update_delivery_response.dart @@ -0,0 +1,21 @@ +class UpdateDeliveryResponse { + int? code; + String? message; + bool? status; + + UpdateDeliveryResponse({this.code, this.message, this.status}); + + UpdateDeliveryResponse.fromJson(Map json) { + code = json['code']; + message = json['message']; + status = json['status']; + } + + Map toJson() { + final Map data = new Map(); + data['code'] = this.code; + data['message'] = this.message; + data['status'] = this.status; + return data; + } +} diff --git a/lib/View/Authentication/Logiview.dart b/lib/View/Authentication/Logiview.dart new file mode 100644 index 0000000..6435d53 --- /dev/null +++ b/lib/View/Authentication/Logiview.dart @@ -0,0 +1,281 @@ +import 'package:country_currency_pickers/utils/utils.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../Controller/Authentication/Authcontroller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Globalwidgets/web_view.dart'; +import '../../Helper/Constants/Assetconstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/custombutton.dart'; +import '../More/Faqview/privacy.dart'; + +class LoginView extends StatelessWidget { + LoginView({super.key}); + + final AuthController authController = Get.put(AuthController()); + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: () { + SystemNavigator.pop(); + return Future.value(true); + }, + child: GetBuilder( + initState: (_) { + authController.getHintPhoneNumber(context); + }, + builder: (controller) { + return SafeArea( + top: false, + child: Scaffold( + backgroundColor: Colors.white, + body: Padding( + padding: const EdgeInsets.only(left: 15, right: 15), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Image.asset( + AssetConstants.nearledailyImage, + height: 300, + width: 300, + ), + ), + Center( + child: TextWidget( + text: "Enter Your Phone Number", + color: ColorConstants.primaryColor, + fontWeight: FontWeight.w700, + fontSize: 16, + ), + ), + const SizedBox(height: 10), + Center( + child: TextWidget( + text: "We will send you the 6 digit verification code", + fontSize: 14, + ), + ), + const SizedBox(height: 25), + TextWidget( + text: "Let's Get Started", + color: ColorConstants.primaryColor, + fontWeight: FontWeight.w700, + fontSize: 18, + ), + const SizedBox(height: 10), + contactNo(context), + const SizedBox(height: 20), + // const SizedBox(height: 0), + // SizedBox( + // height: 100, + // child: submit(context), + // ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + InkWell( + onTap: () { + terms(); + }, + child: Container( + height: 20, + width: 20, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(3), + color: controller.termsChecking + ? Colors.green + : Colors.white, + border: Border.all( + color: controller.termsChecking + ? Colors.green + : Colors.grey[400]!, + ), + ), + child: controller.termsChecking + ? const Icon( + Icons.check, + color: Colors.white, + size: 19, + ) + : const SizedBox(), + ), + ), + const SizedBox(width: 8), + Text( + "I agree to the Terms and &", + style: TextStyle( + color: ColorConstants.darkGreyColor, + fontSize: 14, + ), + ), + const SizedBox(width: 3), + InkWell( + onTap: () { + Get.to(() => const WebViewApp( + url: 'https://nearle.in/privacy', + appBarText: 'Privacy Policy', + )); + }, + child: Text( + "Privacy Policy", + style: TextStyle( + color: ColorConstants.darkGreyColor, + fontSize: 14, + decoration: TextDecoration.underline, + ), + ), + ), + ], + ), + const SizedBox(height: 80), // Space so button doesn't overlap + ], + ), + ), + ), + bottomNavigationBar: Padding( + padding: const EdgeInsets.all(15.0), + child: SizedBox( + height: 100, + child: submit(context), + ), + ), + ), + ); + }, + ), + ); + } + + + Widget contactNo(context) { + return TextFormField( + buildCounter: (BuildContext context, + {int? currentLength, int? maxLength, bool? isFocused}) => + null, + maxLength: 10, + keyboardType: + const TextInputType.numberWithOptions(signed: true, decimal: true), + controller: authController.loginPhoneNumberController, + onChanged: (value){ + if(value.length==10){ + FocusScope.of(context).unfocus(); + + } + }, + onTap: () async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('Code_Currency', + authController.selectedDialogCountry.currencyCode!); + prefs.setString('Currency_Code', + authController.selectedDialogCountry.currencyCode!); + prefs.setString('Country_Code', + authController.selectedDialogCountry.isoCode!); + prefs.setString('dialCode', + '+${authController.selectedDialogCountry.phoneCode!}'); + prefs.setString('location_Country', + authController.selectedDialogCountry.isoCode!); + authController.currency(); + }, + decoration: InputDecoration( + labelText: 'Mobile Number', + labelStyle: const TextStyle(color: Colors.grey), + prefixIcon: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + width: Get.width * 0.3, + height: Get.height * 0.04, + child: Row( + children: [ + const SizedBox( + width: 25, + ), + InkWell( + child: CountryPickerUtils.getDefaultFlagImage( + authController.selectedDialogCountry), + // onTap: _openCountryPickerDialog, + ), + const SizedBox( + width: 8, + ), + Text( + "+${authController.selectedDialogCountry.phoneCode}"), + ], + ), + ), + ], + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: const BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: const BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: const BorderSide( + color: ColorConstants.primaryColor, + width: 1.0, + ), + ), + ), + ); + } + + bool terms() { + authController.update(); + authController.termsChecking = !authController.termsChecking; + return authController.termsChecking; + } + + Widget submit(context) { + return GetBuilder( + builder: (controller) { + return RoundedLoadingButton( + color: ColorConstants.primaryColor, + width: Get.width, + controller: controller.loginController, + onPressed: () { + controller.loginTenant(context); + }, + child: TextWidget( + text: 'Next', + fontSize: 18, + color: ColorConstants.secondaryColor, + fontWeight: FontWeight.w700, + ) + ); + // RoundedButton( + // height: Get.height*0.06, + // width: Get.width, + // onPressed: () { + // controller.loginTenant(context); + // }, + // color: ColorConstants.primaryColor, + // title: 'Next', + // controller: controller.btnController, + // textStyle: const TextStyle( + // fontSize: 18, + // fontFamily: "Lato", + // color: Colors.white, + // fontWeight: FontWeight.bold), + // ); + }); + } +} diff --git a/lib/View/Authentication/Otpverification.dart b/lib/View/Authentication/Otpverification.dart new file mode 100644 index 0000000..e5ebe94 --- /dev/null +++ b/lib/View/Authentication/Otpverification.dart @@ -0,0 +1,334 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:otp_timer_button/otp_timer_button.dart'; +import 'package:pinput/pinput.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:sms_autofill/sms_autofill.dart'; +import '../../Controller/Authentication/Authcontroller.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/toast.dart'; +import '../Home/Homeview.dart'; +import 'Usercreate/Usercreateview.dart'; + +class OTPVerification extends StatelessWidget { + final String otp; + final int authmode; + final bool? logInStatus; + // final int? activeStatus; + + OTPVerification({super.key, this.otp="",this.authmode=0, this.logInStatus}); + + final AuthController authController = AuthController(); + + final defaultPinTheme = PinTheme( + width: 60, + height: 56, + textStyle: const TextStyle(fontSize: 20, color: Colors.black, fontWeight: FontWeight.w600), + decoration: BoxDecoration( + border: Border.all(color: ColorConstants.primaryColor), + borderRadius: BorderRadius.circular(10), + ), + ); + + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_) { + // authController.loginController.reset(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: ColorConstants.secondaryColor, + body: Column( + children: [ + SizedBox(height: 20,), + Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.elliptical(40, 40), + topRight: Radius.elliptical(40, 40)), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, vertical: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox( + height: 20, + ), + Row( + children: [ + InkWell( + onTap: () { + Get.back(); + + }, + child: Icon(Icons.arrow_back, color: Colors.grey[700], + ), + ), + SizedBox(width: 10,), + Text("Verification", + style: TextStyle( + fontSize: 30, + fontFamily: "Lato", + fontWeight: FontWeight.bold, + color: Colors.grey[700])), + ], + ), + const SizedBox( + height: 10, + ), + Text("Please enter your 6 digit One-Time-Password", + style: TextStyle( + fontWeight: FontWeight.normal, + fontFamily: "Lato", + color: Colors.grey[600])), + const SizedBox( + height: 40, + ), + Center( + child: Padding( + padding: const EdgeInsets.only(left: 20, right: 20), + child: SizedBox( + width: 400, + child: PinFieldAutoFill( + controller: TextEditingController(text: controller.otpController.text), // Correct usage + textInputAction: TextInputAction.done, + onCodeChanged: (code) async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + if (controller.resendOtp == code) { + if (authmode == 1) { + code = controller.resendOtp ?? ''; + } + if (logInStatus == true) { + logger.i('Login status : $logInStatus'); + prefs.setString('tenantContactNo', controller.contactNo ?? ''); + prefs.setString('userFcmToken', controller.userFcmToken ?? ''); + Get.to(() => HomeView(selectedIndex: 0)); + } else { + if (code == controller.resendOtp) { + Get.to(() => CreateUserView( + phNumber: controller.loginPhoneNumberController.text,), + ); + } + else{ + controller.otpController.clear(); + Toast.showToast('Please Enter Valid Otp'); + } + } + } + }, + keyboardType:TextInputType.number , + autoFocus: true, + onCodeSubmitted: (code){ + if(code != controller.resendOtp){ + controller.otpController.clear(); + logger.i('otpCompleted ${controller.resendOtp}'); + Toast.showToast('Please Enter Valid Otp'); + } + }, + decoration: BoxLooseDecoration( + textStyle: const TextStyle(fontSize: 20, color: Colors.black), + radius: const Radius. circular(8.0), + strokeColorBuilder: FixedColorBuilder(Colors.black.withOpacity(0.3)), + ), + ), + ), + ), + // Padding( + // padding: const EdgeInsets.only(left: 20, right: 20), + // child: Pinput( + // defaultPinTheme: defaultPinTheme, + // pinContentAlignment: Alignment.center, + // + // length: 6, + // autofocus: true, + // keyboardType: TextInputType.number, + // androidSmsAutofillMethod: AndroidSmsAutofillMethod.smsUserConsentApi, + // pinAnimationType: PinAnimationType.fade, + // controller: controller.otpController, + // pinputAutovalidateMode: PinputAutovalidateMode.onSubmit, + // animationDuration: const Duration(milliseconds: 300), + // // Pass it here + // onChanged: (text) async{ + // SharedPreferences prefs = await SharedPreferences.getInstance(); + // // controller.smsOtp = text; + // // Check if the entered text is a valid phone number + // if (controller.resendOtp == text) { + // if(authmode == 1){ + // text = controller.resendOtp??''; + // } + // if(logInStatus == true){ + // prefs.setString('tenantContactNo',controller.contactNo ?? ''); + // prefs.setString('tenantFcmToken', controller.userFcmToken ?? ''); + // logger.i('Inside the login true status'); + // Get.to(()=>HomeView(selectedIndex: 0)); + // }else{ + // logger.i('Inside the login false status'); + // Get.to(() => CreateUserView(phNumber: controller.loginPhoneNumberController.text,)); + // // showModalBottomSheet( + // // context: Get.context!, + // // isDismissible: true, + // // backgroundColor: ColorConstants.secondaryColor, + // // shape: const RoundedRectangleBorder( + // // borderRadius: BorderRadius.only( + // // topLeft: Radius.circular(20.0), topRight: Radius.circular(20)), + // // ), + // // builder: (context) { + // // return Column( + // // mainAxisAlignment: MainAxisAlignment.start, + // // crossAxisAlignment: CrossAxisAlignment.center, + // // children: [ + // // SizedBox( + // // height: Get.height * 0.3, + // // // width: Get.width * 0.10, + // // child: Padding( + // // padding: const EdgeInsets.only(bottom: 0), + // // child: Center(child: Lottie.asset('assets/images/nodatafound.json',)), + // // ), + // // ), + // // const SizedBox(height: 15,), + // // SizedBox( + // // width: Get.width*0.85, + // // child: Center( + // // child: Text( + // // "Oops, we couldn't find your account. Instead, would you like to create a new one?", + // // style: TextStyle( + // // fontSize: 18, + // // fontFamily: "Inter", + // // fontWeight: FontWeight.normal, + // // color: ColorConstants.blackColor), + // // maxLines: 3, + // // textAlign: TextAlign.center, + // // + // // ), + // // ), + // // ), + // // const Spacer(), + // // Row( + // // mainAxisAlignment: MainAxisAlignment.center, + // // crossAxisAlignment: CrossAxisAlignment.center, + // // children: [ + // // InkWell( + // // onTap: (){ + // // Get.to(CreateUserView(phNumber: controller.loginPhoneNumberController.text,)); + // // }, + // // child: Container( + // // height: Get.height*0.06, + // // width: Get.width*0.4, + // // decoration: BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.circular(10),), + // // child: Center(child: Text('Create Account',style: TextStyle(color: ColorConstants.secondaryColor,fontSize: 16,))), + // // ), + // // ), + // // const SizedBox(width: 10,), + // // InkWell( + // // onTap: (){ + // // Get.back(); + // // }, + // // child: Container( + // // height: Get.height*0.06, + // // width: Get.width*0.4, + // // decoration: BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.circular(10),), + // // child: Center(child: Text('Cancel',style: TextStyle(color: ColorConstants.secondaryColor,fontSize: 16,))), + // // ), + // // ), + // // ], + // // ), + // // const SizedBox(height: 20,) + // // + // // + // // ], + // // ); + // // } + // // ); + // } + // } + // }, + // onCompleted:(text){ + // if( text != controller.resendOtp){ + // controller.otpController.clear(); + // print('textonCompleted $text'); + // print('otpCompleted ${controller.resendOtp}'); + // Toast.showToast('Please Enter Valid Otp'); + // } + // + // }, + // + // + // ), + // ), + ), + const SizedBox( + height: 20, + ), + controller.authmode == 1 ?Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container() + ], + ):Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Didn't receive the code? ", + style: TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Lato", + color: Colors.grey[600])), + OtpTimerButton( + controller: controller.otpTimerController, + onPressed: () { + controller.otpTimerController.startTimer(); + controller.textEditingController.clear(); + controller.codeSent = true; + controller.sendSmsOtp(controller.loginPhoneNumberController.text.trim()); + controller.update(); + }, + text: Text('Resend Again',style: TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Lato", + color: ColorConstants.primaryColor + ),), + duration: 60, + buttonType: ButtonType.text_button, + textColor: ColorConstants.primaryColor, + // backgroundColor: ColorConstants.primaryColor, + ) + + ], + ), + const SizedBox( + height: 40, + ), + + //submit(), + ], + ), + ), + ), + // const Spacer(), + // Container( + // height: Get.height * 0.1, + // width: Get.width, + // decoration: const BoxDecoration( + // image: DecorationImage( + // image: AssetImage( + // AssetConstants.nearleAppbarBottom, + // ), + // fit: BoxFit.fill), + // // color: ColorConstants.primaryColor, + // borderRadius: BorderRadius.only( + // bottomLeft: Radius.elliptical(2, 2), + // bottomRight: Radius.elliptical(2, 2))), + // ), + ], + ), + ); + } + ); + } +} diff --git a/lib/View/Authentication/Usercreate/Usercreateview.dart b/lib/View/Authentication/Usercreate/Usercreateview.dart new file mode 100644 index 0000000..339437b --- /dev/null +++ b/lib/View/Authentication/Usercreate/Usercreateview.dart @@ -0,0 +1,446 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../Controller/Authentication/Createtenantusercontroller.dart'; +import '../../../Globalwidgets/textwidget.dart'; +import '../../../Helper/Constants/AssetConstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Helper/custombutton.dart'; +import '../../../Helper/customederaction.dart'; +import 'package:flutter/services.dart'; + +import '../Logiview.dart'; + +class CreateUserView extends StatelessWidget { + final String? phNumber; + CreateUserView({super.key, this.phNumber}); + + final CreateUserController controller = Get.put(CreateUserController()); + final ScrollController listScrollController = ScrollController(); + final GlobalKey scaffoldKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return SafeArea( + top: false, + child: Scaffold( + key: scaffoldKey, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: InkWell( + onTap: () { + Get.to(() => LoginView()); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.blackColor, + ), + ), + title: TextWidget( + text: 'Create Account', + fontSize: 20, + fontWeight: FontWeight.w700, + ), + ), + backgroundColor: Colors.white, + body: GetBuilder( + initState: (_) { + controller.contactNoController.text = phNumber ?? ''; + logger.i('Phone Number: ${controller.contactNoController.text}'); + controller.getAppLocations(); + controller.getCurrentLocation(); + controller.getAppCategory(); + + logger.i('Cat Name Is empty : ${controller.catName}'); + }, + builder: (controller) => Column( + children: [ + // _buildHeader(), + // const SizedBox(height: 10,), + Expanded( + child: ListView( + controller: listScrollController, + padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16), + children: [ + SizedBox(height: 10,), + Center( + child: Stack( + children: [ + InkWell( + onTap: () { + controller.getProfileImage(); + }, + child: Container( + width: 100, + // Set the size to match the CircleAvatar's diameter + height: 100, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: ColorConstants.primaryColor, // Border color + width: 2.0, // Border width + ), + ), + child: CircleAvatar( + radius: 30, + backgroundColor: ColorConstants.secondaryColor, + child: ClipOval( + child: controller.profileImage == null + ? Image.asset( + AssetConstants.noProfile, + width: 70, + height: 70, + color: ColorConstants.primaryColor, + ) + : Image.file( + width: 100, + height: 100, + File(controller.profileImage?.path ?? ''), + fit: BoxFit.cover, + ), + ), + ), + ), + ), + const Positioned( + bottom: 0, + right: 0, + child: CircleAvatar( + radius: 15, + backgroundColor: ColorConstants.primaryColor, + child: Icon( + Icons.camera_alt_outlined, + color: Colors.white, + ), + ), + ), + ], + ), + ), + const SizedBox( + height: 8, + ), + Center( + child: TextWidget( + text: 'Upload Company Logo', + )), + const SizedBox(height: 30,), + _buildTextField( + controller: controller.firstnameController, + label: 'Contact Name', + icon: Icons.person, + formatters: [UpperCaseTextFormatter()], + ), + const SizedBox(height: 20), + _buildTextField( + controller: controller.companyNameController, + label: 'Company Name', + icon: Icons.business, + formatters: [UpperCaseTextFormatter()], + ), + const SizedBox(height: 20), + _buildTextField( + controller: controller.emailController, + label: 'Email', + icon: Icons.email_outlined, + validator: _validateEmail, + ), + const SizedBox(height: 20), + _buildSelectionField( + context: context, + label: controller.selectedCategoryName.isEmpty ? 'Select Category' : controller.selectedCategoryName, + icon: Icons.category, + onTap: () async { + var result = await SubCategoryService().fetchSubCategories(); + if (result != null && result.details != null) { + final categories = result.details! + .map((e) => e.catgeoryname ?? '') + .toSet() + .toList(); + + if (context.mounted) { + showModalBottomSheet( + context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(16)), + ), + builder: (context) { + return ListView.builder( + itemCount: categories.length, + itemBuilder: (context, index) { + final categoryName = categories[index]; + return ListTile( + title: Text(categoryName), + trailing: controller.selectedCategoryName == categoryName + ? Icon(Icons.check, color: ColorConstants.primaryColor) + : null, + onTap: () { + // Update controller + controller.selectedCategoryName = categoryName; + controller.update(); // Trigger UI rebuild + Navigator.pop(context); + }, + ); + }, + ); + }, + ); + } + } + }, + ), + + + const SizedBox(height: 20), + _buildTextField( + controller: controller.gstinNumberController, + label: 'GSTIN', + icon: Icons.verified_user, + ), + + const SizedBox(height: 20), + + _buildAddressSection(context, controller), + const SizedBox(height: 20), + if (controller.isEnterAddress) ...[ + _buildTextField(controller: controller.suburbController, label: 'Suburb', icon: Icons.location_on), + const SizedBox(height: 15), + _buildTextField(controller: controller.cityController, label: 'City', icon: Icons.location_on), + const SizedBox(height: 15), + _buildTextField(controller: controller.stateController, label: 'State', icon: Icons.location_on), + const SizedBox(height: 15), + ], + _buildTextField(controller: controller.postcodeController, label: 'Pincode', icon: Icons.location_on), + ], + ), + ), + ], + ), + ), + bottomNavigationBar: _buildBottomBar(controller), + ), + ); + } + + Widget _buildTextField({ + required TextEditingController controller, + required String label, + required IconData icon, + List? formatters, + String? Function(String?)? validator, + }) { + return Container( + height: Get.height * 0.07, + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: TextFormField( + controller: controller, + textCapitalization: TextCapitalization.sentences, + inputFormatters: formatters, + validator: validator, + onFieldSubmitted: (_) { + FocusManager.instance.primaryFocus?.unfocus(); // Removes focus and hides keyboard + }, + style: const TextStyle(fontFamily: 'Inter'), + decoration: CustomDecoration.textFieldStyle(labelTextStr: label, prefixIcon: Icon(icon, color: ColorConstants.darkGreyColor)), + onEditingComplete: () => FocusScope.of(Get.context!).requestFocus(FocusNode()), + ), + ); + } + + Widget _buildSelectionField({ + required BuildContext context, + required String label, + required IconData icon, + required VoidCallback onTap, + }) { + return InkWell( + onTap: onTap, + child: Container( + height: 60, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(5), + border: Border.all(color: Colors.grey[200]!, width: 2), + ), + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Row( + children: [ + Icon(icon, color: ColorConstants.darkGreyColor), + const SizedBox(width: 10), + Expanded(child: Text(label, style: TextStyle(fontSize: 17, color: Colors.grey[500]))), + Icon(Icons.arrow_drop_down, color: Colors.grey[600], size: 20), + ], + ), + ), + ), + ); + } + + + + Widget _buildAddressSection(BuildContext context, CreateUserController controller) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.location_on, color: ColorConstants.darkGreyColor, size: 23), + const SizedBox(width: 5), + const Text('Address', style: TextStyle(color: Colors.black54, fontSize: 16)), + const Spacer(), + InkWell( + onTap: () { + // Toggle the isEnterAddress state if needed for other UI logic + controller.isEnterAddress = !controller.isEnterAddress; + controller.update(); + }, + child: Icon( + controller.isEnterAddress ? Icons.check : Icons.keyboard_arrow_down_sharp, + color: Colors.grey[600], + size: 23, + ), + ), + ], + ), + const SizedBox(height: 5), + TextFormField( + controller: controller.addressController, + maxLines: 3, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle(color: ColorConstants.textFieldColor), + decoration: CustomDecoration.textFieldStyle(), + readOnly: true, // Make it read-only to prevent direct editing + onTap: () async { + // Navigate to the address search screen and wait for the result + final selectedAddress = await Get.to(() => AddressSearchScreen(controller: controller)); + if (selectedAddress != null) { + controller.addressController.text = selectedAddress['description']; + controller.getPlaceDetails(selectedAddress['place_id'], selectedAddress['description']); + controller.update(); + } + }, + ), + ], + ); + } + + + + + + Widget _buildBottomBar(CreateUserController controller) { + return Container( + height: Get.height * 0.1, + child: RoundedButton( + height: Get.height * 0.06, + width: Get.width * 0.9, + onPressed: controller.doSomething, + color: ColorConstants.primaryColor, + title: 'Create', + controller: controller.btnController, + textStyle: const TextStyle(fontSize: 18, fontFamily: 'Inter', color: Colors.white, fontWeight: FontWeight.bold), + ), + ); + } + + String? _validateEmail(String? value) { + const simplePattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'; + final regex = RegExp(simplePattern); + return value!.isNotEmpty && !regex.hasMatch(value) ? 'Enter a valid email address' : null; + } +} + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue(text: capitalize(newValue.text), selection: newValue.selection); + } +} + +String capitalize(String value) { + if (value.trim().isEmpty) return ''; + return '${value[0].toUpperCase()}${value.substring(1)}'; +} + + +class AddressSearchScreen extends StatelessWidget { + final CreateUserController controller; + + const AddressSearchScreen({Key? key, required this.controller}) : super(key: key); + + @override + Widget build(BuildContext context) { + // Initialize a new TextEditingController with the initial address + final searchController = TextEditingController(text: controller.addressController.text); + + return Scaffold( + appBar: AppBar( + title: TextWidget( + text: 'Search Address', + fontWeight: FontWeight.bold, + fontSize: 20, + ), + leading: IconButton( + icon: Icon(Icons.arrow_back, color: ColorConstants.blackColor), + onPressed: () => Get.back(), // Return without selecting an address + ), + ), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + TextFormField( + controller: searchController, + autofocus: true, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle(color: ColorConstants.textFieldColor), + decoration: CustomDecoration.textFieldStyle().copyWith( + hintText: 'Enter address', + suffixIcon: IconButton( + icon: Icon(Icons.cancel, color: ColorConstants.blackColor), + onPressed: () { + searchController.clear(); // Clear the search field + controller.predictions.clear(); // Clear predictions + controller.update(); // Notify UI to update + }, + ), + ), + onChanged: (text) { + if (text.isEmpty) { + controller.predictions.clear(); + controller.update(); + } + controller.onSearchTextChanged(text); + }, + ), + const SizedBox(height: 8), + Expanded( + child: Obx( + () => controller.predictions.isEmpty + ? const Center(child: Text('No results found')) + : ListView.builder( + itemCount: controller.predictions.length, + itemBuilder: (context, index) { + final prediction = controller.predictions[index]['description']; + return ListTile( + title: Text(prediction), + onTap: () { + final selectedAddress = controller.predictions[index]; + controller.addressController.text = selectedAddress['description']; + controller.getPlaceDetails(selectedAddress['place_id'], selectedAddress['description']); + Get.back(result: selectedAddress); + }, + ); + }, + ), + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/View/Createorder/Createorderview.dart b/lib/View/Createorder/Createorderview.dart new file mode 100644 index 0000000..0723a64 --- /dev/null +++ b/lib/View/Createorder/Createorderview.dart @@ -0,0 +1,2732 @@ +import 'package:awesome_dialog/awesome_dialog.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_expanded_tile/flutter_expanded_tile.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; + +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../Controller/Createorder/Createordercontroller.dart'; +import '../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../Helper/Constants/Apiconstants.dart'; +import '../../Helper/Constants/Assetconstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/custombutton.dart'; +import '../../Helper/toast.dart'; +import '../../Helper/utility.dart'; +import '../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; +import '../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; +import '../Googlemap/Googlemapview.dart'; +import '../Home/Homeview.dart'; +import 'Droplocation/Tabs/Dropcustomertabmainpage.dart'; +import 'Pickuplocation/Googlemap/Googlemapview.dart'; +import 'Pickuplocation/Tabs/Pickupcustomertabmainpage.dart'; + + +class CreateOrderView extends StatelessWidget { + final GetCustomerByTenantIdDetails? pickUpData; + final GetDropCustomerByTenantIdDetails? dropData; + final bool isDashboard; + bool pickupSavedAddress; + bool dropSavedAddress; + + + CreateOrderView({super.key, required this.isDashboard, this.pickUpData,this.dropData,this.pickupSavedAddress = false,this.dropSavedAddress= false}); + + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + TenantPickupCustomerController tenantPickupCustomerController = Get.put(TenantPickupCustomerController()); + TenantDropCustomerController tenantDropCustomerController = Get.put(TenantDropCustomerController()); + + ScrollController listScrollController = ScrollController(); + + final ScrollController scrollController = ScrollController(); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_)async{ + createOrderController.appConfigurationService.getAppConfig("${ApiConstants.configUrl}?configid=1"); + createOrderController.loader = true; + createOrderController.startTimer(); + // createOrderController.getDetails(); + createOrderController.getTenantLocation(); + createOrderController.getLocation(); + if(isDashboard == true) { + createOrderController.getCurrentLocation(); + } + if(createOrderController.fromLatitude!= null&&createOrderController.fromLongitude!= null&&createOrderController.toLatitude!= null&&createOrderController.toLongitude != null){ + SharedPreferences prefs = await SharedPreferences.getInstance(); + var distanceInMeters = createOrderController.calculateDistance( + double.parse(createOrderController.toLatitude.toString()), + double.parse(createOrderController.toLongitude.toString()), + double.parse(createOrderController.fromLatitude.toString()), + double.parse(createOrderController.fromLongitude.toString()), + ); + + createOrderController.distanceKm = distanceInMeters.round(); + + print('distanceKmIninit ${createOrderController.distanceKm}'); + + + createOrderController.appRadius = prefs.getInt('appRadius')??0; + logger.i(createOrderController.appRadius); + if(createOrderController.appRadius != 0 &&createOrderController.distanceKm != null) { + try { + int appRadiusInt = int.parse(createOrderController.appRadius.toString()); + int distanceKmInt = int.parse(createOrderController.distanceKm.toString()); + + if(appRadiusInt <= distanceKmInt) { + AwesomeDialog( + context: Get.context!, + dialogType: DialogType.warning, + //animType: AnimType.BOTTOMSLIDE, + descTextStyle: const TextStyle(fontSize: 16,), + desc: 'Service not available at this location.', + dismissOnTouchOutside: false, + btnOkText: 'Ok', + // btnCancelOnPress: () { + // Get.to(OrderDetails(data: data)); + // }, + btnOkOnPress: () async{ + Get.to(()=>CreateOrderView(isDashboard: false,)); + }, + ).show(); + } + } catch (e) { + print("Error parsing integers: $e"); + } + } else { + print('appRadiusinit ${createOrderController.appRadius}'); + print('distanceKminit ${createOrderController.distanceKm}'); + print("One or both of the values are null."); + } + } + createOrderController.getTenantInfo(); + createOrderController.getTenantPricing(); + // createOrderController.getTenantSubCategories(); + createOrderController.getAdminToken(); + createOrderController.pickupExpandedTileController = ExpandedTileController(isExpanded:createOrderController.pickupPredictions.isNotEmpty?false:true); + createOrderController.dropExpandedTileController = ExpandedTileController(isExpanded:false); + + // createOrderController.listenLocationExpansion(); + + + // deliveryDetailsController.customerEmail =data.email??''; + + }, + builder: (controller) { + return WillPopScope( + onWillPop: () async{ + Get.to(()=> HomeView(selectedIndex: 0)); + return false; + }, + child: Scaffold( + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: Padding( + padding: const EdgeInsets.all(5.0), + child: InkWell( + onTap: (){ + Get.to(HomeView(selectedIndex: 0)); + }, + child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), + ), + + title: Text('Delivery',style: TextStyle(fontSize: 18,color: ColorConstants.secondaryColor,), + ), + actions: [ + // Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Text( + // '${DateFormat("dd-MM-yyyy").format(DateTime.now())}', + // style: TextStyle(fontSize: 17,color: ColorConstants.secondaryColor,fontWeight: FontWeight.normal),), + // SizedBox(width: 5,), + // Text( + // '${controller.currentTime.value.hour.toString().padLeft(2, '0')}:${controller.currentTime.value.minute.toString().padLeft(2, '0')}:${controller.currentTime.value.second.toString().padLeft(2, '0')} ${controller.amPm.value}', + // + // // '${DateFormat("hh.mm a").format(DateTime.now())}', + // style: TextStyle(fontSize: 17,color: ColorConstants.secondaryColor,fontWeight: FontWeight.normal),), + // ], + // ), + // Padding( + // padding: const EdgeInsets.only(top: 5), + // child: SizedBox( + // width: Get.width*0.4, + // child: DropdownButtonHideUnderline( + // child: DropdownButtonFormField2( + // isExpanded: true, + // + // style: TextStyle(color: ColorConstants.secondaryColor!), + // decoration: InputDecoration( + // // Add Horizontal padding using menuItemStyleData.padding so it matches + // // the menu padding when button's width is not specified. + // contentPadding: const EdgeInsets.only(bottom: 15), + // + // // fillColor:ColorConstants.secondaryColor , + // // filled: true, + // border: InputBorder.none + // // Add more decoration.. + // ), + // hint: Text( + // 'Select location', + // style: TextStyle(fontSize: 14,color: ColorConstants.secondaryColor), + // ), + // + // items: controller.tenantLocations + // .map((item) => DropdownMenuItem( + // value: item, + // child: Row( + // + // children: [ + // // Icon(Icons.business,color: ColorConstants.darkGreyColor), + // // SizedBox(width: 5,), + // Expanded( + // child: Text( + // "${item.locationname}", + // maxLines: 2, + // style: TextStyle( + // fontSize: 14, + // color: ColorConstants.darkGreyColor! + // ), + // ), + // ), + // ], + // ), + // )) + // .toList(), + // validator: (value) { + // if (value == null) { + // return 'Please select location.'; + // } + // return null; + // }, + // onChanged: (value) { + // //Do something when selected item is changed. + // }, + // onSaved: (location) async{ + // controller.selectedValue = location; + // SharedPreferences prefs = await SharedPreferences.getInstance(); + // controller.appLocationId = location?.applocationid??0; + // controller.locationId = location?.locationid??0; + // controller.tenantLocationName = location?.locationname??""; + // prefs.setInt('partnerAppLocationId', location?.applocationid??0); + // controller.update(); + // }, + // buttonStyleData: const ButtonStyleData( + // padding: EdgeInsets.only(right: 8), + // ), + // iconStyleData: IconStyleData( + // icon: Icon( + // Icons.arrow_drop_down, + // color: ColorConstants.secondaryColor, + // ), + // iconSize: 24, + // ), + // dropdownStyleData: DropdownStyleData( + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(15), + // ), + // ), + // menuItemStyleData: const MenuItemStyleData( + // padding: EdgeInsets.symmetric(horizontal: 16), + // ), + // ), + // ), + // ), + // ), + + Row( + mainAxisAlignment: MainAxisAlignment.start, + + children: [ + controller.tenantLocationName.isEmpty?Text('Select Location',style: TextStyle(fontSize: 16,color: ColorConstants.secondaryColor,)): + Text('${controller.tenantLocationName}', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle(fontSize: 16,color: ColorConstants.secondaryColor,), + ), + SizedBox(width: 0,), + PopupMenuButton( + position: PopupMenuPosition.under, + icon: const Icon(Icons.reorder,size: 30,), + onSelected: (TenantLocationDetails result) { + // Handle menu item selection + print('Selected: ${result.locationname}'); + }, + itemBuilder: (BuildContext context) { + return controller.tenantLocations.map((TenantLocationDetails location) { + return PopupMenuItem( + value: location, + child: ListTile( + onTap: ()async{ + SharedPreferences prefs = await SharedPreferences.getInstance(); + controller.appLocationId = location.applocationid??0; + controller.locationId = location.locationid??0; + controller.tenantLocationName = location.locationname??''; + prefs.setInt('partnerAppLocationId', location.applocationid??0); + Navigator.pop(context); + }, + title: Text("${location.locationname}"), + + // subtitle: Text("${location.applocationid}"), + ), + ); + }).toList(); + + + }, + ), + ], + ), + + + SizedBox(width: 10,) + ], + titleSpacing: 0, + ), + backgroundColor: Colors.grey[100], + body:ListView( + controller: listScrollController, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 10,), + Padding( + padding: const EdgeInsets.only(left: 10,right: 10) , + child: Column( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration(color:ColorConstants.secondaryColor), + child:SizedBox( + // height: 185, + child: Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + shape: BoxShape.rectangle, + border: Border(top:BorderSide(color: Colors.grey[600]!),left:BorderSide(color: Colors.grey[600]!),right: BorderSide(color: Colors.grey[600]!)), + // borderRadius: BorderRadius.only(topLeft: Radius.circular(10),topRight:Radius.circular(10) ) + + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(left: 6,top: 6), + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + InkWell( + onTap:(){ + if (controller.resultPosition != null) { + Get.to(PickupGoogleMapView (lat: controller.resultPosition!.latitude, long: controller.resultPosition!.longitude)); + } + }, + child: Row( + children: [ + Icon(Icons.location_on, color: ColorConstants.primaryColor,), + const SizedBox( + width: 6, + ), + Text( + 'Pickup', + style: TextStyle( + color: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 16), + ), + ], + )), + + Spacer(), + // Icon(Icons.edit,color: ColorConstants.primaryColor,), + InkWell( + onTap:(){ + Get.to(()=> PickupCustomerView()); + }, + child: Container( + padding:const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,border: Border.all(color: Colors.grey[400]!),borderRadius: BorderRadius.circular(5)), + child: Text( + 'Saved address', + style: TextStyle( + color: ColorConstants.darkGreyColor, + fontWeight: FontWeight.bold, + fontSize: 15), + ), + ), + ), + const SizedBox( + width: 6, + ), + + ], + ), + ), + // Padding( + // padding: const EdgeInsets.only(left: 5,top: 5,bottom: 0,right: 5), + // child: Column( + // mainAxisAlignment: + // MainAxisAlignment.center, + // crossAxisAlignment: + // CrossAxisAlignment.center, + // children: [ + // TextField( + // controller: tenantPickupCustomerController.searchController, + // textAlignVertical: TextAlignVertical.center, + // // focusNode: controller.focusNode, + // onChanged: (data){ + // var keyword = data; + // print('keyword................${keyword}'); + // if(data.isEmpty){ + // tenantPickupCustomerController.getCustomerBytenantId.clear(); + // tenantPickupCustomerController.update(); + // } + // else { + // // if(data.isNotEmpty) { + // tenantPickupCustomerController.shimmer.value = true; + // tenantPickupCustomerController.getSearchCustomerData(keyword); + // } + // // else{ + // // tenantPickupCustomerController.shimmer.value = true; + // // tenantPickupCustomerController.refreshData(); + // // FocusScope.of(context).unfocus(); + // // } + // }, + // decoration: InputDecoration( + // border: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[300]!)), + // enabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[300]!)), + // focusedBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[300]!)), + // disabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + // prefixIcon: IconButton( + // icon: const Icon(Icons.search), + // color: Colors.grey[500]!, + // onPressed: () { + // + // }, + // ), + // hintText: 'Search by contactno', + // hintStyle: TextStyle( + // color: Colors.grey[500]!, + // + // + // ), + // suffixIcon: tenantPickupCustomerController.searchController.text.isEmpty ? const SizedBox() : IconButton( + // icon: const Icon(Icons.cancel), + // color: Colors.grey[500]!, + // onPressed: () { + // tenantPickupCustomerController.searchController.clear(); + // tenantPickupCustomerController.shimmer.value = true; + // tenantPickupCustomerController.getCustomerBytenantId.clear(); + // // tenantPickupCustomerController.refreshData(); + // FocusManager.instance.primaryFocus?.unfocus(); + // }, + // ), + // ), + // ), + // ], + // ), + // ), + // tenantPickupCustomerController.getCustomerBytenantId.isNotEmpty + // ? Container( + // height: Get.height*0.20, + // width: Get.width, + // decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + // child: Obx(() { + // return ListView.builder( + // itemCount: tenantPickupCustomerController.getCustomerBytenantId.length, + // itemBuilder: ( + // BuildContext context, + // int index) { + // return Padding( + // padding: const EdgeInsets + // .only( + // top: 5, + // left: 5, + // right: 5, + // + // ), + // child: InkWell( + // onTap: () async { + // createOrderController.pickupCustomerId = tenantPickupCustomerController.getCustomerBytenantId[index].customerid; + // createOrderController.pickUpCustomerName = "${tenantPickupCustomerController.getCustomerBytenantId[index].firstname}" + "${tenantPickupCustomerController.getCustomerBytenantId[index].lastname}"; + // createOrderController.pickUpCustomerContactNo = tenantPickupCustomerController.getCustomerBytenantId[index].contactno; + // createOrderController.pickUpLandMark = tenantPickupCustomerController.getCustomerBytenantId[index].landmark; + // createOrderController.pickUpDoorNo = tenantPickupCustomerController.getCustomerBytenantId[index].doorno; + // createOrderController.pickupLocationId = tenantPickupCustomerController.getCustomerBytenantId[index].deliverylocationid; + // createOrderController.pickupTenantLocationId = tenantPickupCustomerController.getCustomerBytenantId[index].tenantlocationid; + // createOrderController.fromLatitude = tenantPickupCustomerController.getCustomerBytenantId[index].latitude; + // createOrderController.fromLongitude = tenantPickupCustomerController.getCustomerBytenantId[index].longitude; + // createOrderController.fromAddress = tenantPickupCustomerController.getCustomerBytenantId[index].address; + // createOrderController.pickupAddressController.text = tenantPickupCustomerController.getCustomerBytenantId[index].address ?? ''; + // createOrderController.pickupContactNameController.text = "${tenantPickupCustomerController.getCustomerBytenantId[index].firstname}" + "${tenantPickupCustomerController.getCustomerBytenantId[index].lastname}"; + // createOrderController.pickupContactNoController.text = tenantPickupCustomerController.getCustomerBytenantId[index].contactno ?? ''; + // createOrderController.pickupDoorNoController.text = tenantPickupCustomerController.getCustomerBytenantId[index].doorno ?? ''; + // createOrderController.pickupLandMarkController.text = tenantPickupCustomerController.getCustomerBytenantId[index].landmark ?? ''; + // createOrderController.pickupStateController.text = tenantPickupCustomerController.getCustomerBytenantId[index].state ?? ''; + // createOrderController.pickupCityController.text = tenantPickupCustomerController.getCustomerBytenantId[index].city ?? ''; + // createOrderController.pickupSuburbController.text = tenantPickupCustomerController.getCustomerBytenantId[index].suburb ?? ''; + // createOrderController.pickupPostcodeController.text = tenantPickupCustomerController.getCustomerBytenantId[index].postcode ?? ''; + // + // logger.i(createOrderController.pickupCustomerId); + // logger.i(createOrderController.dropCustomerId); + // + // if (createOrderController.pickupCustomerId == createOrderController.dropCustomerId) { + // Toast.showToast( + // 'Please select different customer it already selected'); + // } + // else { + // FocusManager.instance.primaryFocus?.unfocus(); + // tenantPickupCustomerController.getCustomerBytenantId.clear(); + // tenantPickupCustomerController.searchController.clear(); + // tenantPickupCustomerController.update(); + // print('ontapgetCustomerBytenantId ${tenantPickupCustomerController.getCustomerBytenantId}'); + // + // // Get.to(CreateOrderView(pickUpData:tenantPickupCustomerController.getCustomerBytenantId[index], isDashboard: false,pickupSavedAddress: true,)); + // + // } + // }, + // child: Stack( + // children: [ + // Container( + // padding: const EdgeInsets.only(right: 5,top: 10,left: 5,bottom: 10), + // margin: const EdgeInsets.only(top: 2,bottom: 2), + // decoration: BoxDecoration( + // color: ColorConstants.secondaryColor, + // border:Border.all(color: ColorConstants.darkGreyColor!), + // borderRadius: const BorderRadius.all(Radius.circular(3)), + // ), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // + // Expanded( + // flex: 8, + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.center, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Row( + // children: [ + // Icon( + // Icons.person, + // color: ColorConstants.primaryColor, + // size: 20, + // ), + // const SizedBox( + // width: 5, + // ), + // Row( + // children: [ + // Text( + // tenantPickupCustomerController.getCustomerBytenantId[index].firstname ?? "", + // style: TextStyle( + // fontSize: 16, + // color: Colors.grey[600], + // fontWeight: FontWeight.w300), + // ), + // ], + // ), + // Spacer(), + // Icon( + // Icons.call, + // color: ColorConstants.primaryColor, + // size: 20, + // ), + // const SizedBox( + // width: 5, + // ), + // Text( + // '${tenantPickupCustomerController.getCustomerBytenantId[index].contactno}', + // style: TextStyle( + // color: ColorConstants.darkGreyColor, + // fontSize: 14, + // fontWeight: + // FontWeight.w300), + // ), + // + // ], + // ), + // + // ], + // )), + // ], + // ), + // ), + // + // ], + // ), + // ), + // ); + // } + // ); + // }) + // ):SizedBox(), + Padding( + padding: const EdgeInsets.only(left: 5,top: 5,bottom: 0,right: 5), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + TextField( + onTap: () async { + }, + onChanged: (text)async { + if(text.isEmpty){ + controller.pickupPredictions.clear(); + FocusManager.instance.primaryFocus?.unfocus(); + controller.update(); + } + else { + controller.onSearchPickupTextChanged(text); + } + }, + controller: controller.pickupAddressController, + maxLines: 2, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + // prefixIcon:Icon( Icons.location_on,color: ColorConstants.primaryColor,) , + suffixIcon: InkWell( + onTap: (){ + controller.pickupAddressController.clear(); + controller.pickupSuburbController.clear(); + controller.pickupCityController.clear(); + controller.pickupStateController.clear(); + controller.pickupPostcodeController.clear(); + controller.pickupSaveAddress = false; + // controller.pickupContactNameController.clear(); + // controller.pickupContactNoController.clear(); + // controller.pickupDoorNoController.clear(); + // controller.pickupLandMarkController.clear(); + controller.pickupPredictions.clear(); + FocusManager.instance.primaryFocus?.unfocus(); + // pickupSavedAddress = false; + controller.pickupExpandedTileController.collapse(); + + controller.update(); + print('isExpandedTextfield'); + + }, + child: Icon(Icons.close,color: Colors.red,)), + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Pickup address"), + ), + ], + ), + ), + SizedBox(height: 5,) + ], + ), + ), + ), + + ), + Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + shape: BoxShape.rectangle, + border: Border(right:BorderSide(color: Colors.grey[600]!),left:BorderSide(color: Colors.grey[600]!),bottom: BorderSide(color: Colors.grey[600]!),top:BorderSide(color: Colors.grey[300]!)), + // borderRadius: BorderRadius.only(topLeft: Radius.circular(10),topRight:Radius.circular(10) ) + + ), + child: ExpandedTile( + theme: ExpandedTileThemeData( + // headerRadius: 24.0, + headerPadding: EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + headerColor: ColorConstants.secondaryColor, + contentBackgroundColor: ColorConstants.secondaryColor, + contentPadding: EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + ), + controller: controller.pickupExpandedTileController, + title: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + createOrderController.pickupPredictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + child: Obx(() { + return ListView.builder( + itemCount: createOrderController.pickupPredictions.length, + itemBuilder: (context, index) { + final prediction = + createOrderController.pickupPredictions[index]['description']; + return ListTile( + title: Text(prediction,style: TextStyle(color: ColorConstants.darkGreyColor),), + onTap: () { + final placeId = + createOrderController.pickupPredictions[index]['place_id']; + createOrderController.getPickupPlaceDetails(placeId,prediction); + controller.pickupExpandedTileController.expand(); + FocusManager.instance.primaryFocus?.unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + createOrderController.pickupPredictions.isNotEmpty?SizedBox():Text('Pickup details :',style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold),), + + + ], + ), + content: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 0,), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox(width:5), + + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + + onTap: () async { + }, + onChanged: (name){ + print('pickupCustomerName $name'); + createOrderController.pickUpCustomerName = name; + }, + + + controller: createOrderController.pickupContactNameController, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + maxLength: 25, + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.person,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Contact name"), + ), + ), + SizedBox(width: 3,), + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: + // IntlPhoneField( + // focusNode: controller.pickupFocusNode, + // flagsButtonPadding: EdgeInsets.only(left: 5), + // invalidNumberMessage: "Invalid number", + // textAlignVertical: TextAlignVertical.center, + // cursorHeight: 10, + // showDropdownIcon: false, + // // autovalidateMode: AutovalidateMode.always, + // decoration: InputDecoration( + // fillColor: Colors.white, + // filled: true, + // labelText: '', + // hintText: "Contact no", + // counterText: "", + // contentPadding: EdgeInsets.only(top: 10), + // border: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[100]!)), + // enabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[100]!)), + // focusedBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[100]!)), + // disabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + // ), + // initialCountryCode: 'IN', + // showCountryFlag: false, + // countries: [], + // controller: createOrderController.pickupContactNoController, + // keyboardType: TextInputType.number, + // // maxLines: 1, + // cursorColor: ColorConstants.textFieldColor, + // style: TextStyle( + // color: ColorConstants.textFieldColor, + // fontSize: 14, + // ), + // onChanged: (contactNo){ + // createOrderController.pickUpCustomerContactNo = contactNo.completeNumber; + // // + // if(controller.pickupContactNoController.text.length ==10){ + // FocusScope.of(context).unfocus(); + // } + // }, + // ), + // InternationalPhoneNumberInput( + // // Callback for when the input changes + // onInputChanged: (PhoneNumber contactNo) { + // createOrderController.pickUpCustomerContactNo = contactNo.phoneNumber; + // + // if(contactNo.phoneNumber?.length==10){ + // FocusScope.of(context).unfocus(); + // } + // }, + // // Callback for when the input is validated + // onInputValidated: (bool value) { + // // You can perform additional validation here if needed + // }, + // // Configuration for the country selector + // textAlignVertical: TextAlignVertical.center, + // // Ignore blank input + // ignoreBlank: false, + // countrySelectorScrollControlled: false, + // spaceBetweenSelectorAndTextField: 5, + // + // + // // Auto-validation mode + // autoValidateMode: AutovalidateMode.onUserInteraction, + // // Style for the country selector + // selectorTextStyle: TextStyle(color: Colors.black), + // keyboardType: TextInputType.number, + // // maxLines: 1, + // cursorColor: ColorConstants.textFieldColor, + // + // // Initial value for the phone number input + // initialValue:controller.number, + // // Controller for the text field + // textFieldController: createOrderController.pickupContactNoController, + // // Decoration for the input field + // inputDecoration: InputDecoration( + // fillColor: Colors.white, + // filled: true, + // border: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[100]!)), + // enabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[100]!)), + // focusedBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[100]!)), + // disabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(1)), + // borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + // counterText: "", + // hintText: "Contact no" + // ), + // // Format input (e.g., adding spaces between digits) + // formatInput: false, + // ), + + TextField( + onChanged: (contactNo){ + createOrderController.pickUpCustomerContactNo = contactNo; + createOrderController.pickUpCustomerContactNoCheck = createOrderController.pickUpCustomerContactNo; + if(createOrderController.pickUpCustomerContactNoCheck == createOrderController.pickUpCustomerContactNo){ + controller.pickupSaveAddress = true; + if(contactNo.length==10){ + FocusManager.instance.primaryFocus?.unfocus(); + } + } + // else if(contactNo.length==10){ + // FocusManager.instance.primaryFocus?.unfocus(); + // } + }, + controller: createOrderController.pickupContactNoController, + keyboardType: TextInputType.number, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + maxLength: 10, + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.phone,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Contact no"), + ), + ), + + ], + ), + const SizedBox(height: 5,), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox(width:5), + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + + onTap: () async { + }, + onChanged: (doorno){ + print('pickUpDoorNo $doorno'); + createOrderController.pickUpDoorNo = doorno; + }, + maxLength: 25, + + controller: createOrderController.pickupDoorNoController, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.door_back_door_outlined,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "House / Door no"), + ), + ), + SizedBox(width: 3,), + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + + onTap: () async { + }, + onChanged: (landmark){ + print('pickUpLandMark $landmark'); + createOrderController.pickUpLandMark = landmark; + }, + + controller: createOrderController.pickupLandMarkController, + maxLength: 25, + + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.house,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Landmark"), + ), + ), + ], + ), + const SizedBox(height: 10,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + SizedBox(width:5), + !controller.pickupSaveAddress?Container():InkWell( + onTap:(){ + if( controller.pickupAddressController.text.isEmpty){ + Toast.showToast('Pickup address should not be empty'); + } + else if( controller.pickupContactNameController.text.isEmpty){ + + Toast.showToast('Pickup customer name should not be empty'); + } + else if( controller.pickupContactNoController.text.isEmpty){ + + Toast.showToast('Pickup customer no should not be empty'); + } + else if( controller.pickupContactNoController.text.length!=10){ + + Toast.showToast('Please enter correct pickup customer no'); + } + // else if( controller.pickupContactNameController.text.length!=3 ){ + // Toast.showToast('Pickup customer name should be minimum 3 characters required'); + // } + else { + // controller.pickupSaveAddress = true; + // controller.pickupCustomerId = 0; + } + + }, + child: !controller.pickupSaveAddress?Container():Row( + children: [ + InkWell( + onTap: (){ + pickupSave(); + }, + child: Container(height: 21,width: 22, + decoration: BoxDecoration(borderRadius: BorderRadius.circular(3),color: controller.pikUpSaveChecking==true?Colors.green:Colors.white,border: Border.all( + color: controller.pikUpSaveChecking?Colors.green:Colors.grey[400]! + ) + ), + child:controller.pikUpSaveChecking ==true?const Icon(Icons.check,color: Colors.white,size: 19,):const SizedBox(), + ), + ), + SizedBox(width: 10,), + Text('Save for later',style: TextStyle(color:ColorConstants.primaryColor),), + ], + ), + ), + Spacer(), + InkWell( + onTap:(){ + controller.pickupExpandedTileController.collapse(); + }, + child: Container( + padding: const EdgeInsets.only(left: 20,bottom: 7,top: 7,right:20), + decoration: BoxDecoration(color:ColorConstants.primaryColor,borderRadius: BorderRadius.circular(5)), + child: Text('Ok',style: TextStyle(color:ColorConstants.secondaryColor),), + ), + ), + SizedBox(width:5) + + ], + ), + const SizedBox(height: 5,), + + + ], + ), + onTap: () { + debugPrint("tapped!!"); + }, + onLongTap: () { + debugPrint("long tapped!!"); + }, + + ), + ), + ], + ), + ], + ), + ), + SizedBox(height: 10,), + Padding( + padding: const EdgeInsets.only(left: 8,right: 8) , + child: Column( + children: [ + Column( + children: [ + Container( + decoration: BoxDecoration(color:ColorConstants.secondaryColor), + child:SizedBox( + // height: 120, + child: Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + shape: BoxShape.rectangle, + border: Border(top:BorderSide(color: Colors.green[300]!),left:BorderSide(color: Colors.green[300]!),right: BorderSide(color: Colors.green[300]!)), + // borderRadius: BorderRadius.only(topLeft: Radius.circular(10),topRight:Radius.circular(10) ) + + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(left: 6,top: 6), + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + InkWell( + onTap:()async{ + if (controller.resultPosition != null) { + Get.to(DropGoogleMapView (lat: controller.resultPosition!.latitude, long: controller.resultPosition!.longitude)); + } + }, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Icon(Icons.location_on, color: ColorConstants.primaryColor,), + const SizedBox( + width: 6, + ), + Text( + 'Drop', + style: TextStyle( + color: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 16), + ), + ], + ), + ), + + Spacer(), + // Icon(Icons.edit,color: ColorConstants.primaryColor,), + InkWell( + onTap:(){ + Get.to(()=> DropCustomerView()); + }, + child: Container( + padding:const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,border: Border.all(color: Colors.grey[400]!),borderRadius: BorderRadius.circular(5)), + child: Text( + 'Saved address', + style: TextStyle( + color: ColorConstants.darkGreyColor, + fontWeight: FontWeight.bold, + fontSize: 15), + ), + ), + ), + const SizedBox( + width: 6, + ), + + ], + ), + ), + // Padding( + // padding: const EdgeInsets.only(left: 5,top: 5,bottom: 0,right: 5), + // child: Column( + // mainAxisAlignment: + // MainAxisAlignment.center, + // crossAxisAlignment: + // CrossAxisAlignment.center, + // children: [ + // TextField( + // controller: tenantDropCustomerController.searchController, + // textAlignVertical: TextAlignVertical.center, + // // focusNode: controller.focusNode, + // onChanged: (data){ + // var keyword = data; + // print('keyword................${keyword}'); + // if(data.isEmpty){ + // tenantDropCustomerController.getCustomerBytenantId.clear(); + // tenantDropCustomerController.update(); + // } + // else { + // // if(data.isNotEmpty) { + // tenantDropCustomerController.shimmer.value = true; + // tenantDropCustomerController.getSearchCustomerData(keyword); + // + // } + // // else{ + // // tenantDropCustomerController.shimmer.value = true; + // // tenantDropCustomerController.refreshData(); + // // FocusScope.of(context).unfocus(); + // // } + // + // }, + // onTap:(){ + // if (listScrollController.hasClients) { + // final position = + // listScrollController.position.minScrollExtent + + // 300; + // listScrollController.animateTo( + // position, + // duration: const Duration(seconds: 1), + // curve: Curves.easeOut, + // ); + // } + // }, + // decoration: InputDecoration( + // border: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[300]!)), + // enabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[300]!)), + // focusedBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide( + // width: 1.5, + // color: Colors.grey[300]!)), + // disabledBorder: OutlineInputBorder( + // borderRadius: BorderRadius.all(Radius.circular(2)), + // borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + // prefixIcon: IconButton( + // icon: const Icon(Icons.search), + // color: Colors.grey[500]!, + // onPressed: () { + // + // }, + // ), + // hintText: 'Search by contactno', + // hintStyle: TextStyle( + // color: Colors.grey[500]!, + // + // + // ), + // suffixIcon: tenantDropCustomerController.searchController.text.isEmpty ? const SizedBox() : IconButton( + // icon: const Icon(Icons.cancel), + // color: Colors.grey[500]!, + // onPressed: () { + // tenantDropCustomerController.searchController.clear(); + // tenantDropCustomerController.shimmer.value = true; + // tenantDropCustomerController.getCustomerBytenantId.clear(); + // // tenantPickupCustomerController.refreshData(); + // FocusManager.instance.primaryFocus?.unfocus(); + // }, + // ), + // ), + // ), + // ], + // ), + // ), + // tenantDropCustomerController.getCustomerBytenantId.isNotEmpty + // ? Container( + // height: Get.height*0.20, + // width: Get.width, + // decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + // child: Obx(() { + // return ListView.builder( + // itemCount: tenantDropCustomerController.getCustomerBytenantId.length, + // itemBuilder: ( + // BuildContext context, + // int index) { + // return Padding( + // padding: const EdgeInsets.only(top: 5, left: 5, right: 5,), + // child: InkWell( + // onTap: () async { + // createOrderController.dropCustomerId = tenantDropCustomerController.getCustomerBytenantId[index].customerid; + // createOrderController.dropCustomerName = "${tenantDropCustomerController.getCustomerBytenantId[index].firstname}" + "${tenantDropCustomerController.getCustomerBytenantId[index].lastname}"; + // createOrderController.dropCustomerContactNo = tenantDropCustomerController.getCustomerBytenantId[index].contactno; + // createOrderController.dropLandMark = tenantDropCustomerController.getCustomerBytenantId[index].landmark; + // createOrderController.dropDoorNo = tenantDropCustomerController.getCustomerBytenantId[index].doorno; + // createOrderController.dropLocationId = tenantDropCustomerController.getCustomerBytenantId[index].deliverylocationid; + // createOrderController.dropTenantLocationId = tenantDropCustomerController.getCustomerBytenantId[index].tenantlocationid; + // createOrderController.toLatitude = tenantDropCustomerController.getCustomerBytenantId[index].latitude; + // createOrderController.toLongitude = tenantDropCustomerController.getCustomerBytenantId[index].longitude; + // createOrderController.toAddress =tenantDropCustomerController.getCustomerBytenantId[index].address; + // + // createOrderController.dropAddressController.text = tenantDropCustomerController.getCustomerBytenantId[index].address??''; + // createOrderController.dropContactNameController.text = "${tenantDropCustomerController.getCustomerBytenantId[index].firstname}" + "${tenantDropCustomerController.getCustomerBytenantId[index].lastname}"; + // createOrderController.dropContactNoController.text = tenantDropCustomerController.getCustomerBytenantId[index].contactno??''; + // createOrderController.dropDoorNoController.text = tenantDropCustomerController.getCustomerBytenantId[index].doorno??''; + // createOrderController.dropLandMarkController.text = tenantDropCustomerController.getCustomerBytenantId[index].landmark??''; + // createOrderController.dropStateController.text = tenantDropCustomerController.getCustomerBytenantId[index].state ??''; + // createOrderController.dropCityController.text = tenantDropCustomerController.getCustomerBytenantId[index].city??'' ; + // createOrderController.dropSuburbController.text = tenantDropCustomerController.getCustomerBytenantId[index].suburb??''; + // createOrderController.dropPostcodeController.text = tenantDropCustomerController.getCustomerBytenantId[index].postcode??'' ; + // + // logger.i (createOrderController.pickupCustomerId); + // logger.i (createOrderController.dropCustomerId); + // + // if(createOrderController.dropCustomerId == createOrderController.pickupCustomerId){ + // Toast.showToast('Please select different customer it already selected'); + // } + // + // else { + // FocusManager.instance.primaryFocus?.unfocus(); + // + // tenantDropCustomerController.getCustomerBytenantId.clear(); + // tenantDropCustomerController.searchController.clear(); + // tenantDropCustomerController.update(); + // print('ontapgetCustomerBytenantId ${tenantDropCustomerController.getCustomerBytenantId}'); + // + // // Get.to(CreateOrderView(dropData:tenantPickupCustomerController.getCustomerBytenantId[index], isDashboard: false,pickupSavedAddress: true,)); + // + // } + // }, + // child: Stack( + // children: [ + // Container( + // padding: const EdgeInsets.only(right: 5,top: 10,left: 5,bottom: 10), + // margin: const EdgeInsets.only(top: 2,bottom: 2), + // decoration: BoxDecoration( + // color: ColorConstants.secondaryColor, + // border:Border.all(color: ColorConstants.darkGreyColor!), + // borderRadius: const BorderRadius.all(Radius.circular(3)), + // ), + // // height: Get.height * 0.15, + // child: Row( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Expanded( + // flex: 8, + // child: Column( + // crossAxisAlignment: + // CrossAxisAlignment.start, + // mainAxisAlignment: + // MainAxisAlignment.spaceEvenly, + // children: [ + // Row( + // children: [ + // Icon( + // Icons.person, + // color: ColorConstants.primaryColor, + // size: 20, + // ), + // const SizedBox( + // width: 5, + // ), + // Row( + // children: [ + // Text( + // tenantDropCustomerController.getCustomerBytenantId[index].firstname ?? "", + // style: TextStyle( + // fontSize: 16, + // color: Colors + // .grey[600], + // fontWeight: + // FontWeight + // .w600), + // ), + // ], + // ), + // Spacer(), + // Icon( + // Icons.call, + // color: ColorConstants.primaryColor, + // size: 20, + // ), + // const SizedBox( + // width: 5, + // ), + // Text( + // '${tenantDropCustomerController.getCustomerBytenantId[index].contactno}', + // style: TextStyle( + // color: ColorConstants.darkGreyColor, + // fontSize: 14, + // fontWeight: + // FontWeight + // .bold), + // ), + // ], + // ), + // + // ], + // )), + // ], + // ), + // ), + // + // ], + // ), + // ), + // ); + // } + // ); + // }) + // ):SizedBox(), + Padding( + padding: const EdgeInsets.only(left: 5,top: 5,bottom: 0,right: 5), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + TextField( + onTap: () async { + if (listScrollController.hasClients) { + final position = + listScrollController.position.minScrollExtent + + 300; + listScrollController.animateTo( + position, + duration: const Duration(seconds: 1), + curve: Curves.easeOut, + ); + } + + }, + onChanged: (text) { + if(text.isEmpty){ + controller.dropPredictions.clear(); + FocusManager.instance.primaryFocus?.unfocus(); + controller.update(); + } + else { + controller + .onSearchDropTextChanged( + text); + } + }, + controller: controller.dropAddressController, + maxLines: 2, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + // prefixIcon:Icon( Icons.location_on,color: ColorConstants.primaryColor,) , + suffixIcon: InkWell( + onTap: (){ + controller.dropAddressController.clear(); + controller.dropSuburbController.clear(); + controller.dropCityController.clear(); + controller.dropStateController.clear(); + controller.dropPostcodeController.clear(); + controller.dropSaveAddress = false; + // controller.dropContactNameController.clear(); + // controller.dropContactNoController.clear(); + // controller.dropDoorNoController.clear(); + // controller.dropLandMarkController.clear(); + controller.dropPredictions.clear(); + FocusManager.instance.primaryFocus?.unfocus(); + // dropSavedAddress = false; + controller.dropExpandedTileController.collapse(); + + controller.update(); + print('isDropExpandedTextfield'); + + }, + child: Icon(Icons.close,color: Colors.red,)), + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(2)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Drop address"), + ), + ], + ), + ), + SizedBox(height: 5,) + ], + ), + ), + ), + + ), + Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + shape: BoxShape.rectangle, + border: Border(right:BorderSide(color: Colors.green[300]!),left:BorderSide(color: Colors.green[300]!),bottom: BorderSide(color: Colors.green[300]!),top:BorderSide(color: Colors.green[300]!)), + // borderRadius: BorderRadius.only(topLeft: Radius.circular(10),topRight:Radius.circular(10) ) + + ), + child: ExpandedTile( + theme: ExpandedTileThemeData( + // headerRadius: 24.0, + headerPadding: EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + headerColor: ColorConstants.secondaryColor, + contentBackgroundColor: ColorConstants.secondaryColor, + contentPadding: EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + ), + controller: controller.dropExpandedTileController, + title: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + createOrderController.dropPredictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + child: Obx(() { + return ListView.builder( + itemCount: createOrderController.dropPredictions.length, + itemBuilder: (context, index) { + final prediction = + createOrderController.dropPredictions[index]['description']; + return ListTile( + title: Text(prediction,style: TextStyle(color: ColorConstants.darkGreyColor),), + onTap: () { + final placeId = + createOrderController.dropPredictions[index]['place_id']; + createOrderController.getDropPlaceDetails(placeId,prediction); + controller.dropExpandedTileController.expand(); + FocusManager.instance.primaryFocus?.unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + createOrderController.dropPredictions.isNotEmpty?SizedBox():Text('Drop details :',style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold),), + + + ], + ), + content: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 0,), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox(width:5), + + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + + onTap: () async { + }, + onChanged: (name){ + print('dropCustomerName $name'); + createOrderController.dropCustomerName = name; + print('dropContactNameControllerlength ${createOrderController.dropContactNameController.text.length}'); + }, + + controller: createOrderController.dropContactNameController, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + maxLength: 25, + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.person,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Contact name"), + ), + ), + SizedBox(width: 3,), + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + onChanged: (contactNo){ + createOrderController.dropCustomerContactNo = contactNo; + + createOrderController.dropCustomerContactNo = contactNo; + createOrderController.dropCustomerContactNoCheck = createOrderController.dropCustomerContactNo; + if(createOrderController.dropCustomerContactNoCheck == createOrderController.dropCustomerContactNo){ + controller.dropSaveAddress = true; + if(contactNo.length==10){ + FocusManager.instance.primaryFocus?.unfocus(); + } + } + // else if(contactNo.length==10){ + // FocusManager.instance.primaryFocus?.unfocus(); + // } + }, + keyboardType: TextInputType.number, + + controller: createOrderController.dropContactNoController, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + maxLength: 10, + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.phone,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Contact no"), + ), + ), + + ], + ), + const SizedBox(height: 5,), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox(width:5), + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + + onTap: () async { + }, + maxLength: 25, + + onChanged: (doorno){ + print('dropDoorNo $doorno'); + createOrderController.dropDoorNo = doorno; + }, + + controller: createOrderController.dropDoorNoController, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.door_back_door_outlined,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "House / Door no"), + ), + ), + SizedBox(width: 3,), + Container( + height: Get.height * 0.07, + width: Get.width * 0.45, + child: TextField( + + onTap: () async { + }, + maxLength: 25, + + onChanged: (landmark){ + print('dropLandMark $landmark'); + createOrderController.dropLandMark = landmark; + }, + + controller: createOrderController.dropLandMarkController, + // maxLines: 1, + cursorColor: ColorConstants.textFieldColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 14, + ), + + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + prefixIcon:Icon( Icons.house,color: ColorConstants.darkGreyColor,) , + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[100]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(1)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Landmark"), + ), + ), + ], + ), + const SizedBox(height: 10,), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + SizedBox(width: 5,), + !controller.dropSaveAddress?Container():InkWell( + onTap:(){ + if( controller.dropAddressController.text.isEmpty){ + Toast.showToast('Drop address should not be empty'); + } + else if( controller.dropContactNameController.text.isEmpty){ + + Toast.showToast('Drop customer name should not be empty'); + } + else if( controller.dropContactNoController.text.isEmpty){ + + Toast.showToast('Drop customer no should not be empty'); + } + else if( controller.dropContactNoController.text.length!=10){ + + Toast.showToast('Please enter correct drop customer no'); + } + // else if( controller.dropContactNameController.text.length!=3){ + // Toast.showToast('Drop customer name should be minimum 3 characters required'); + // } + else { + // controller.dropSaveAddress = true; + // controller.dropCustomerId = 0; + } + + }, + child: !controller.dropSaveAddress?Container():Row( + children: [ + InkWell( + onTap: (){ + dropSave(); + }, + child: Container(height: 21,width: 22, + decoration: BoxDecoration(borderRadius: BorderRadius.circular(3),color: controller.dropSaveChecking==true?Colors.green:Colors.white,border: Border.all( + color: controller.dropSaveChecking?Colors.green:Colors.grey[400]! + ) + ), + child:controller.dropSaveChecking ==true?const Icon(Icons.check,color: Colors.white,size: 19,):const SizedBox(), + ), + ), + SizedBox(width: 10,), + Text('Save for later',style: TextStyle(color:ColorConstants.primaryColor),), + ], + ), + ), + Spacer(), + InkWell( + onTap:(){ + controller.dropExpandedTileController.collapse(); + + }, + child: Container( + padding: const EdgeInsets.only(left: 20,bottom: 7,top: 7,right:20), + decoration: BoxDecoration(color:ColorConstants.primaryColor,borderRadius: BorderRadius.circular(5)), + child: Text('Ok',style: TextStyle(color:ColorConstants.secondaryColor),), + ), + ), + SizedBox(width:5) + ], + ), + const SizedBox(height: 5,), + ], + ), + onTap: () { + if (listScrollController.hasClients) { + final position = + listScrollController.position.minScrollExtent + + 300; + listScrollController.animateTo( + position, + duration: const Duration(seconds: 1), + curve: Curves.easeOut, + ); + } + + debugPrint("drop tapped!!"); + }, + onLongTap: () { + debugPrint("long tapped!!"); + }, + + ), + ), + + ], + ), + + + + ], + ), + ), + SizedBox(height: 10,), + Container( + height: Get.height*0.55, + child:controller.loader?shimmer(): Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 15), + child: Text('Pickup time :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + Padding( + padding: const EdgeInsets.only(left: 25,top: 15), + child: + Container( + height:Get.height*0.04, + child: controller.scheduleType!=null?controller.scheduleType =='Now'?Padding( + padding: const EdgeInsets.only(left: 10), + child: Row( + children: [ + InkWell( + onTap:(){ + // timeSheet(context); + }, + child: Container( + // width: Get.width*0.50, + padding: EdgeInsets.only(right: 10,left: 10,top: 6,bottom: 6), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(5),border: Border.all(color: ColorConstants.primaryColor)), + child:Center( + child: + // Text("Pickup time : ${DateFormat("hh:mm a").format(DateFormat("yyyy-MM-dd HH:mm:ss").parse(controller.datetime.toString()))}",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),) + Text("Now",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),) + + ), + + ), + ), + SizedBox(width: 10,), + InkWell( + onTap:(){ + controller.scheduleType=null; + controller.scheduleIndex = -1; + controller.datetime = DateTime.now(); + controller.selectedDate = DateTime.now(); + controller.main(); + }, + child: Center(child: Icon(Icons.refresh_rounded,color:ColorConstants.primaryColor)), + ) + ], + ), + ):Row( + children: [ + Text("Pickup time :",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),), + SizedBox(width: 5,), + InkWell( + onTap:(){ + dateSheet(context); + }, + child: Container( + width: Get.width*0.24, + padding: EdgeInsets.only(right: 5,left: 5,top: 6,bottom: 6), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(5),border: Border.all(color: ColorConstants.primaryColor)), + child: Text("${ + DateFormat("dd-MM-yyyy").format(DateFormat("yyyy-MM-dd").parse(controller.selectedDate.toString())) + }",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + ), + SizedBox(width: 5,), + InkWell( + onTap:(){ + timeSheet(context); + }, + child: Container( + width: Get.width*0.20, + padding: EdgeInsets.only(right: 5,left: 5,top: 6,bottom: 6), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(5),border: Border.all(color: ColorConstants.primaryColor)), + child: Text("${ + DateFormat("hh:mm a").format(DateFormat("yyyy-MM-dd HH:mm:ss").parse(controller.datetime.toString())) + }",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + ), + SizedBox(width: 10,), + InkWell( + onTap:(){ + controller.scheduleType=null; + controller.scheduleIndex = -1; + controller.datetime = DateTime.now(); + controller.selectedDate = DateTime.now(); + controller.main(); + }, + child: Center(child: Icon(Icons.refresh_rounded,color:ColorConstants.primaryColor)), + ) + ], + ):ListView.builder( + padding: EdgeInsets.only(left: 0), + scrollDirection: Axis.horizontal, + physics: ScrollPhysics(), + itemCount: controller.schedule.length, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + controller.scheduleIndex = index; + controller.scheduleType = controller.schedule[index]['scheduleType']; + + print('scheduleTypeonTap ${controller.scheduleType}'); + + if(controller.scheduleType == 'Now'){ + if (listScrollController.hasClients) { + final position = + listScrollController.position.maxScrollExtent + + 300; + listScrollController.animateTo( + position, + duration: const Duration(seconds: 1), + curve: Curves.easeOut, + ); + } + // timeSheet(context); + } + else{ + if (listScrollController.hasClients) { + final position = + listScrollController.position.maxScrollExtent + + 300; + listScrollController.animateTo( + position, + duration: const Duration(seconds: 1), + curve: Curves.easeOut, + ); + } + dateSheet(context); + } + controller.update(); + }, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Container( + padding: EdgeInsets.only(right: 15,left: 15,top: 6,bottom: 6), + decoration: BoxDecoration(color: controller.scheduleIndex == index?ColorConstants.primaryColor:Colors.grey[300],borderRadius: BorderRadius.circular(5)), + child:Center( + child: + Text("${controller.schedule[index]['scheduleType']}",style: TextStyle(color: controller.scheduleIndex ==index?ColorConstants.secondaryColor:ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),) + ), + + ), + ) + ); + }, + ), + ), + ), + Padding( + padding: const EdgeInsets.only(left: 15,top: 20), + child: Text('Weight :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + Padding( + padding: const EdgeInsets.only(left: 25,top: 15), + child: Container( + height: Get.height*0.04, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: controller.weightRange.length, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + controller.weightSelectedIndex = index; + controller.weight = controller.weightRange[index]['weight']; + print('deliveryDetailsControllerweightRange${controller.weight}'); + controller.update(); + }, + child:Padding( + padding: const EdgeInsets.only(left: 10), + child: Container( + padding: EdgeInsets.only(right: 15,left: 15,top: 6,bottom: 6), + decoration: BoxDecoration(color: controller.weightSelectedIndex == index?ColorConstants.secondaryColor:Colors.grey[300],borderRadius: BorderRadius.circular(5),border: Border.all(color: controller.weightSelectedIndex == index?ColorConstants.primaryColor:Colors.grey[300]!)), + child: Column( + children: [ + Center(child: Text(controller.weightRange[index]['weight'],style: TextStyle(color: controller.weightSelectedIndex == index?ColorConstants.darkGreyColor:ColorConstants.darkGreyColor,fontSize: 15,fontWeight: FontWeight.bold),)), + ], + ), + ), + ) + ); + }, ), + ), + ), + Padding( + padding: const EdgeInsets.only(left: 15,top: 20), + child: Text('Item category :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + Padding( + padding: const EdgeInsets.only(left: 25,top: 15), + child: Container( + height: Get.height*0.05, + child: InkWell( + onTap: (){ + showModalBottomSheet( + isDismissible: true, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(15.0), topRight: Radius.circular(15)), + ), + context: context, + builder: (builder) { + return Container( + height: Get.height, + child:Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 10,left: 10), + child: Text('Select categories :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 18,fontWeight: FontWeight.bold,),), + ), + SizedBox(height: 20,), + + Expanded( + child: GridView.builder( + itemCount: controller.subCategoryLists.length, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 1, + crossAxisSpacing: 4, + mainAxisSpacing: 4, + childAspectRatio: 8.5, + ), + itemBuilder: ( + context, + index, + ) { + print('subCategoryListslengthinview${controller.subCategoryLists.length}'); + return InkWell( + onTap: () { + controller.catSelectedIndex = index; + controller.subCatId =(controller.subCategoryLists[index].subcategoryid); + controller.subCatName =(controller.subCategoryLists[index].subcategoryname); + controller.update(); + print('SubCategoryListSubcategoryid ${controller.subCategoryLists[index].subcategoryid}'); + print('SubCategoryListSubcategoryname ${controller.subCategoryLists[index].subcategoryname}'); + Get.back(); + // Navigator.pop(context); + }, + child: + Stack( + children: [ + Row( + children: [ + SizedBox( + width: 15, + ), + // Text( + // '${controller.subCategoryLists[index].subcategoryname}',style: TextStyle(fontSize: 17,fontWeight: FontWeight.bold,),), + ], + ), + controller.subCategoryLists[index].subcategoryid == controller.subCatId + ? Positioned( + right: 10, + top: 8, + child: Icon( + Icons.check_circle_outline, + color: Colors.green, + )) + : Positioned( + right: 10, + top: 8, + child: Icon( + Icons.check_circle_outline, + color: Colors.grey[400], + )) + ], + ), + ); + }), + ), + ], + ), + ); + }); + + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 0,left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + controller.subCatName==null? + Container( + padding: EdgeInsets.only(left: 10,right: 10,top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(10),border: Border.all(color:ColorConstants.primaryColor)), + child: Center( + child: Text("${controller.subcategoryName}" ??"",style: TextStyle(fontSize: 15,color:ColorConstants.darkGreyColor,fontWeight: FontWeight.bold)))): + Container( + // height:Get.height*0.04, + // width: Get.width*0.3, + padding: EdgeInsets.only(left: 10,right: 10,top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(10),border: Border.all(color:ColorConstants.primaryColor)), + child: Center( + child: Text("${controller.subCatName}" ??"",style: TextStyle(fontSize: 15,color:ColorConstants.darkGreyColor,fontWeight: FontWeight.bold)))), + ], + ), + ) + ], + ), + ), + + ), + ), + + Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10,top: 20), + child: Text('Instructions :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + ], + ), + const SizedBox( + height: 10, + ), + Padding( + padding: const EdgeInsets.only(top: 5,left: 10,right: 10,bottom: 5), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextField( + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(6)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(6)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(6)), + borderSide: BorderSide( + width: 1.5, + color: Colors.grey[300]!)), + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(6)), + borderSide: BorderSide(width: 1, color: Colors.grey.shade50)), + counterText: "", + hintText: "Instructions if any?"), + controller: createOrderController.tecNotes, + keyboardType: TextInputType.text, + maxLines: 3, + maxLength: 180, + onChanged: (notes) { + // widget.model.Ordernotes = notes; + }, + ), + + ], + ), + ), + ], + ), + ], + ), + ), + + ], + ), + ], + ), + bottomNavigationBar: SizedBox( + height: Get.height*0.08, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 11,top: 0), + child: RoundedButton( + onPressed: () { + if(controller.timeSlotsnew.isEmpty){ + AwesomeDialog( + context: Get.context!, + dialogType: DialogType.error, + //animType: AnimType.BOTTOMSLIDE, + descTextStyle: const TextStyle(fontSize: 16,), + + title: 'Warning', + desc: 'We are unable to process the order at this time. Kindly schedule it for an other day.', + dismissOnTouchOutside: false, + // btnCancelOnPress: () { + // }, + btnOkOnPress: () { + Get.to(()=>CreateOrderView( isDashboard: isDashboard,)); + + }, + ).show(); + + controller.btnController.reset(); + + } + else { + controller.describeValidation(); + } + }, + color:ColorConstants.primaryColor, + title: 'Proceed', + controller: createOrderController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ), + )), + ], + ), + + ), + + ), + ); + } + ); + } + + dateSheet(context) async{ + + DateTime? picked = await showDatePicker( + + context: context, + initialDate: createOrderController.selectedDate, + + firstDate: DateTime(2000), + lastDate: DateTime(2101), + builder: (context, child) { + return GestureDetector( + onTap: () { + FocusManager.instance.primaryFocus?.unfocus(); + }, + child: Theme( + data: Theme.of(context).copyWith( + colorScheme: ColorScheme.light( + primary: ColorConstants.primaryColor, + onPrimary: ColorConstants.secondaryColor!, + onSurface: Colors.black, + ), + // backgroundColor: ColorConstants.secondaryColor, + dialogBackgroundColor: ColorConstants.secondaryColor, + + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + // backgroundColor: ColorConstants.primaryColor, + // Colors.red, + ), + ), + ), + child: GestureDetector( + onTap: () { + FocusManager.instance.primaryFocus?.unfocus(); + }, + child: child!), + ), + ); + }, + + + ); + + if (picked != null && picked != createOrderController.selectedDate) { + createOrderController.selectedDate = picked; + createOrderController.datetime = picked; + createOrderController.timeSelectIndex = -1; + createOrderController.main(); + createOrderController.update(); + + + } + } + + timeSheet(context) { + showModalBottomSheet( + isDismissible: true, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(15.0), topRight: Radius.circular(15)), + ), + context: context, + builder: (builder) { + return Padding( + padding: const EdgeInsets.only(left: 8,right: 10), + child: Container( + height: Get.height*0.40, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(height: 5,), + createOrderController.timeSlotsnew.isEmpty? + Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text('No slots available at this time',style: TextStyle(fontSize: 16,fontWeight: FontWeight.bold,color: Colors.grey[600]),), + ], + ) + ) + : Expanded( + child: GetBuilder( + builder: (controller) { + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 10,left: 10), + child: Text('Select pickuptime :',style: TextStyle(fontSize: 16,fontWeight: FontWeight.bold,color: Colors.grey[600]),), + ), + SizedBox(height: 15,), + Container( + height: Get.height*0.32, + child: GridView.builder( + scrollDirection: Axis.vertical, + shrinkWrap: true, + padding: EdgeInsets.symmetric(horizontal: 5), + itemCount: controller.timeSlotsnew.length, + itemBuilder: (ctx, index) { + print('deliveryTime..........${controller.timeSlotsnew.length}'); + return Container( + height: Get.height*0.06, + width: Get.width*0.3, + child: InkWell( + onTap: (){ + controller.timeSelectIndex = index; + controller.datetime = DateTime.parse(controller.timeSlotsnew[index].toString()); + controller.update(); + Get.back(); + print('deliveryTime................${controller.datetime}'); + }, + child: Card( + color: controller.timeSelectIndex == index? + ColorConstants.primaryColor1 : + Colors.grey[100], + elevation: 2, + child: Center(child: Text('${DateFormat("hh.mm a").format(DateFormat("yyyy-MM-dd HH:mm:ss").parse(controller.timeSlotsnew[index]))}',style: TextStyle(fontSize: 14,fontWeight: FontWeight.bold),)), + ), + ), + ); + }, + gridDelegate: + SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + childAspectRatio: 2.0, + crossAxisSpacing: 0.0, + mainAxisSpacing: 1, + mainAxisExtent: 50, + ), + ), + ), + ], + ); + } + ), + ), + ], + ), + ), + ); + }); + } + bool pickupSave() { + createOrderController.update(); + createOrderController.pikUpSaveChecking = !createOrderController.pikUpSaveChecking; + print('pikUpSaveCheckingpickupSave ${ createOrderController.pikUpSaveChecking}'); + return createOrderController.pikUpSaveChecking; + } + + bool dropSave() { + createOrderController.update(); + createOrderController.dropSaveChecking = !createOrderController.dropSaveChecking; + print('dropSaveCheckingCheckingdropSave ${ createOrderController.dropSaveChecking}'); + + return createOrderController.dropSaveChecking; + } + + shimmer(){ + return Container( + height: Get.height*0.55, + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 15), + child: Text('Pickup time :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + Padding( + padding: const EdgeInsets.only(left: 25,top: 15), + child: + Container( + height:Get.height*0.04, + child: ListView.builder( + padding: EdgeInsets.only(left: 0), + scrollDirection: Axis.horizontal, + physics: ScrollPhysics(), + itemCount: 2, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + }, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Container( + width : Get.width*0.20, + padding: EdgeInsets.only(right: 15,left: 15,top: 6,bottom: 6), + decoration: BoxDecoration(color:Colors.grey[300],borderRadius: BorderRadius.circular(5)), + child:Center( + child: + Text("",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 16,fontWeight: FontWeight.bold),) + ), + + ), + ) + ); + }, + ), + ), + ), + Padding( + padding: const EdgeInsets.only(left: 15,top: 20), + child: Text('Weight :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + Padding( + padding: const EdgeInsets.only(left: 25,top: 15), + child: Container( + height: Get.height*0.04, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: 3, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + + }, + child:Padding( + padding: const EdgeInsets.only(left: 10), + child: Container( + width : Get.width*0.20, + padding: EdgeInsets.only(right: 15,left: 15,top: 6,bottom: 6), + decoration: BoxDecoration(color: Colors.grey[300],borderRadius: BorderRadius.circular(5),border: Border.all(color: Colors.grey[300]!)), + child: Column( + children: [ + Center(child: Text("",style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 15,fontWeight: FontWeight.bold),)), + ], + ), + ), + ) + ); + }, ), + ), + ), + Padding( + padding: const EdgeInsets.only(left: 15,top: 20), + child: Text('Item category :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + Padding( + padding: const EdgeInsets.only(left: 25,top: 15), + child: Container( + height: Get.height*0.05, + child: InkWell( + onTap: (){ + + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 0,left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + + Container( + width : Get.width*0.20, + // height:Get.height*0.04, + // width: Get.width*0.3, + padding: EdgeInsets.only(left: 10,right: 10,top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(10),border: Border.all(color:ColorConstants.primaryColor)), + child: Center( + child: Text("",style: TextStyle(fontSize: 15,color:ColorConstants.darkGreyColor,fontWeight: FontWeight.bold)))), + ], + ), + ) + ], + ), + ), + + ), + ), + + Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10,top: 20), + child: Text('Instructions :',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold),), + ), + ], + ), + const SizedBox( + height: 10, + ), + Padding( + padding: const EdgeInsets.only(top: 5,left: 10,right: 10,bottom: 5), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: Get.height*0.08, + width : Get.width*0.95, + // padding: EdgeInsets.only(left: 10,right: 10,top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(10),border: Border.all(color:ColorConstants.primaryColor)), + child: Center( + child: Text("",style: TextStyle(fontSize: 15,color:ColorConstants.darkGreyColor,fontWeight: FontWeight.bold)))), + ], + ), + ), + ], + ), + ], + ), + ), + ); + + } + + +} + + + + + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} \ No newline at end of file diff --git a/lib/View/Createorder/Droplocation/Googlemap/Googlemapview.dart b/lib/View/Createorder/Droplocation/Googlemap/Googlemapview.dart new file mode 100644 index 0000000..8b0b3dc --- /dev/null +++ b/lib/View/Createorder/Droplocation/Googlemap/Googlemapview.dart @@ -0,0 +1,305 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; + +import '../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../Controller/Createorder/Drop/Googlemap/Googlemapcontroller.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; + + + +class DropGoogleMapView extends StatelessWidget { + final double lat; + final double long; + + DropGoogleMapView ({Key? key,required this.lat, required this.long,}) : super(key: key); + + DropGoogleMapsController googleMapController = Get.put(DropGoogleMapsController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + + elevation: 0.5, + backgroundColor: ColorConstants.primaryColor, + title: const Text( + 'Select Location', + style: TextStyle( + color: Colors.white, + ), + ), + ), + body: GetBuilder( + initState: (_){ + DropGoogleMapsController.currentLatitude =lat; + DropGoogleMapsController.currentLongitude =long; + DropGoogleMapsController.center = LatLng(DropGoogleMapsController.currentLatitude!, DropGoogleMapsController.currentLongitude!); + googleMapController.kGooglePlex = CameraPosition( + target: LatLng(DropGoogleMapsController.currentLatitude!, DropGoogleMapsController.currentLongitude!), + zoom: 14.4746, + ); + googleMapController.getCountry(); + }, + builder: (controller) { + return Container( + child: Column( + // fit: StackFit.loose, + children: [ + Container( + child: Row( + children: [ + Container( + width: MediaQuery.of(context).size.width, + color: Colors.white, + height: 60, + padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8), + child: TextField( + controller: controller.searchController, + decoration: InputDecoration( + suffixIcon: Icon(Icons.search), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.grey[300]!, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + labelText: 'Search', + labelStyle: TextStyle(color: Colors.black45)), + onChanged: (text) async { + if(text.isEmpty){ + controller.dropPredictions.clear(); + FocusScope.of(context).unfocus(); + controller.update(); + } + else { + controller + .onSearchDropTextChanged( + text); + } + }, + ), + ), + ], + )), + controller.dropPredictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + child: Obx(() { + return ListView.builder( + itemCount: controller.dropPredictions.length, + itemBuilder: (context, index) { + final prediction = + controller.dropPredictions[index]['description']; + return ListTile( + title: Text(prediction,style: TextStyle(color: ColorConstants.darkGreyColor),), + onTap: () { + final placeId = + controller.dropPredictions[index]['place_id']; + controller.getDropPlaceDetails(placeId,prediction); + googleMapController.searchController.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + Expanded( + flex: 7, + child: GoogleMap( + myLocationButtonEnabled: true, + myLocationEnabled: true, + mapType: MapType.normal, + initialCameraPosition: controller.kGooglePlex!, + markers: controller.markers, + onCameraMove: (position) { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + DropGoogleMapsController.center = position.target; + controller.update(); + print('positionsssprint$position'); + onAddMarkerButtonPressed(DropGoogleMapsController.center!); + // Update the markers for the updated position.zoom + }, + onCameraIdle: () async { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + await controller.getAddressFromLatLong( + DropGoogleMapsController.center!.latitude, DropGoogleMapsController.center!.longitude); + controller.update(); + print("addressOnCameraIdle${controller.address}"); + + onAddMarkerButtonPressed(DropGoogleMapsController.center!); + }, + onTap: (latLong) async { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + DropGoogleMapsController.center = latLong; + print('_lastMapPosition${DropGoogleMapsController.center}'); + await controller.getAddressFromLatLong( + DropGoogleMapsController.center!.latitude, DropGoogleMapsController.center!.longitude); + print('address${controller.address}'); + controller.update(); + onAddMarkerButtonPressed(DropGoogleMapsController.center!); + }, + onMapCreated: (GoogleMapController controllers) { + controller.mapController = controllers; + controller.controllers.complete(controllers); + }, + ), + ), + ], + ), + ); + } + ), + floatingActionButton: FloatingActionButton( + onPressed: () async { + if (googleMapController.markers.length >= 1) { + googleMapController.markers.clear(); + } + googleMapController.getAddressFromLatLong( + lat, long); + DropGoogleMapsController.center = LatLng(lat,long); + googleMapController.markers.add( + Marker( + markerId: MarkerId(DropGoogleMapsController.center.toString()), + position: DropGoogleMapsController.center!, + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + DropGoogleMapsController.center = latLong; + await googleMapController.getAddressFromLatLong( + latLong.latitude, latLong.longitude); + googleMapController.update(); + }, + onDrag: (latLong) { + DropGoogleMapsController.center = latLong; + googleMapController.update(); + }, + infoWindow: InfoWindow( + title: 'My Location', + ), + icon: BitmapDescriptor.defaultMarker, + ), + ); + googleMapController.kGooglePlex = CameraPosition( + target: LatLng(lat, long), + zoom: 14.4746, + ); + googleMapController.goToThePosition(googleMapController.kGooglePlex); + googleMapController.update(); + print("addressOnCameraIdle${googleMapController.address}"); + // _onAddMarkerButtonPressed(_center!); + }, + child: Icon(Icons.refresh, color: Colors.white)), + floatingActionButtonLocation: FloatingActionButtonLocation.startFloat, + bottomNavigationBar: GetBuilder( + builder: (controller) { + return Container( + height: 120, + color: Colors.white, + padding: EdgeInsets.all(8), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children: [ + Icon(Icons.location_on), + SizedBox( + width: 10, + ), + Expanded( + child: Text( + controller.dropAddressController.text??'', + maxLines: 2, + softWrap: true, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + SizedBox( + height: 8, + ), + Container( + height: 50, + margin: EdgeInsets.only(left: 15,right: 15), + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + borderRadius: BorderRadius.circular(20), + ), + child: InkWell( + onTap: () { + createOrderController.dropCityController.text = controller.dropCityController.text; + createOrderController.dropStateController.text = controller.dropStateController.text ; + createOrderController.dropSuburbController.text = controller.dropSuburbController.text ; + createOrderController.dropPostcodeController.text = controller.dropPostcodeController.text ; + createOrderController.dropAddressController.text = controller.dropAddressController.text ; + createOrderController.dropAddressController.text = controller.toAddress??''; + createOrderController.toLatitude = controller.toLatitude; + createOrderController.toLongitude = controller.toLongitude; + print('dropAddressControllergooglemap ${controller.dropAddressController.text}'); + controller.update(); + Navigator.pop(context); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Continue', + style: TextStyle(color: Colors.white), + ), + ], + ), + ), + ) + ], + ), + ); + } + ), + ); + } + + onAddMarkerButtonPressed(latLong) { + googleMapController.update(); + googleMapController.markers.add( + Marker( + markerId: MarkerId(DropGoogleMapsController.center.toString()), + position: DropGoogleMapsController.center!, + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + DropGoogleMapsController.center = latLong; + googleMapController.address = googleMapController.getAddressFromLatLong( + latLong.latitude, latLong.longitude); + googleMapController.update(); + }, + onDrag: (latLong) { + DropGoogleMapsController.center = latLong; + googleMapController.update(); + }, + infoWindow: InfoWindow( + title: 'My Location', + // snippet: googleMapController.address, + + ), + icon: BitmapDescriptor.defaultMarker, + ), + ); + } + +} diff --git a/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Addcustomer/Addcustomerview.dart b/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Addcustomer/Addcustomerview.dart new file mode 100644 index 0000000..9c096d6 --- /dev/null +++ b/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Addcustomer/Addcustomerview.dart @@ -0,0 +1,376 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import '../../../../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../../../Helper/custombutton.dart'; +import '../../../../../../../Helper/customederaction.dart'; + + +class AddCustomerView extends StatelessWidget { + AddCustomerView({super.key}); + + AddDropCustomerController addDropCustomerController = Get.put(AddDropCustomerController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_){ + addDropCustomerController.getLocation(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: InkWell( + onTap: (){ + Get.back(); + }, + child: Icon(Icons.reply,size: 30,)), + title: Row( + children: [ + Text('Create customer',), + ], + ), + titleSpacing: 0, + ), + body: Column( + children: [ + Expanded( + flex: 9, + child: Container( + height: Get.height, + width: Get.width, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: 15, + ), + Expanded( + // height: Get.height, + child: ListView( + children: [ + Container( + height: Get.height * 1.1, + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + children: [ + Column( + children: [ + customerFirstName(), + SizedBox( + height: 15, + ), + // CustomerLastName(), + // SizedBox( + // height: 15, + // ), + Container( + height: 55, + child: contactNo(Get.context), + ), + SizedBox( + height: 15, + ), + Column( + children: [ + Row( + children: [ + Icon(Icons.location_on,size: 20,color: ColorConstants.primaryColor,), + SizedBox(width: 5,), + Text("Address",style: TextStyle(color: Colors.grey[600],fontSize: 15),), + // Spacer(), + // InkWell( + // onTap: () async{ + // if (controller.resultPosition != null) { + // var locationResult = await + // Get.to(CustomerMap(lat: controller.resultPosition!.latitude, long: controller.resultPosition!.longitude)); + // if (locationResult != null) { + // controller.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon( + // Icons.location_on_outlined, + // color: Colors.red, + // size: 32, + // )), + + ], + ), + SizedBox(height: 8,), + address(), + ], + ), + SizedBox( + height: 15, + ), + doorNo(), + SizedBox( + height: 15, + ), + landmark(), + ], + ), + ], + ), + ), + ), + ], + ), + ), + ], + )), + ), + ], + ), + bottomNavigationBar: Container( + height: Get.height*0.08, + child: submit(), + ), + ); + } + ); + } + + customerFirstName(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Name', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: addDropCustomerController.customerFirstNameController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + customerLastName(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'LastName', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: addDropCustomerController.customerLastNameController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + contactNo(context) { + return GetBuilder( + builder: (controller) { + return TextFormField( + enabled: true, + maxLength: 10, + + keyboardType: + TextInputType.numberWithOptions(signed: true, decimal: true), + controller: controller.customerPhoneController, + onChanged: (value){ + if(value.length==10){ + FocusScope.of(context).unfocus(); + + } + }, + onTap: () async { + }, + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Mobile no', + prefixIcon: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: Get.width * 0.3, + height: Get.height * 0.04, + child: Row( + children: [ + Spacer(flex: 1,), + Flexible( + child: Icon( + Icons.call, + color: ColorConstants.primaryColor, + ), + ), + Spacer(flex: 1,), + Flexible(flex: 3,child: Text("+${controller.selectedDialogCountry.phoneCode}",style: TextStyle(color: ColorConstants.primaryColor,fontWeight: FontWeight.bold))), + ], + ), + ), + ], + ),), + + ); + } + ); + } + + address() { + return Column( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + // onTap: () async{ + // if (addCustomerController.resultPosition != null) { + // var locationResult = await Get.to(CustomerMap(lat: addCustomerController.resultPosition!.latitude, long: addCustomerController.resultPosition!.longitude)); + // if (locationResult != null) { + // addCustomerController.setLocationValues(locationResult); + // } + // } + // }, + + onChanged: (text) => addDropCustomerController.onSearchTextChanged(text), + + decoration: CustomDecoration.textFieldStyle(), + + maxLines: 2, + controller: addDropCustomerController.addressController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ), + SizedBox(height: 8,), + + addDropCustomerController.predictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width*0.90, + decoration: BoxDecoration(color: Colors.grey[100],borderRadius: BorderRadius.circular(10)), + child: Obx(() { + return ListView.builder( + itemCount: addDropCustomerController.predictions.length, + itemBuilder: (context, index) { + final prediction = + addDropCustomerController.predictions[index]['description']; + return ListTile( + title: Text(prediction), + onTap: () { + final placeId = + addDropCustomerController.predictions[index]['place_id']; + addDropCustomerController.getPlaceDetails(placeId,prediction); + addDropCustomerController.predictions.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox() + + ], + ); + + } + + doorNo(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + // keyboardType: TextInputType.numberWithOptions(signed: true, decimal: true), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Door / Flat number', + prefixIcon: Icon( + Icons.door_front_door_outlined, + color: ColorConstants.primaryColor, + )), + controller: addDropCustomerController.doorNoController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + landmark(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Landmark', + prefixIcon: Icon( + Icons.location_on_rounded, + color: ColorConstants.primaryColor, + )), + controller: addDropCustomerController.landMarkController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + submit() { + return Padding( + padding: EdgeInsets.only(top: 0,bottom: 5,left: 20,right: 20), + child: Center( + child: RoundedButton( + onPressed: () { + addDropCustomerController.describeValidation(); + + }, + color:ColorConstants.primaryColor!, + title: 'Create', + controller: addDropCustomerController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + ); + } +} + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} \ No newline at end of file diff --git a/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart b/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart new file mode 100644 index 0000000..3913956 --- /dev/null +++ b/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart @@ -0,0 +1,727 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart'; +import '../../../../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../../../Helper/custombutton.dart'; +import '../../../../../../../Helper/customederaction.dart'; +import '../../../../../../../Helper/toast.dart'; +import '../../../../../../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; +import '../../../../../../../Model/Response/Getcustomeraddress/GetCustomerAddress.dart'; +import '../../../../../Createorderview.dart'; + + + + +class CustomerDropAddressView extends StatelessWidget { + final GetDropCustomerByTenantIdDetails? data; + + CustomerDropAddressView({super.key, this.data}); + + DropCustomerAddressController dropCustomerAddressController = Get.put(DropCustomerAddressController()); + + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: Padding( + padding: const EdgeInsets.all(5.0), + child:InkWell( + onTap: (){ + dropCustomerAddressController.deliveryAddressList = false; + Get.back(); + }, + child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), + ), + title: Text('Drop Address'), + titleSpacing: 0, + actions: [ + InkWell( + onTap: ()async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + dropCustomerAddressController.deliveryAddressList = true; + dropCustomerAddressController.addressController.clear(); + dropCustomerAddressController.suburbController.clear(); + dropCustomerAddressController.cityController.clear(); + dropCustomerAddressController.stateController.clear(); + dropCustomerAddressController.postCodeController.clear(); + dropCustomerAddressController.doornoController.clear(); + dropCustomerAddressController.landmarkController.clear(); + + dropCustomerAddressController.update(); + + }, + child: CircleAvatar( + radius: 20, + backgroundColor: ColorConstants.secondaryColor, + child: Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 25,)), + ), + SizedBox(width: 20,) + ], + + ), + backgroundColor: Colors.grey[100], + body: GetBuilder( + initState: (_){ + dropCustomerAddressController.loader = true; + dropCustomerAddressController.customerId =data?.customerid; + dropCustomerAddressController.customerName ="${data?.firstname}"+ "${data?.lastname}"; + dropCustomerAddressController.customerContactNo =data?.contactno; + dropCustomerAddressController.customerAddressInfo = data; + dropCustomerAddressController.getDetails(); + dropCustomerAddressController.getCustomerAddress(); + }, + builder: (controller) { + print("deliveryAddressListbool...............${controller.deliveryAddressList}"); + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 10,), + addAddress(), + Padding( + padding: EdgeInsets.only(left: 10, top: 10, bottom: 5), + child: Text( + "Select delivery address :", + style: TextStyle( + fontWeight: FontWeight.bold, + color: ColorConstants.primaryColor, + fontSize: 16), + textAlign: TextAlign.start, + )), + controller.deliveryAddressList == true + ? Expanded( + child: ListView( + children: [ + Column( + children: [ + SizedBox( + height: 20, + ), + addressWidget(), + SizedBox( + height: 10, + ), + suburb(), + SizedBox( + height: 10, + ), + city(), + SizedBox( + height: 10, + ), + state(), + SizedBox( + height: 10, + ), + postalCode(), + SizedBox( + height: 10, + ), + doorNo(), + SizedBox( + height: 10, + ), + landmark(), + ], + ) + ], + )) + : Expanded( + child: savedAddressDetailsList() + ), + SizedBox(height: 2), + controller.deliveryAddressList == true + ? submit() + : Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + + proceed(), + ], + ) + ], + ); + } + ), + // floatingActionButton:savedAddressController.deliveryAddressList == false + // ? FloatingActionButton( + // onPressed: () async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon( + // Icons.add, + // color: ColorConstants.secondaryColor, + // ), + // backgroundColor: ColorConstants.primaryColor, + // ):Container(), + + ); + } + + addAddress() { + return Padding( + padding: const EdgeInsets.only(top: 0,left: 10,right: 10), + child: Card( + elevation: 0, + surfaceTintColor: ColorConstants.secondaryColor, + child: Row( + children: [ + Container( + height: Get.height*0.12, + width: Get.width*0.3, + decoration: BoxDecoration(borderRadius: BorderRadius.circular(3),color: ColorConstants.primaryColor1), + child: Icon(Icons.delivery_dining,size: 55,color: ColorConstants.darkGreyColor), + ), + Container( + height: Get.height*0.12, + width: Get.width*0.6, + // decoration: BoxDecoration(borderRadius: BorderRadius.circular(10),color: ColorConstants.secondaryColor), + child: Padding( + padding: const EdgeInsets.only(top: 14,left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 25,), + SizedBox(width: 5,), + Expanded(child: Text('${data?.firstname} ${data?.lastname}',style:TextStyle(fontSize: 18,color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold),maxLines: 1,overflow: TextOverflow.ellipsis)), + ], + ), + // SizedBox(height: 4,), + // Row( + // children: [ + // Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + // SizedBox(width: 5,), + // Expanded(child: Padding( + // padding: const EdgeInsets.only(top: 5), + // child: Text('${data[0].address}',style:TextStyle(fontSize: 15,color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold),maxLines: 2,overflow: TextOverflow.ellipsis,), + // ),), + // ], + // ), + SizedBox(height: 7,), + + Row( + children: [ + Padding( + padding: const EdgeInsets.only(left: 5), + child: Icon(Icons.phone,color: ColorConstants.primaryColor,size: 25,), + ), + SizedBox(width: 5,), + Text('${data?.contactno}',style:TextStyle(fontSize: 18,color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold)), + ], + ), + + ], + ), + ), + ), + ], + ), + ), + ); + } + + addressWidget() { + return GetBuilder( + builder: (controller) { + return Column( + children: [ + Container( + padding: EdgeInsets.only(top: 0), + height: Get.height*0.08, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: + TextField( + style: TextStyle( + fontSize: 14,fontWeight: FontWeight.bold, + // color: Colors.grey[400], + ), + controller: controller.addressController, + onChanged: (text) => controller.onSearchTextChanged(text), + + decoration: InputDecoration( + prefixIcon:Icon( Icons.location_on,color: ColorConstants.primaryColor,) , + suffixIcon: InkWell( + onTap: (){ + controller.addressController.clear(); + controller.suburbController.clear(); + controller.cityController.clear(); + controller.stateController.clear(); + controller.postCodeController.clear(); + }, + child: Icon(Icons.close,color: Colors.red,)), + // suffixIcon: InkWell( + // onTap: ()async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon(Icons.edit,color: ColorConstants.primaryColor,)), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.grey[400]!, + width: 2, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: ColorConstants.primaryColor, + width: 2, + ), + ), + + labelText: 'Address', + labelStyle: TextStyle(color: ColorConstants.primaryColor)), + ), + + ), + SizedBox(height: 8,), + + controller.predictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Obx(() { + return ListView.builder( + itemCount: controller.predictions.length, + itemBuilder: (context, index) { + final prediction = + controller.predictions[index]['description']; + return ListTile( + title: Text(prediction), + onTap: () { + final placeId = + controller.predictions[index]['place_id']; + controller.getPlaceDetails(placeId,prediction); + controller.searchController.clear(); + controller.predictions.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + + ], + ); + + } + ); + } + + Widget suburb(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "Suburb", + prefixIcon: Icon( + Icons.location_on, + color: ColorConstants.primaryColor, + )), + controller:dropCustomerAddressController.suburbController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget city(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "City", + prefixIcon: Icon( + Icons.location_city, + color: ColorConstants.primaryColor, + )), + controller:dropCustomerAddressController.cityController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget state(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "State", + prefixIcon: Icon( + Icons.account_balance, + color: ColorConstants.primaryColor, + )), + controller:dropCustomerAddressController.stateController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget postalCode(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "PostCode", + prefixIcon: Icon( + Icons.local_post_office, + color: ColorConstants.primaryColor, + )), + controller:dropCustomerAddressController.postCodeController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget landmark(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "LandMark", + prefixIcon: Icon( + Icons.home, + color: ColorConstants.primaryColor, + )), + controller:dropCustomerAddressController.landmarkController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget doorNo(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "Doorno", + prefixIcon: Icon( + Icons.door_back_door, + color: ColorConstants.primaryColor, + )), + controller:dropCustomerAddressController.doornoController, + + // focusNode: individualNameNode, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + savedAddressDetailsList() { + return Padding( + padding: const EdgeInsets.only(top: 10,left: 20), + child: GetBuilder( + builder: (controller) { + return controller.getCustomeraddress.isEmpty && !controller.loader == true + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No delivery address available", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.loader?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): + + Container( + width: Get.width*0.90, + child: ListView.separated( + itemCount: controller.getCustomeraddress.length, + padding: EdgeInsets.only(top: 4), + itemBuilder: (BuildContext context, int index) { + return addressCard(controller.getCustomeraddress[index], index); + }, + separatorBuilder: (BuildContext context, int index) => + Container(height: 8, color: Colors.grey[100]), + ), + // color: Colors.white, + + ); + } + ), + ); + } + + addressCard(CustomerAddressDetail models, int index) { + return GetBuilder( + builder: (controller) { + return InkWell( + onTap: (){ + controller.selectedAddressIndex = index; + controller.locationId = models.locationid!; + controller.address = models.address??''; + controller.addressController.text =models.address!; + controller.latitude = models.latitude; + controller.longitude = models.longitude; + // controller.changeCustomeraddress.add(controller.mSelectedAddressIndex[index]); + controller.update(); + print('locationIdonChanged ${controller.locationId}'); + print('addressControlleronChanged ${controller.addressController.text}'); + print('addressControlleronChanged ${controller.selectedAddressIndex}'); + print('latitudeControlleronChanged ${ controller.latitude}'); + print('longitudeControlleronChanged ${ controller.longitude}'); + }, + child: Container( + padding: EdgeInsets.only(top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(5)), + child: ListTile( + // leading: Padding( + // padding: const EdgeInsets.fromLTRB(0, 8, 8, 8), + // child: Icon( + // Icons.my_location, + // size: 25, + // color: Colors.grey, + // ), + // ), + trailing: InkWell( + onTap: (){ + controller.selectedAddressIndex = index; + controller.locationId = models.locationid!; + controller.addressController.text =models.address!; + controller.latitude = models.latitude; + controller.longitude = models.longitude; + // controller.changeCustomeraddress.add(controller.mSelectedAddressIndex[index]); + controller.update(); + print('locationIdonChanged ${controller.locationId}'); + print('addressControlleronChanged ${controller.addressController.text}'); + print('addressControlleronChanged ${controller.selectedAddressIndex}'); + print('latitudeControlleronChanged ${ controller.latitude}'); + print('longitudeControlleronChanged ${ controller.longitude}'); + }, + child: CircleAvatar( + radius: 12, + backgroundColor:controller.selectedAddressIndex==index?Colors.green:Colors.grey[300], + child: Icon(Icons.check,color: ColorConstants.secondaryColor,size: 20), + ), + ), + title: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.location_city,size: 20,color: ColorConstants.primaryColor,), + SizedBox(width: 4,), + Text('${controller.getCustomeraddress[index].suburb}', + style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold,color: ColorConstants.darkGreyColor)), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 5), + child: Icon(Icons.location_on,size: 20,color: ColorConstants.primaryColor,), + ), + SizedBox(width: 4,), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Container( + width: Get.width*0.59, + child: Text('${controller.getCustomeraddress[index].address}', + maxLines: 3, + overflow: TextOverflow.ellipsis, + style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold,color: ColorConstants.darkGreyColor)), + ), + ), + ], + ), + ], + ), + ), + // color: Colors.white, + margin: EdgeInsets.only(bottom: 2)), + ); + } + ); + } + + submit() { + return Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 30), + child: Center( + child: RoundedButton( + onPressed: () { + dropCustomerAddressController.describeValidation(); + }, + color:ColorConstants.primaryColor, + title: 'Submit', + controller: dropCustomerAddressController.submitBtnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + + ), + ); + } + + proceed() { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 20,top: 10), + child: Center( + child: RoundedButton( + onPressed: () { + if(dropCustomerAddressController.selectedAddressIndex!=-1){ + dropCustomerAddressController.selectedAddressIndex =-1; + // Get.to(OrderDetailsView(data:data)); + dropCustomerAddressController.btnController.success(); + Get.to(CreateOrderView( dropData: data,isDashboard: false,)); + dropCustomerAddressController.btnController.reset(); + } + else{ + print('Please Select delivery address'); + Toast.showToast('Please Select delivery address',); + + dropCustomerAddressController.btnController.reset(); + } + dropCustomerAddressController.update(); + + }, + color:ColorConstants.primaryColor, + title: 'Proceed', + controller: dropCustomerAddressController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + + + )), + // Padding( + // padding: const EdgeInsets.only(top: 5,left: 20), + // child: FloatingActionButton( + // onPressed: () async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon( + // Icons.location_on, + // color: ColorConstants.secondaryColor, + // ), + // backgroundColor: ColorConstants.primaryColor, + // ), + // ) + ], + ); + } + +} diff --git a/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Tenantcustomerview.dart b/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Tenantcustomerview.dart new file mode 100644 index 0000000..0bdbb6a --- /dev/null +++ b/lib/View/Createorder/Droplocation/Tabs/Allcustomers/Tenantcustomers/Tenantcustomerview.dart @@ -0,0 +1,202 @@ +import 'package:alphabet_search_view/alphabet_search_view.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../../Helper/toast.dart'; +import '../../../../../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; +import '../../../../Createorderview.dart'; +import 'Addcustomer/Addcustomerview.dart'; + +class TenantDropCustomerView extends StatelessWidget { + TenantDropCustomerView({super.key}); + + TenantDropCustomerController tenantDropCustomerController = Get.put(TenantDropCustomerController()); + AddDropCustomerController addDropCustomerController = Get.put(AddDropCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + // DropCustomerAddressController dropCustomerAddressController = Get.put(DropCustomerAddressController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + body: GetBuilder( + initState: (_){ + tenantDropCustomerController.progress = true; + tenantDropCustomerController.getCustomerByTenantId(); + + }, + builder: (controller) { + return controller.getCustomerBytenantId.isEmpty && !controller.progress == true + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No customers at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.progress?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): Padding( + padding: const EdgeInsets.only(top: 5), + child: SafeArea( + bottom: false, + child: AlphabetSearchView.list( + decoration: AlphabetSearchDecoration.fromContext( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + withSearch: true, + context, + subtitleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor), + titleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor,), + letterHeaderTextStyle: TextStyle( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 40), + ), + list: controller.getCustomerBytenantId.map( + (e) => AlphabetSearchModel( + title: e.firstname.toString() + e.lastname.toString(), + subtitle: e.contactno.toString(), + data: e, + ), + ) + .toList(), + onItemTap: (_, index, item) { + // deliveryDetailsController.weightSelectedIndex = -1; + // deliveryDetailsController.paymentSelectedIndex = -1; + // deliveryDetailsController.timeSelectIndex = -1; + // deliveryDetailsController.weight = null; + // deliveryDetailsController.selectedDate = DateTime.now(); + // deliveryDetailsController.datetime = DateTime.now(); + // deliveryDetailsController.subCatName = null; + // deliveryDetailsController.tecNotes.clear(); + // deliveryDetailsController.payment =null; + // savedAddressController.deliveryAddressList = false; + // savedAddressController.mSelectedAddressIndex = -1; + // dropCustomerAddressController.selectedAddressIndex = -1; + + createOrderController.dropCustomerId = item.data.customerid; + createOrderController.dropCustomerName ="${item.data.firstname}" + "${item.data.lastname}"; + createOrderController.dropCustomerContactNo = item.data.contactno; + createOrderController.dropLocationId = item.data.deliverylocationid; + createOrderController.dropTenantLocationId = item.data.tenantlocationid; + createOrderController.toLatitude = item.data.latitude; + createOrderController.toLongitude = item.data.longitude; + createOrderController.toAddress = item.data.address; + if(createOrderController.pickupCustomerId == createOrderController.dropCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + Get.to(CreateOrderView(dropData:item.data, isDashboard: false,)); + + } + + + }, + buildItem: (_, index, item) { + print('dashboardgetCustomerBytenantId${controller.getCustomerBytenantId.length}'); + return Container( + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 14, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Text( + item.title, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_city,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Text( + '${item.data.suburb??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Expanded( + child: Text( + '${item.data.address??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + + ), + ), + ], + ), + ), + SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.phone,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Text( + item.subtitle!, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + ], + ), + ) + ], + ), + ), + ); + }, + ), + ), + ); + } + ), + ); + } +} diff --git a/lib/View/Createorder/Droplocation/Tabs/Dropcustomertabmainpage.dart b/lib/View/Createorder/Droplocation/Tabs/Dropcustomertabmainpage.dart new file mode 100644 index 0000000..b9ec949 --- /dev/null +++ b/lib/View/Createorder/Droplocation/Tabs/Dropcustomertabmainpage.dart @@ -0,0 +1,878 @@ + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/Logger.dart'; +import '../../../../Helper/toast.dart'; +import '../../../../Helper/utility.dart'; +import '../../Createorderview.dart'; + +// class DropCustomerTabView extends StatelessWidget { +// final int tabIndex; +// +// DropCustomerTabView({super.key, this.tabIndex = 0}); +// +// DropCustomerTabController dropCustomerTabController = Get.put(DropCustomerTabController()); +// AddDropCustomerController addDropCustomerController = Get.put(AddDropCustomerController()); +// +// +// @override +// Widget build(BuildContext context) { +// return GetBuilder( +// initState: (_){ +// if (tabIndex != 0) { +// print('tabindex ${tabIndex}'); +// dropCustomerTabController.tabIndex =tabIndex; +// } +// // orderMainController.tabIndex = tabIndex; +// dropCustomerTabController.tabController.index = tabIndex; +// dropCustomerTabController.tabController.addListener(() { +// if (!dropCustomerTabController.tabController.indexIsChanging) { +// // dropCustomerTabController.update(); +// dropCustomerTabController.tabIndex = dropCustomerTabController.tabController.index; +// } +// }); +// +// }, +// builder: (controller) { +// return Scaffold( +// backgroundColor: Colors.grey[100], +// appBar: AppBar( +// leading: Padding( +// padding: const EdgeInsets.all(5.0), +// child:InkWell( +// onTap: (){ +// +// Get.back(); +// }, +// child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), +// ), +// titleSpacing: 0, +// +// title: Row( +// children: [ +// Text("Drop address",style: TextStyle(color: ColorConstants.secondaryColor)), +// const Spacer(), +// InkWell( +// onTap: () { +// addDropCustomerController.customerFirstNameController.clear(); +// addDropCustomerController.customerLastNameController.clear(); +// addDropCustomerController.customerPhoneController.clear(); +// addDropCustomerController.addressController.clear() ; +// addDropCustomerController.doorNoController.clear() ; +// addDropCustomerController.landMarkController.clear() ; +// addDropCustomerController.predictions.clear(); +// Get.to(AddCustomerView()); +// }, +// child: Column( +// mainAxisAlignment: MainAxisAlignment.end, +// children: [ +// Padding( +// padding: EdgeInsets.only(bottom: 3,right: 0), +// child: Icon( +// Icons.person_add_alt_rounded, +// size: 35, +// color: Colors.white, +// ), +// ), +// ], +// ), +// ), +// const SizedBox(width: 10,) +// ], +// ), +// elevation: 0, +// backgroundColor: ColorConstants.primaryColor, +// automaticallyImplyLeading: false, +// +// // backwardsCompatibility: false, +// ), +// body: Stack( +// children: [ +// Column( +// mainAxisAlignment: MainAxisAlignment.start, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// TabBar(tabs: controller.tabs,unselectedLabelColor: ColorConstants.primaryColor,indicatorColor: ColorConstants.primaryColor,indicatorSize: TabBarIndicatorSize.tab,labelColor: ColorConstants.primaryColor,controller: controller.tabController, ), +// Expanded( +// child: TabBarView( +// controller: controller.tabController, +// physics: const NeverScrollableScrollPhysics(), +// children: [ +// TenantDropCustomerView(), +// TenantDropTenantsView(), +// ], +// ), +// ), +// ], +// ), +// ], +// ), +// ); +// } +// ); +// } +// } + + +class DropCustomerView extends StatelessWidget { + DropCustomerView({super.key}); + + TenantDropCustomerController tenantDropCustomerController = Get.put(TenantDropCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + final ScrollController scrollController = ScrollController(); + + + @override + Widget build(BuildContext context) { + + void onScroll() { + double maxScroll = scrollController.position.maxScrollExtent; + double currentScroll = scrollController.position.pixels; + + if (maxScroll == currentScroll && tenantDropCustomerController.hasMore.value) { + tenantDropCustomerController.getCustomerData(); + } + } + + scrollController.addListener(onScroll); + + return Scaffold( + backgroundColor: Colors.grey[100], + appBar: AppBar( + leading: Padding( + padding: const EdgeInsets.all(5.0), + child:InkWell( + onTap: (){ + Get.back(); + }, + child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), + ), + titleSpacing: 0, + + title: Row( + children: [ + Text("Saved address",style: TextStyle(color: ColorConstants.secondaryColor)), + ], + ), + elevation: 0, + backgroundColor: ColorConstants.primaryColor, + automaticallyImplyLeading: false, + // backwardsCompatibility: false, + ), + body: GetBuilder( + initState: (_){ + tenantDropCustomerController.shimmer.value = true; + // tenantDropCustomerController.getCustomerByTenantId(); + // tenantDropCustomerController.getCustomerData(); + tenantDropCustomerController.refreshData(); + + }, + builder: (controller) { + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + padding: EdgeInsets.only(top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: TextField( + controller: controller.searchController, + textAlignVertical: TextAlignVertical.center, + // focusNode: controller.focusNode, + onChanged: (data){ + var keyword = data; + print('keyword................${keyword}'); + if(data.isNotEmpty) { + controller.shimmer.value = true; + controller.getSearchCustomerData(keyword); + } + else{ + controller.shimmer.value = true; + controller.refreshData(); + FocusScope.of(context).unfocus(); + } + controller.update(); + }, + decoration: InputDecoration( + prefixIcon: IconButton( + icon: const Icon(Icons.search), + color: Colors.grey[500]!, + onPressed: () { + + }, + ), + hintText: 'Search by customer', + hintStyle: TextStyle( + color: Colors.grey[500]!, + + + ), + suffixIcon: controller.searchController.text.isEmpty ? const SizedBox() : IconButton( + icon: const Icon(Icons.cancel), + color: Colors.grey[500]!, + onPressed: () { + controller.shimmer.value = true; + controller.refreshData(); + FocusScope.of(context).unfocus(); + }, + ), + border: InputBorder.none), + ), + ), + controller.getCustomerBytenantId.isEmpty && !controller.shimmer.value + ? Center( + heightFactor: 3.0, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No customers at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.shimmer.value?Center( + heightFactor: 15.0, + child: CircularProgressIndicator(color: ColorConstants.primaryColor)): + controller.shimmer.value? + queueShimmerCard(context): + Expanded( + child:controller.searchController.text.isEmpty? ListView.builder( + controller: scrollController, + itemCount: controller.hasMore.value + ? controller.getCustomerBytenantId.length + 1 + : controller.getCustomerBytenantId.length, + itemBuilder: (BuildContext context,int index) + { + if(index < controller.getCustomerBytenantId.length){ + return Padding( + padding: const EdgeInsets.only( + top: 10, + left: 10, + right: 10, + + ), + child: Stack( + children: [ + InkWell( + onTap:(){ + + createOrderController.dropCustomerId = controller.getCustomerBytenantId[index].customerid; + createOrderController.dropCustomerName = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.dropCustomerContactNo = controller.getCustomerBytenantId[index].contactno; + createOrderController.dropLandMark = controller.getCustomerBytenantId[index].landmark; + createOrderController.dropDoorNo = controller.getCustomerBytenantId[index].doorno; + createOrderController.dropLocationId = controller.getCustomerBytenantId[index].deliverylocationid; + createOrderController.dropTenantLocationId = controller.getCustomerBytenantId[index].tenantlocationid; + createOrderController.toLatitude = controller.getCustomerBytenantId[index].latitude; + createOrderController.toLongitude = controller.getCustomerBytenantId[index].longitude; + createOrderController.toAddress =controller.getCustomerBytenantId[index].address; + + createOrderController.dropAddressController.text = controller.getCustomerBytenantId[index].address??''; + createOrderController.dropContactNameController.text = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.dropContactNoController.text = controller.getCustomerBytenantId[index].contactno??''; + createOrderController.dropDoorNoController.text = controller.getCustomerBytenantId[index].doorno??''; + createOrderController.dropLandMarkController.text = controller.getCustomerBytenantId[index].landmark??''; + createOrderController.dropStateController.text = controller.getCustomerBytenantId[index].state ??''; + createOrderController.dropCityController.text = controller.getCustomerBytenantId[index].city??'' ; + createOrderController.dropSuburbController.text = controller.getCustomerBytenantId[index].suburb??''; + createOrderController.dropPostcodeController.text = controller.getCustomerBytenantId[index].postcode??'' ; + + logger.i (createOrderController.pickupCustomerId); + logger.i (createOrderController.dropCustomerId); + + if(createOrderController.dropCustomerId == createOrderController.pickupCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + createOrderController.dropSaveAddress = false; + Get.to(CreateOrderView(dropData:controller.getCustomerBytenantId[index], isDashboard: false,)); + + } + + }, + child: Container( + padding: const EdgeInsets.only( + right: 15 + ), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: const [ + BoxShadow(color: Colors.grey) + ], + borderRadius: + const BorderRadius.all(Radius.circular(3)), + ), + height: Get.height*0.15, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: UtilityPromotion + .getLightColors( + controller.getCustomerBytenantId[index].firstname == '' ?'': + controller.getCustomerBytenantId[index].firstname![0] + .toString() + ) + .withAlpha(100), + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 10,), + CircleAvatar( + backgroundColor: + Colors.white70, + radius: 28, + child: Text( + controller.getCustomerBytenantId[index].firstname == '' ?'': + controller.getCustomerBytenantId[index].firstname![0].toString().toUpperCase(), + style: const TextStyle( + color: Colors + .black54, + fontSize: 22), + )), + Spacer(), + Container( + padding: EdgeInsets.only(top: 5,bottom: 5,right: 5,left: 5), + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Center( + child: Text( + '${controller.getCustomerBytenantId[index].suburb}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ) + ], + ), + )), + const SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants + .primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Row( + children: [ + Text( + controller.getCustomerBytenantId[index].firstname ?? "", + style: TextStyle( + fontSize: 16, + color: Colors + .grey[600], + fontWeight: + FontWeight + .w600), + ), + ], + ), + + ], + ), + Row( + children: [ + Icon( + Icons.call, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Text( + '${controller.getCustomerBytenantId[index].contactno}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + ], + ), + Row( + children: [ + Icon( + Icons.location_on, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Text( + '${controller.getCustomerBytenantId[index].address}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + // SizedBox( + // height: 10, + // ), + ], + )), + ], + ), + ), + ), + + ], + ), + ); + } + else{ + return Padding( + padding: const EdgeInsets.all(15), + child: Center( + child: CircularProgressIndicator( + color: ColorConstants.primaryColor, + ), + ), + ); + } + } + ): + ListView.builder( + itemCount: controller.getCustomerBytenantId.length, + itemBuilder: (BuildContext context,int index) + { + return Padding( + padding: const EdgeInsets.only( + top: 10, + left: 10, + right: 10, + + ), + child: InkWell( + onTap: ()async{ + createOrderController.dropCustomerId = controller.getCustomerBytenantId[index].customerid; + createOrderController.dropCustomerName = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.dropCustomerContactNo = controller.getCustomerBytenantId[index].contactno; + createOrderController.dropLandMark = controller.getCustomerBytenantId[index].landmark; + createOrderController.dropDoorNo = controller.getCustomerBytenantId[index].doorno; + createOrderController.dropLocationId = controller.getCustomerBytenantId[index].deliverylocationid; + createOrderController.dropTenantLocationId = controller.getCustomerBytenantId[index].tenantlocationid; + createOrderController.toLatitude = controller.getCustomerBytenantId[index].latitude; + createOrderController.toLongitude = controller.getCustomerBytenantId[index].longitude; + createOrderController.toAddress =controller.getCustomerBytenantId[index].address; + + createOrderController.dropAddressController.text = controller.getCustomerBytenantId[index].address??''; + createOrderController.dropContactNameController.text = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.dropContactNoController.text = controller.getCustomerBytenantId[index].contactno??''; + createOrderController.dropDoorNoController.text = controller.getCustomerBytenantId[index].doorno??''; + createOrderController.dropLandMarkController.text = controller.getCustomerBytenantId[index].landmark??''; + createOrderController.dropStateController.text = controller.getCustomerBytenantId[index].state ??''; + createOrderController.dropCityController.text = controller.getCustomerBytenantId[index].city??'' ; + createOrderController.dropSuburbController.text = controller.getCustomerBytenantId[index].suburb??''; + createOrderController.dropPostcodeController.text = controller.getCustomerBytenantId[index].postcode??'' ; + + if(createOrderController.dropCustomerId == createOrderController.pickupCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + createOrderController.dropSaveAddress = false; + Get.to(CreateOrderView(dropData:controller.getCustomerBytenantId[index], isDashboard: false,)); + + } + }, + child: Stack( + children: [ + Container( + padding: const EdgeInsets.only( + right: 15 + ), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: const [ + BoxShadow(color: Colors.grey) + ], + borderRadius: + const BorderRadius.all(Radius.circular(3)), + ), + height: Get.height*0.15, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: UtilityPromotion + .getLightColors( + controller.getCustomerBytenantId[index].firstname![0] + .toString()) + .withAlpha(100), + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + SizedBox(height: 10,), + CircleAvatar( + backgroundColor: + Colors.white70, + radius: 28, + child: Text( + controller.getCustomerBytenantId[index].firstname == '' ?'': + controller.getCustomerBytenantId[index].firstname![0].toString().toUpperCase(), + style: const TextStyle( + color: Colors + .black54, + fontSize: 22), + )), + Spacer(), + Container( + padding: EdgeInsets.only(top: 5,bottom: 5,right: 5,left: 5), + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Center( + child: Text( + '${controller.getCustomerBytenantId[index].suburb}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ) + ], + ), + )), + const SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants + .primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Row( + children: [ + Text( + controller.getCustomerBytenantId[index].firstname ?? "", + style: TextStyle( + fontSize: 16, + color: Colors + .grey[600], + fontWeight: + FontWeight + .w600), + ), + ], + ), + ], + ), + Row( + children: [ + Icon( + Icons.call, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Text( + '${controller.getCustomerBytenantId[index].contactno}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + + ], + ), + Row( + children: [ + Icon( + Icons.location_on, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Text( + '${controller.getCustomerBytenantId[index].address}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + // SizedBox( + // height: 10, + // ), + ], + )), + ], + ), + ), + + ], + ), + ), + ); + } + ), + ), + ], + + ); + } + ), + ); + } + queueShimmerCard(BuildContext context) { + return Expanded( + child: ListView.builder( + itemCount: 6, + itemBuilder: (_, __) { + return Padding( + padding: const EdgeInsets.all(3.0), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Padding( + padding: const EdgeInsets.only( + top: 10, + left: 10, + right: 10, + + ), + child: InkWell( + onTap: ()async{ + + }, + child: Stack( + children: [ + Container( + padding: const EdgeInsets.only( + right: 15 + ), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: const [ + BoxShadow(color: Colors.grey) + ], + borderRadius: + const BorderRadius.all(Radius.circular(3)), + ), + height: Get.height*0.10, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + flex: 2, + child: Container( + padding: const EdgeInsets.all(5), + decoration: const BoxDecoration( + color:Colors.grey, + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + CircleAvatar( + backgroundColor: + Colors.white70, + radius: 28, + child: Text( + '', + style: TextStyle( + color: Colors + .black54, + fontSize: 22), + )), + ], + ), + )), + const SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants + .primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Row( + children: [ + Text( + "", + style: TextStyle( + fontSize: 16, + color: Colors + .grey[600], + fontWeight: + FontWeight + .w600), + ), + ], + ), + ], + ), + Row( + children: [ + Icon( + Icons.call, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Text( + '', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + const Spacer(), + + Text( + '', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + ], + ), + // SizedBox( + // height: 10, + // ), + ], + )), + ], + ), + ), + + ], + ), + ), + ), + ), + ); + }), + ); + } + +} diff --git a/lib/View/Createorder/Droplocation/Tabs/Tenants/Tenantsview.dart b/lib/View/Createorder/Droplocation/Tabs/Tenants/Tenantsview.dart new file mode 100644 index 0000000..a2502e4 --- /dev/null +++ b/lib/View/Createorder/Droplocation/Tabs/Tenants/Tenantsview.dart @@ -0,0 +1,206 @@ +import 'package:alphabet_search_view/alphabet_search_view.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../../Helper/toast.dart'; +import '../../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../../Controller/Dashboard/Drop/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../Model/Response/Customers/GetCustomerById/Getdropcustomerbytenantid.dart'; +import '../../../Createorderview.dart'; + +class TenantDropTenantsView extends StatelessWidget { + + TenantDropTenantsView({super.key,}); + + TenantDropCustomerController tenantDropCustomerController = Get.put(TenantDropCustomerController()); + AddDropCustomerController addDropCustomerController = Get.put(AddDropCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + // DropCustomerAddressController dropCustomerAddressController = Get.put(DropCustomerAddressController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + + body: GetBuilder( + initState: (_){ + tenantDropCustomerController.progress = true; + tenantDropCustomerController.getDropTenantByTenantId(); + + }, + builder: (controller) { + return controller.getCustomerBytenantId.isEmpty && !controller.progress == true + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + const SizedBox( + height: 8, + ), + Text( + "No customers at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.progress?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): Padding( + padding: const EdgeInsets.only(top: 5), + child: SafeArea( + bottom: false, + child: AlphabetSearchView.list( + decoration: AlphabetSearchDecoration.fromContext( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + withSearch: true, + context, + subtitleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor), + titleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor,), + letterHeaderTextStyle: TextStyle( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 40), + ), + list: controller.getCustomerBytenantId.map( + (e) => AlphabetSearchModel( + title: e.firstname.toString() + e.lastname.toString(), + subtitle: e.contactno.toString(), + data: e, + ), + ) + .toList(), + onItemTap: (_, index, item) { + // deliveryDetailsController.weightSelectedIndex = -1; + // deliveryDetailsController.paymentSelectedIndex = -1; + // deliveryDetailsController.timeSelectIndex = -1; + // deliveryDetailsController.weight = null; + // deliveryDetailsController.selectedDate = DateTime.now(); + // deliveryDetailsController.datetime = DateTime.now(); + // deliveryDetailsController.subCatName = null; + // deliveryDetailsController.tecNotes.clear(); + // deliveryDetailsController.payment =null; + // savedAddressController.deliveryAddressList = false; + // savedAddressController.mSelectedAddressIndex = -1; + // dropCustomerAddressController.selectedAddressIndex = -1; + + createOrderController.dropCustomerId = item.data.customerid; + createOrderController.dropCustomerName ="${item.data.firstname}" + "${item.data.lastname}"; + createOrderController.dropCustomerContactNo = item.data.contactno; + createOrderController.dropLocationId = item.data.deliverylocationid; + createOrderController.dropTenantLocationId = item.data.tenantlocationid; + createOrderController.toLatitude = item.data.latitude; + createOrderController.toLongitude = item.data.longitude; + createOrderController.toAddress = item.data.address; + print('dropTenantLocationIdTenantview ${createOrderController.dropTenantLocationId}'); + + if(createOrderController.pickupCustomerId == createOrderController.dropCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + Get.to(CreateOrderView(dropData:item.data, isDashboard: false,)); + + } + + + }, + buildItem: (_, index, item) { + print('dashboardgetCustomerBytenantId${controller.getCustomerBytenantId.length}'); + return Container( + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 14, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Text( + item.title, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + const SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_city,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Text( + '${item.data.suburb??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + const SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Expanded( + child: Text( + '${item.data.address??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + + ), + ), + ], + ), + ), + const SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.phone,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Text( + item.subtitle!, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + ], + ), + ) + ], + ), + ), + ); + }, + ), + ), + ); + } + ), + ); + } +} + diff --git a/lib/View/Createorder/Ordersuccess/Ordersuccessview.dart b/lib/View/Createorder/Ordersuccess/Ordersuccessview.dart new file mode 100644 index 0000000..55d22b1 --- /dev/null +++ b/lib/View/Createorder/Ordersuccess/Ordersuccessview.dart @@ -0,0 +1,1292 @@ +import 'dart:math'; + +import 'package:confetti/confetti.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:intl/intl.dart'; + +import '../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../Controller/Directionmap/Directionmapcontroller.dart'; +import '../../../Controller/Sucessreview/Sucessscreencontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/custombutton.dart'; +import '../../../Model/Response/Createorder/CreateOrderResponsemodel.dart'; +import '../../Home/Homeview.dart'; + +class OrderSuccessView extends StatelessWidget { + final OrderResponseDetails orderResponseDetails; + OrderSuccessView({super.key, required this.orderResponseDetails}); + + SuccessScreenController successScreenController = Get.put(SuccessScreenController()); + DirectionMapController directionMapController = Get.put(DirectionMapController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: () async { + Get.back(); + return false; + }, + child: Scaffold( + backgroundColor: ColorConstants.secondaryColor, + appBar: AppBar( + elevation: 0, + automaticallyImplyLeading: false, + backgroundColor: ColorConstants.primaryColor, + title: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + InkWell( + onTap: () { + Get.back(); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.secondaryColor, + size: 25, + ), + ), + const SizedBox( + width: 10, + ), + Text('Order details', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + color: ColorConstants.secondaryColor, + fontFamily: "Inter", + )), + Spacer(), + // Row( + // children: [ + // Text( + // DateFormat("dd-MMM-yyyy").format(DateFormat("yyyy-MM-dd HH:mm:ss", "en_US").parse(orderResponseDetails.orderdate??'')), + // style: const TextStyle( + // fontSize: 14, + // fontWeight: + // FontWeight + // .w700), + // ), + // ], + // ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('SMS delivery',style: TextStyle(color: ColorConstants.secondaryColor,fontWeight: FontWeight.bold,fontSize: 14),), + const SizedBox(width: 5,), + GetBuilder( + builder: (controller) { + return Switch(value: controller.smsSelected , + onChanged: (val){ + controller.smsSelected = val; + print('SwitchsmsSelected ${controller.smsSelected}'); + controller.update(); + }, + activeColor: ColorConstants.secondaryColor, + activeTrackColor: ColorConstants.primaryColor1, + inactiveTrackColor: ColorConstants.primaryColor1, + ); + } + ) + ], + ), + ], + ), + ), + body: ListView( + children: [ + GetBuilder( + initState: (_){ + createOrderController.distanceCalculation(); + createOrderController.calculateCharges(); + }, + builder: (controller) { + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + + // Column( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // GetBuilder( + // initState: (_){ + // successScreenController.confettiController.play(); + // }, + // builder: (controller) { + // return Center( + // child: ConfettiWidget( + // confettiController: controller.confettiController, + // blastDirectionality: BlastDirectionality.explosive, + // shouldLoop: true, + // colors: const [ + // Colors.green, + // Colors.blue, + // Colors.pink, + // Colors.orange, + // ColorConstants.primaryColor, + // ], + // createParticlePath: drawStar, + // ), + // ); + // } + // ), + // // CircleAvatar( + // // radius: 80, + // // backgroundColor: Colors.white, + // // child: Image.asset(AssetConstants.nearleAppbarDarkLogo,height: Get.height*0.25,), + // // ), + // // Lottie.asset('assets/successfull_anim.json', + // // repeat: true, + // // reverse: true, + // // animate: true, + // // width: 200, + // // height: 200, + // // fit: BoxFit.fill, + // // ), + // ], + // ), + const SizedBox( + height: 0, + ), + Container( + height: Get.height*0.42, + // width: Get.width*0.99, + // decoration: BoxDecoration(color: ColorConstants.secondaryColor,border: Border.all(color: ColorConstants.darkGreyColor!)), + child: GetBuilder( + initState: (_){ + print('pickupLatinitstatesuccess ${orderResponseDetails.pickuplat}'); + print('pickupLonginitstatesuccess ${orderResponseDetails.pickuplong}'); + print('dropLatinitstatesuccess ${orderResponseDetails.deliverylat}'); + print('dropLonginitstatesuccess ${orderResponseDetails.deliverylong}'); + + directionMapController.originLatitude = double.parse(orderResponseDetails.pickuplat.toString()); + directionMapController.originLongitude = double.parse(orderResponseDetails.pickuplong.toString()); + directionMapController.destLatitude = double.parse(orderResponseDetails.deliverylat.toString()); + directionMapController.destLongitude = double.parse(orderResponseDetails.deliverylong.toString()); + DirectionMapController.center = LatLng(double.parse(orderResponseDetails.pickuplat!), double.parse(orderResponseDetails.pickuplong!)); + + directionMapController.addMarker(LatLng(directionMapController.originLatitude??0.0, directionMapController.originLongitude??0.0), "origin", + BitmapDescriptor.defaultMarker); + directionMapController.addMarker(LatLng(directionMapController.destLatitude??0.0, directionMapController.destLongitude??0.0), "destination", + BitmapDescriptor.defaultMarkerWithHue(90)); + directionMapController.getPolyline(); + }, + builder: (controller) { + return GoogleMap( + initialCameraPosition: CameraPosition( + + target: LatLng(controller.originLatitude??0.0, controller.originLongitude??0.0), zoom: 12), + tiltGesturesEnabled: true, + compassEnabled: true, + scrollGesturesEnabled: true, + zoomGesturesEnabled: true, + onMapCreated: controller.onMapCreated, + trafficEnabled: true, + cameraTargetBounds: CameraTargetBounds.unbounded, + zoomControlsEnabled: true, + buildingsEnabled: true, + indoorViewEnabled: true, + mapToolbarEnabled: true, + minMaxZoomPreference: MinMaxZoomPreference.unbounded, + + onCameraMove: (position) { + DirectionMapController.center = position.target; + controller.update(); + + }, + onCameraIdle: () async { + + }, + markers: Set.of(controller.markers.values), + polylines: Set.of(controller.polylines.values), + ); + } + ), + ), + // Column( + // mainAxisAlignment: MainAxisAlignment + // .start, + // crossAxisAlignment: CrossAxisAlignment + // .start, + // children: [ + // Row( + // children: [ + // Padding( + // padding: const EdgeInsets + // .only( + // top: 15, left: 15), + // child: Text( + // 'Approximate Charges : ', + // style: TextStyle( + // color: ColorConstants + // .primaryColor, + // fontSize: 14, + // fontWeight: FontWeight + // .bold),), + // ), + // + // ], + // ), + // Row( + // children: [ + // Padding( + // padding: const EdgeInsets + // .only(left: 25), + // child: Card( + // elevation: 0, + // child: Container( + // height: Get.height * + // 0.14, + // width: Get.width * + // 0.2, + // decoration: BoxDecoration( + // color: ColorConstants + // .secondaryColor, + // borderRadius: BorderRadius + // .circular( + // 10)), + // child: Column( + // children: [ + // const SizedBox( + // height: 10,), + // CircleAvatar( + // radius: 25, + // backgroundColor: ColorConstants + // .primaryColor, + // child: CircleAvatar( + // radius: 20, + // backgroundColor: ColorConstants + // .secondaryColor, + // child: CircleAvatar( + // radius: 15, + // backgroundColor: ColorConstants + // .primaryColor, + // child: Icon( + // Icons + // .location_on, + // size: 20, + // color: ColorConstants + // .secondaryColor,), + // + // ), + // ), + // ), + // const SizedBox( + // height: 5,), + // Text( + // '${createOrderController + // .distanceKm} km', + // style: TextStyle( + // color: ColorConstants + // .darkGreyColor, + // fontSize: 16, + // fontWeight: FontWeight + // .bold), + // maxLines: 1, + // overflow: TextOverflow + // .ellipsis,), + // + // ], + // ), + // ), + // ), + // ), + // Padding( + // padding: const EdgeInsets + // .only(left: 10), + // child: Card( + // elevation: 0, + // child: Container( + // height: Get.height * + // 0.14, + // width: Get.width * + // 0.2, + // decoration: BoxDecoration( + // color: ColorConstants + // .secondaryColor, + // borderRadius: BorderRadius + // .circular( + // 10)), + // child: Column( + // children: [ + // const SizedBox( + // height: 10,), + // CircleAvatar( + // radius: 25, + // backgroundColor: ColorConstants + // .primaryColor, + // child: CircleAvatar( + // radius: 20, + // backgroundColor: ColorConstants + // .secondaryColor, + // child: CircleAvatar( + // radius: 15, + // backgroundColor: ColorConstants + // .primaryColor, + // child: Icon( + // Icons + // .currency_rupee, + // size: 20, + // color: ColorConstants + // .secondaryColor,), + // + // ), + // ), + // ), + // const SizedBox( + // height: 5,), + // Text( + // '₹ ${createOrderController.totalDeliveryAmount }', + // style: TextStyle( + // color: ColorConstants + // .darkGreyColor, + // fontSize: 16, + // fontWeight: FontWeight + // .bold), + // maxLines: 1, + // overflow: TextOverflow + // .ellipsis,), + // ], + // ), + // ), + // ), + // ), + // ], + // ), + // + // Padding( + // padding: const EdgeInsets + // .only(top: 0, + // left: 15, + // right: 10), + // child: Text( + // '* Actual delivery charges will be calculated at the time of delivery.', + // style: TextStyle( + // color: ColorConstants + // .darkGreyColor, + // fontSize: 13, + // fontWeight: FontWeight + // .bold),), + // ), + // const Divider(color: Colors.grey,thickness: 2), + // Padding( + // padding: const EdgeInsets + // .only( + // top: 0, left: 15), + // child: Text( + // 'Select Payment method : ', + // style: TextStyle( + // color: ColorConstants + // .primaryColor, + // fontSize: 14, + // fontWeight: FontWeight + // .bold),), + // ), + // const SizedBox(height: 15,), + // Container( + // height: Get.height*0.12, + // width: Get.width*0.80, + // child: GetBuilder( + // builder: (controller) { + // return ListView.builder( + // scrollDirection: Axis + // .horizontal, + // itemCount: controller + // .paymentMethod + // .length, + // itemBuilder: ( + // BuildContext context, + // int index) { + // return InkWell( + // onTap: () { + // controller.paymentSelectedIndex = index; + // controller.payment = controller.paymentMethod[index]['Paymentmethod']; + // print('paymentRange${controller.payment}'); + // controller.update(); + // // Get.back(); + // }, + // child: Padding( + // padding: const EdgeInsets + // .only( + // left: 25), + // child: Column( + // children: [ + // CircleAvatar( + // radius: 30, + // backgroundColor: controller + // .paymentSelectedIndex == + // index + // ? Colors + // .green + // : Colors + // .grey[400], + // child: CircleAvatar( + // radius: 25, + // backgroundColor: ColorConstants + // .secondaryColor, + // child: CircleAvatar( + // radius: 20, + // backgroundColor: controller + // .paymentSelectedIndex == + // index + // ? Colors + // .green + // : Colors + // .grey[400], + // child: controller + // .paymentMethod[index]['icon'], + // ), + // ), + // ), + // const SizedBox( + // height: 10,), + // Text( + // '${controller + // .paymentMethod[index]['Paymentmethod']}', + // style: TextStyle( + // color: ColorConstants + // .primaryColor, + // fontSize: 16, + // fontWeight: FontWeight + // .bold), + // maxLines: 1, + // overflow: TextOverflow + // .ellipsis,), + // + // ], + // ), + // ), + // ); + // }); + // } + // ), + // ), + // const Divider(color: Colors.grey,thickness: 2), + // Padding( + // padding: const EdgeInsets.only(left: 15,top: 0), + // child: Column( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Text('Fulfilment:',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 20,fontWeight: FontWeight.bold)), + // // const SizedBox(height: 5,), + // Row( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Text('SMS required to complete this delivery',style: TextStyle(color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold,fontSize: 16),), + // const SizedBox(width: 5,), + // GetBuilder( + // builder: (controller) { + // return Switch(value: controller.smsSelected , + // onChanged: (val){ + // controller.smsSelected = val; + // print('SwitchsmsSelected ${controller.smsSelected}'); + // controller.update(); + // }, + // activeColor: ColorConstants.primaryColor,); + // } + // ) + // ], + // ), + // ], + // ), + // ), + // + // ], + // ), + + Padding( + padding: const EdgeInsets.only(left: 0), + child: Card( + color: ColorConstants.primaryColor1, + // Utility.getLightColors(controller.getOrderAllList[index].tenantname![0]).withAlpha(100), + elevation: 0, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(10), + // ), + child: SizedBox( + height: Get.height*0.18, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + // mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 12,bottom: 0), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + child: Column( + children: [ + Text( + DateFormat("dd").format(DateFormat("yyyy-MM-dd HH:mm:ss", "en_US").parse(orderResponseDetails.orderdate??'')), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + const SizedBox( + height: 2, + ), + Text( + DateFormat("MMM").format(DateFormat("yyyy-MM-dd HH:mm:ss", "en_US").parse(orderResponseDetails.orderdate??'')), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + ], + ), + ), + + Column( + children: [ + const SizedBox( + width: 10, + ), + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 0,bottom: 5), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + // radius: 22, + // backgroundColor: Colors.white70, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + DateFormat("hh:mm").format(DateFormat("yyyy-mm-dd HH:mm:ss", "en_US").parse(orderResponseDetails.deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + Text( + DateFormat("a").format(DateFormat("yyyy-mm-dd HH:mm:ss", "en_US").parse(orderResponseDetails.deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + ], + ), + ), + const SizedBox(height: 5,) + ], + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + + Expanded( + flex: 4, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20), + const SizedBox(width: 5,), + Expanded( + child: Text( + '${orderResponseDetails.pickupcustomer??''}', + style: const TextStyle( + color: Colors.black87, fontSize: 16), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 4,) + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.location_on_rounded, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${orderResponseDetails.pickupsuburb??''}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ), + + + const SizedBox( + width: 8, + ), + ], + ), + const SizedBox( + height:5, + ), + // Row( + // children: [ + // Container( + // padding: EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + // decoration: BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.circular(10)), + // child: Row( + // children: [ + // Text('${orderResponseDetails.orderid??''}',style: TextStyle(color: ColorConstants.secondaryColor,fontSize: 12),) + // ], + // ), + // ), + // ], + // ), + // const SizedBox( + // height:5, + // ), + Row( + children: [ + Icon( + Icons.person, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${orderResponseDetails.deliverycustomer??''}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + const SizedBox( + height:5, + ), + + Row( + children: [ + Row( + children: [ + Icon( + Icons.location_on_rounded, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${orderResponseDetails.deliverysuburb??''}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + + SizedBox(width: 10,) + ], + ), + + + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ), + + Column( + mainAxisAlignment: MainAxisAlignment + .start, + crossAxisAlignment: CrossAxisAlignment + .start, + children: [ + Padding( + padding: const EdgeInsets + .only( + top: 2, left: 15), + child: Text( + 'Approximate charges : ', + style: TextStyle( + color: ColorConstants + .primaryColor, + fontSize: 16, + fontWeight: FontWeight + .bold),), + ), + const SizedBox(height: 5,), + Padding( + padding: const EdgeInsets.only(left: 15), + child: Row( + children: [ + Chip( + avatar:Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + label: Text( + '${controller + .distanceKms} km', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: FontWeight + .bold), + maxLines: 2, + overflow: TextOverflow + .ellipsis,),), + SizedBox(width: 10,), + Chip( + avatar:Icon(Icons.currency_rupee,color: ColorConstants.primaryColor,size: 20,), + label: Text( + '₹ ${controller + .totalDeliveryAmount }', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: FontWeight + .bold), + maxLines: 1, + overflow: TextOverflow + .ellipsis,), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets + .only(top: 5, + left: 5, + right: 5), + child: Text( + '* Actual delivery charges will be calculated at the time of delivery.', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 12, + fontWeight: FontWeight + .bold),), + ), + ], + ), + + + + createOrderController.paymentType == 0 ?Container():Column( + mainAxisAlignment: MainAxisAlignment + .start, + crossAxisAlignment: CrossAxisAlignment + .start, + children: [ + + Padding( + padding: const EdgeInsets + .only( + top: 8, left: 15), + child: Text( + 'Select Payment method : ', + style: TextStyle( + color: ColorConstants + .primaryColor, + fontSize: 16, + fontWeight: FontWeight + .bold),), + ), + const SizedBox(height: 8,), + SizedBox( + height: Get.height*0.04, + width: Get.width*0.6, + child: GetBuilder( + builder: (controller) { + return ListView.builder( + scrollDirection: Axis + .horizontal, + itemCount: controller + .paymentMethod + .length, + shrinkWrap: true, + itemBuilder: ( + BuildContext context, + int index) { + return InkWell( + onTap: () { + controller.paymentSelectedIndex = index; + controller.payment = controller.paymentMethod[index]['Paymentmethod']; + print('paymentRange${controller.payment}'); + controller.update(); + // Get.back(); + }, + child: Padding( + padding: const EdgeInsets + .only( + left: 20), + child: Row( + children: [ + Chip( + backgroundColor: controller + .paymentSelectedIndex == + index + ? Colors + .green + : Colors + .grey[300], + label: Text( + '${controller + .paymentMethod[index]['Paymentmethod']}', + style: TextStyle( + color: controller + .paymentSelectedIndex == + index + ? ColorConstants.secondaryColor + : ColorConstants.darkGreyColor, + fontSize: 14, + fontWeight: FontWeight + .bold), + maxLines: 2, + overflow: TextOverflow + .ellipsis,), + ) + ], + ), + + // Column( + // children: [ + // CircleAvatar( + // radius: 30, + // backgroundColor: controller + // .paymentSelectedIndex == + // index + // ? Colors + // .green + // : Colors + // .grey[400], + // child: CircleAvatar( + // radius: 25, + // backgroundColor: ColorConstants + // .secondaryColor, + // child: CircleAvatar( + // radius: 20, + // backgroundColor: controller + // .paymentSelectedIndex == + // index + // ? Colors + // .green + // : Colors + // .grey[400], + // child: controller + // .paymentMethod[index]['icon'], + // ), + // ), + // ), + // const SizedBox( + // height: 10,), + // Text( + // '${controller + // .paymentMethod[index]['Paymentmethod']}', + // style: TextStyle( + // color: ColorConstants + // .primaryColor, + // fontSize: 14, + // fontWeight: FontWeight + // .bold), + // maxLines: 2, + // overflow: TextOverflow + // .ellipsis,), + // + // ], + // ), + ), + ); + }); + } + ), + ), + // const Divider(color: Colors.grey,thickness: 2), + // Padding( + // padding: const EdgeInsets.only(left: 15,top: 0), + // child: Column( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Text('Fulfilment:',style: TextStyle(color: ColorConstants.primaryColor,fontSize: 16,fontWeight: FontWeight.bold)), + // // const SizedBox(height: 5,), + // Row( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Text('SMS required to complete this delivery',style: TextStyle(color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold,fontSize: 14),), + // const SizedBox(width: 5,), + // GetBuilder( + // builder: (controller) { + // return Switch(value: controller.smsSelected , + // onChanged: (val){ + // controller.smsSelected = val; + // print('SwitchsmsSelected ${controller.smsSelected}'); + // controller.update(); + // }, + // activeColor: ColorConstants.primaryColor,); + // } + // ) + // ], + // ), + // ], + // ), + // ), + + + ], + ) + + ], + ); + // Column( + // mainAxisAlignment: MainAxisAlignment.start, + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Stack( + // children: [ + // Container( + // margin: const EdgeInsets.only(bottom: 10.0), + // alignment: Alignment.centerLeft, + // height: 180.0, + // decoration: BoxDecoration( + // borderRadius: const BorderRadius.only( + // bottomLeft: Radius.elliptical(00, 8), + // bottomRight: Radius.elliptical(00, 8), + // ), + // color: ColorConstants.primaryColor1, + // ), + // child: Padding( + // padding: const EdgeInsets.only(bottom: 60,left: 20,top: 10), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.center, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Row( + // children: [ + // Icon(Icons.person,color: ColorConstants.primaryColor,size: 20), + // const SizedBox(width: 5,), + // Expanded( + // child: Text( + // '${orderResponseDetails.pickupcustomer??''}', + // style: const TextStyle( + // color: Colors.black87, fontSize: 16), + // maxLines: 1, + // overflow: TextOverflow.ellipsis, + // ), + // ), + // const SizedBox(width: 4,) + // ], + // ), + // const SizedBox( + // height:5, + // ), + // Row( + // children: [ + // Icon( + // Icons.location_on_rounded, + // size: 20, + // color: ColorConstants.primaryColor, + // ), + // const SizedBox( + // width: 5, + // ), + // Expanded( + // child: Padding( + // padding: const EdgeInsets.only(top: 5), + // child: Text( + // "${orderResponseDetails.pickupsuburb??''}", + // style: const TextStyle( + // color: Colors.black87, + // overflow: TextOverflow.visible, + // fontSize: 14), + // maxLines: 1, + // overflow: TextOverflow.ellipsis, + // ), + // ), + // ), + // + // + // const SizedBox( + // width: 8, + // ), + // ], + // ), + // const SizedBox( + // height:5, + // ), + // // Row( + // // children: [ + // // Container( + // // padding: EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + // // decoration: BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.circular(10)), + // // child: Row( + // // children: [ + // // Text('${orderResponseDetails.orderid??''}',style: TextStyle(color: ColorConstants.secondaryColor,fontSize: 12),) + // // ], + // // ), + // // ), + // // ], + // // ), + // // const SizedBox( + // // height:5, + // // ), + // Row( + // children: [ + // Icon( + // Icons.person, + // size: 20, + // color: ColorConstants.primaryColor, + // ), + // const SizedBox( + // width: 5, + // ), + // Padding( + // padding: const EdgeInsets.only(top: 5), + // child: Text( + // "${orderResponseDetails.deliverycustomer??''}", + // style: const TextStyle( + // color: Colors.black87, + // overflow: TextOverflow.visible, + // fontSize: 14), + // ), + // ), + // + // ], + // ), + // const SizedBox( + // height:5, + // ), + // + // Row( + // children: [ + // Row( + // children: [ + // Icon( + // Icons.location_on_rounded, + // size: 20, + // color: ColorConstants.primaryColor, + // ), + // const SizedBox( + // width: 5, + // ), + // Padding( + // padding: const EdgeInsets.only(top: 5), + // child: Text( + // "${orderResponseDetails.deliverysuburb??''}", + // style: const TextStyle( + // color: Colors.black87, + // overflow: TextOverflow.visible, + // fontSize: 14), + // ), + // ), + // + // ], + // ), + // + // SizedBox(width: 10,) + // ], + // ), + // + // + // ], + // ), + // ), + // //child: Image.asset("assets/bgImage.jpg"), + // ), + // Card( + // elevation: 0, + // borderOnForeground: false, + // semanticContainer: false, + // shape: RoundedRectangleBorder( + // side: BorderSide(color: ColorConstants.secondaryColor!, width: 1), + // borderRadius: BorderRadius.circular(0), + // ), + // margin: const EdgeInsets.only( + // left: 10, right: 10, top: 130), + // shadowColor: ColorConstants.secondaryColor, + // // color: ColorConstants.secondaryColor, + // // elevation: 2, + // child: SizedBox( + // // height:Get.height * 0.74, + // width: Get.width, + // child: Padding( + // padding: const EdgeInsets.only(top: 9), + // child: Column( + // children: [ + // + // ], + // ), + // ), + // ), + // ), + // ], + // ), + // ]); + } + ), + ], + ), + bottomNavigationBar: Container( + height: Get.height*0.08, + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 11,top: 0), + child: RoundedButton( + onPressed: () { + createOrderController.orderCreateDescribeValidation(); + + }, + color:ColorConstants.primaryColor, + title: 'Create', + controller: createOrderController.createBtnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ), + )), + ], + ), + ), + // Container( + // height: Get.height*0.08, + // decoration: BoxDecoration(color: ColorConstants.secondaryColor), + // child: Padding( + // padding: const EdgeInsets.only(top: 6), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Container( + // width: Get.width*0.80, + // height: Get.height*0.06, + // margin: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.circular(5)), + // child:InkWell( + // onTap: (){ + // Get.to(HomeView( + // selectedIndex: 0, + // )); + // }, + // child: Center( + // child: Text("Home", + // style: TextStyle( + // fontWeight: FontWeight.bold, + // fontSize: 16, + // color: ColorConstants + // .secondaryColor, + // fontFamily: "Inter")), + // ), + // ) , + // ), + // + // ], + // ), + // ), + // ), + ), + ); + } + + Path drawStar(Size size) { + // Method to convert degree to radians + double degToRad(double deg) => deg * (pi / 180.0); + const numberOfPoints = 5; + final halfWidth = size.width / 2; + final externalRadius = halfWidth; + final internalRadius = halfWidth / 2.5; + final degreesPerStep = degToRad(360 / numberOfPoints); + final halfDegreesPerStep = degreesPerStep / 2; + final path = Path(); + final fullAngle = degToRad(360); + path.moveTo(size.width, halfWidth); + for (double step = 0; step < fullAngle; step += degreesPerStep) { + path.lineTo(halfWidth + externalRadius * cos(step), + halfWidth + externalRadius * sin(step)); + path.lineTo(halfWidth + internalRadius * cos(step + halfDegreesPerStep), + halfWidth + internalRadius * sin(step + halfDegreesPerStep)); + } + path.close(); + return path; + } +} diff --git a/lib/View/Createorder/Pickuplocation/Googlemap/Googlemapview.dart b/lib/View/Createorder/Pickuplocation/Googlemap/Googlemapview.dart new file mode 100644 index 0000000..c7b43fb --- /dev/null +++ b/lib/View/Createorder/Pickuplocation/Googlemap/Googlemapview.dart @@ -0,0 +1,305 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; + +import '../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../Controller/Createorder/Pickup/Googlemap/Googlemapcontroller.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; + + + +class PickupGoogleMapView extends StatelessWidget { + final double lat; + final double long; + + PickupGoogleMapView ({Key? key,required this.lat, required this.long,}) : super(key: key); + + PickupGoogleMapsController googleMapController = Get.put(PickupGoogleMapsController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + + elevation: 0.5, + backgroundColor: ColorConstants.primaryColor, + title: const Text( + 'Select Location', + style: TextStyle( + color: Colors.white, + ), + ), + ), + body: GetBuilder( + initState: (_){ + PickupGoogleMapsController.currentLatitude =lat; + PickupGoogleMapsController.currentLongitude =long; + PickupGoogleMapsController.center = LatLng(PickupGoogleMapsController.currentLatitude!, PickupGoogleMapsController.currentLongitude!); + googleMapController.kGooglePlex = CameraPosition( + target: LatLng(PickupGoogleMapsController.currentLatitude!, PickupGoogleMapsController.currentLongitude!), + zoom: 14.4746, + ); + googleMapController.getCountry(); + }, + builder: (controller) { + return Container( + child: Column( + // fit: StackFit.loose, + children: [ + Container( + child: Row( + children: [ + Container( + width: MediaQuery.of(context).size.width, + color: Colors.white, + height: 60, + padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8), + child: TextField( + controller: controller.searchController, + decoration: InputDecoration( + suffixIcon: Icon(Icons.search), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.grey[300]!, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + labelText: 'Search', + labelStyle: TextStyle(color: Colors.black45)), + onChanged: (text) async { + if(text.isEmpty){ + controller.pickupPredictions.clear(); + FocusScope.of(context).unfocus(); + controller.update(); + } + else { + controller + .onSearchPickupTextChanged( + text); + } + }, + ), + ), + ], + )), + controller.pickupPredictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + child: Obx(() { + return ListView.builder( + itemCount: controller.pickupPredictions.length, + itemBuilder: (context, index) { + final prediction = + controller.pickupPredictions[index]['description']; + return ListTile( + title: Text(prediction,style: TextStyle(color: ColorConstants.darkGreyColor),), + onTap: () { + final placeId = + controller.pickupPredictions[index]['place_id']; + controller.getPickupPlaceDetails(placeId,prediction); + googleMapController.searchController.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + Expanded( + flex: 7, + child: GoogleMap( + myLocationButtonEnabled: true, + myLocationEnabled: true, + mapType: MapType.normal, + initialCameraPosition: controller.kGooglePlex!, + markers: controller.markers, + onCameraMove: (position) { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + PickupGoogleMapsController.center = position.target; + controller.update(); + print('positionsssprint$position'); + onAddMarkerButtonPressed(PickupGoogleMapsController.center!); + // Update the markers for the updated position.zoom + }, + onCameraIdle: () async { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + await controller.getAddressFromLatLong( + PickupGoogleMapsController.center!.latitude, PickupGoogleMapsController.center!.longitude); + controller.update(); + print("addressOnCameraIdle${controller.address}"); + + onAddMarkerButtonPressed(PickupGoogleMapsController.center!); + }, + onTap: (latLong) async { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + PickupGoogleMapsController.center = latLong; + print('_lastMapPosition${PickupGoogleMapsController.center}'); + await controller.getAddressFromLatLong( + PickupGoogleMapsController.center!.latitude, PickupGoogleMapsController.center!.longitude); + print('address${controller.address}'); + controller.update(); + onAddMarkerButtonPressed(PickupGoogleMapsController.center!); + }, + onMapCreated: (GoogleMapController controllers) { + controller.mapController = controllers; + controller.controllers.complete(controllers); + }, + ), + ), + ], + ), + ); + } + ), + floatingActionButton: FloatingActionButton( + onPressed: () async { + if (googleMapController.markers.length >= 1) { + googleMapController.markers.clear(); + } + googleMapController.getAddressFromLatLong( + lat, long); + PickupGoogleMapsController.center = LatLng(lat,long); + googleMapController.markers.add( + Marker( + markerId: MarkerId(PickupGoogleMapsController.center.toString()), + position: PickupGoogleMapsController.center!, + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + PickupGoogleMapsController.center = latLong; + await googleMapController.getAddressFromLatLong( + latLong.latitude, latLong.longitude); + googleMapController.update(); + }, + onDrag: (latLong) { + PickupGoogleMapsController.center = latLong; + googleMapController.update(); + }, + infoWindow: InfoWindow( + title: 'My Location', + ), + icon: BitmapDescriptor.defaultMarker, + ), + ); + googleMapController.kGooglePlex = CameraPosition( + target: LatLng(lat, long), + zoom: 14.4746, + ); + googleMapController.goToThePosition(googleMapController.kGooglePlex); + googleMapController.update(); + print("addressOnCameraIdle${googleMapController.address}"); + // _onAddMarkerButtonPressed(_center!); + }, + child: Icon(Icons.refresh, color: Colors.white)), + floatingActionButtonLocation: FloatingActionButtonLocation.startFloat, + bottomNavigationBar: GetBuilder( + builder: (controller) { + return Container( + height: 120, + color: Colors.white, + padding: EdgeInsets.all(8), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children: [ + Icon(Icons.location_on), + SizedBox( + width: 10, + ), + Expanded( + child: Text( + controller.pickupAddressController.text??'', + maxLines: 2, + softWrap: true, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + SizedBox( + height: 8, + ), + Container( + height: 50, + margin: EdgeInsets.only(left: 15,right: 15), + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + borderRadius: BorderRadius.circular(20), + ), + child: InkWell( + onTap: () { + createOrderController.pickupCityController.text = controller.pickupCityController.text; + createOrderController.pickupStateController.text = controller.pickupStateController.text ; + createOrderController.pickupSuburbController.text = controller.pickupSuburbController.text ; + createOrderController.pickupPostcodeController.text = controller.pickupPostcodeController.text ; + createOrderController.pickupAddressController.text = controller.pickupAddressController.text ; + createOrderController.pickupAddressController.text = controller.fromAddress??''; + createOrderController.fromLatitude = controller.fromLatitude; + createOrderController.fromLongitude = controller.fromLongitude; + print('pickupAddressControllergooglemap ${controller.pickupAddressController.text}'); + controller.update(); + Navigator.pop(context); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Continue', + style: TextStyle(color: Colors.white), + ), + ], + ), + ), + ) + ], + ), + ); + } + ), + ); + } + + onAddMarkerButtonPressed(latLong) { + googleMapController.update(); + googleMapController.markers.add( + Marker( + markerId: MarkerId(PickupGoogleMapsController.center.toString()), + position: PickupGoogleMapsController.center!, + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + PickupGoogleMapsController.center = latLong; + googleMapController.address = googleMapController.getAddressFromLatLong( + latLong.latitude, latLong.longitude); + googleMapController.update(); + }, + onDrag: (latLong) { + PickupGoogleMapsController.center = latLong; + googleMapController.update(); + }, + infoWindow: InfoWindow( + title: 'My Location', + // snippet: googleMapController.address, + + ), + icon: BitmapDescriptor.defaultMarker, + ), + ); + } + +} diff --git a/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Addcustomer/Addcustomerview.dart b/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Addcustomer/Addcustomerview.dart new file mode 100644 index 0000000..e2e14ed --- /dev/null +++ b/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Addcustomer/Addcustomerview.dart @@ -0,0 +1,378 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import '../../../../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../../../Helper/custombutton.dart'; +import '../../../../../../../Helper/customederaction.dart'; + + + +class AddCustomerView extends StatelessWidget { + AddCustomerView({super.key}); + + AddPickupCustomerController addPickupCustomerController = Get.put(AddPickupCustomerController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_){ + addPickupCustomerController.getLocation(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: InkWell( + onTap: (){ + Get.back(); + }, + child: Icon(Icons.reply,size: 30,)), + title: Row( + children: [ + Text('Create customer',), + ], + ), + titleSpacing: 0, + ), + body: Column( + children: [ + Expanded( + flex: 9, + child: Container( + height: Get.height, + width: Get.width, + color: Colors.white, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: 15, + ), + Expanded( + // height: Get.height, + child: ListView( + children: [ + Container( + height: Get.height * 1.1, + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Column( + children: [ + Column( + children: [ + customerFirstName(), + SizedBox( + height: 15, + ), + // CustomerLastName(), + // SizedBox( + // height: 15, + // ), + Container( + height: 55, + child: contactNo(Get.context), + ), + SizedBox( + height: 15, + ), + Column( + children: [ + Row( + children: [ + Icon(Icons.location_on,size: 20,color: ColorConstants.primaryColor,), + SizedBox(width: 5,), + Text("Address",style: TextStyle(color: Colors.grey[600],fontSize: 15),), + // Spacer(), + // InkWell( + // onTap: () async{ + // if (controller.resultPosition != null) { + // var locationResult = await + // Get.to(CustomerMap(lat: controller.resultPosition!.latitude, long: controller.resultPosition!.longitude)); + // if (locationResult != null) { + // controller.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon( + // Icons.location_on_outlined, + // color: Colors.red, + // size: 32, + // )), + + ], + ), + SizedBox(height: 8,), + address(), + ], + ), + SizedBox( + height: 15, + ), + doorNo(), + SizedBox( + height: 15, + ), + landmark(), + ], + ), + ], + ), + ), + ), + ], + ), + ), + ], + )), + ), + ], + ), + bottomNavigationBar: Container( + height: Get.height*0.08, + child: submit(), + ), + ); + } + ); + } + + customerFirstName(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Name', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: addPickupCustomerController.customerFirstNameController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + customerLastName(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'LastName', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: addPickupCustomerController.customerLastNameController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + contactNo(context) { + return GetBuilder( + builder: (controller) { + return TextFormField( + enabled: true, + maxLength: 10, + + keyboardType: + TextInputType.numberWithOptions(signed: true, decimal: true), + controller: controller.customerPhoneController, + onChanged: (value){ + if(value.length==10){ + FocusScope.of(context).unfocus(); + + } + }, + onTap: () async { + }, + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Mobile no', + prefixIcon: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: Get.width * 0.3, + height: Get.height * 0.04, + child: Row( + children: [ + Spacer(flex: 1,), + Flexible( + child: Icon( + Icons.call, + color: ColorConstants.primaryColor, + ), + ), + Spacer(flex: 1,), + Flexible(flex: 3,child: Text("+${controller.selectedDialogCountry.phoneCode}",style: TextStyle(color: ColorConstants.primaryColor,fontWeight: FontWeight.bold))), + ], + ), + ), + ], + ),), + + ); + } + ); + } + + address() { + return Column( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + // onTap: () async{ + // if (addCustomerController.resultPosition != null) { + // var locationResult = await Get.to(CustomerMap(lat: addCustomerController.resultPosition!.latitude, long: addCustomerController.resultPosition!.longitude)); + // if (locationResult != null) { + // addCustomerController.setLocationValues(locationResult); + // } + // } + // }, + + onChanged: (text) => addPickupCustomerController.onSearchTextChanged(text), + + decoration: CustomDecoration.textFieldStyle(), + + maxLines: 2, + controller: addPickupCustomerController.addressController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ), + SizedBox(height: 8,), + + addPickupCustomerController.predictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width*0.90, + decoration: BoxDecoration(color: Colors.grey[100],borderRadius: BorderRadius.circular(10)), + child: Obx(() { + return ListView.builder( + itemCount: addPickupCustomerController.predictions.length, + itemBuilder: (context, index) { + final prediction = + addPickupCustomerController.predictions[index]['description']; + return ListTile( + title: Text(prediction), + onTap: () { + final placeId = + addPickupCustomerController.predictions[index]['place_id']; + addPickupCustomerController.getPlaceDetails(placeId,prediction); + addPickupCustomerController.predictions.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox() + + ], + ); + + } + + doorNo(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + // keyboardType: TextInputType.numberWithOptions(signed: true, decimal: true), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Door / Flat number', + prefixIcon: Icon( + Icons.door_front_door_outlined, + color: ColorConstants.primaryColor, + )), + controller: addPickupCustomerController.doorNoController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + landmark(){ + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Landmark', + prefixIcon: Icon( + Icons.location_on_rounded, + color: ColorConstants.primaryColor, + )), + controller: addPickupCustomerController.landMarkController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + submit() { + return Padding( + padding: EdgeInsets.only(top: 0,bottom: 5,left: 20,right: 20), + child: Center( + child: RoundedButton( + onPressed: () { + addPickupCustomerController.describeValidation(); + + }, + color:ColorConstants.primaryColor!, + title: 'Create', + controller: addPickupCustomerController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + ); + } +} + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} \ No newline at end of file diff --git a/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart b/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart new file mode 100644 index 0000000..e826470 --- /dev/null +++ b/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Customeraddress/Customeraddressview.dart @@ -0,0 +1,728 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Customeraddresscontroller.dart'; +import '../../../../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../../../Helper/custombutton.dart'; +import '../../../../../../../Helper/customederaction.dart'; +import '../../../../../../../Helper/toast.dart'; +import '../../../../../../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../../../../../../../Model/Response/Getcustomeraddress/GetCustomerAddress.dart'; +import '../../../../../Createorderview.dart'; + + + + +class CustomerPickupAddressView extends StatelessWidget { + final GetCustomerByTenantIdDetails? data; + + + CustomerPickupAddressView({super.key, required this.data}); + + PickupCustomerAddressController pickupCustomerAddressController = Get.put(PickupCustomerAddressController()); + + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: Padding( + padding: const EdgeInsets.all(5.0), + child:InkWell( + onTap: (){ + pickupCustomerAddressController.deliveryAddressList = false; + Get.back(); + }, + child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), + ), + title: Text('Pickup Address'), + titleSpacing: 0, + actions: [ + InkWell( + onTap: ()async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + pickupCustomerAddressController.deliveryAddressList = true; + pickupCustomerAddressController.addressController.clear(); + pickupCustomerAddressController.suburbController.clear(); + pickupCustomerAddressController.cityController.clear(); + pickupCustomerAddressController.stateController.clear(); + pickupCustomerAddressController.postCodeController.clear(); + pickupCustomerAddressController.doornoController.clear(); + pickupCustomerAddressController.landmarkController.clear(); + + pickupCustomerAddressController.update(); + + }, + child: CircleAvatar( + radius: 20, + backgroundColor: ColorConstants.secondaryColor, + child: Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 25,)), + ), + SizedBox(width: 20,) + ], + + ), + backgroundColor: Colors.grey[100], + body: GetBuilder( + initState: (_){ + pickupCustomerAddressController.loader = true; + pickupCustomerAddressController.customerId =data?.customerid; + pickupCustomerAddressController.customerName ="${data?.firstname}"+ "${data?.lastname}"; + pickupCustomerAddressController.customerContactNo =data?.contactno; + pickupCustomerAddressController.customerAddressInfo = data; + pickupCustomerAddressController.getDetails(); + pickupCustomerAddressController.getCustomerAddress(); + }, + builder: (controller) { + print("deliveryAddressListbool...............${controller.deliveryAddressList}"); + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 10,), + addAddress(), + Padding( + padding: EdgeInsets.only(left: 10, top: 10, bottom: 5), + child: Text( + "Select delivery address :", + style: TextStyle( + fontWeight: FontWeight.bold, + color: ColorConstants.primaryColor, + fontSize: 16), + textAlign: TextAlign.start, + )), + controller.deliveryAddressList == true + ? Expanded( + child: ListView( + children: [ + Column( + children: [ + SizedBox( + height: 20, + ), + addressWidget(), + SizedBox( + height: 10, + ), + suburb(), + SizedBox( + height: 10, + ), + city(), + SizedBox( + height: 10, + ), + state(), + SizedBox( + height: 10, + ), + postalCode(), + SizedBox( + height: 10, + ), + doorNo(), + SizedBox( + height: 10, + ), + landmark(), + ], + ) + ], + )) + : Expanded( + child: savedAddressDetailsList() + ), + SizedBox(height: 2), + controller.deliveryAddressList == true + ? submit() + : Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + + proceed(), + ], + ) + ], + ); + } + ), + // floatingActionButton:savedAddressController.deliveryAddressList == false + // ? FloatingActionButton( + // onPressed: () async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon( + // Icons.add, + // color: ColorConstants.secondaryColor, + // ), + // backgroundColor: ColorConstants.primaryColor, + // ):Container(), + + ); + } + + addAddress() { + return Padding( + padding: const EdgeInsets.only(top: 0,left: 10,right: 10), + child: Card( + elevation: 0, + surfaceTintColor: ColorConstants.secondaryColor, + child: Row( + children: [ + Container( + height: Get.height*0.12, + width: Get.width*0.3, + decoration: BoxDecoration(borderRadius: BorderRadius.circular(3),color: ColorConstants.primaryColor1), + child: Icon(Icons.delivery_dining,size: 55,color: ColorConstants.darkGreyColor), + ), + Container( + height: Get.height*0.12, + width: Get.width*0.6, + // decoration: BoxDecoration(borderRadius: BorderRadius.circular(10),color: ColorConstants.secondaryColor), + child: Padding( + padding: const EdgeInsets.only(top: 14,left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 25,), + SizedBox(width: 5,), + Expanded(child: Text('${data?.firstname} ${data?.lastname}',style:TextStyle(fontSize: 18,color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold),maxLines: 1,overflow: TextOverflow.ellipsis)), + ], + ), + // SizedBox(height: 4,), + // Row( + // children: [ + // Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + // SizedBox(width: 5,), + // Expanded(child: Padding( + // padding: const EdgeInsets.only(top: 5), + // child: Text('${data[0].address}',style:TextStyle(fontSize: 15,color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold),maxLines: 2,overflow: TextOverflow.ellipsis,), + // ),), + // ], + // ), + SizedBox(height: 7,), + + Row( + children: [ + Padding( + padding: const EdgeInsets.only(left: 5), + child: Icon(Icons.phone,color: ColorConstants.primaryColor,size: 25,), + ), + SizedBox(width: 5,), + Text('${data?.contactno}',style:TextStyle(fontSize: 18,color: ColorConstants.darkGreyColor,fontWeight: FontWeight.bold)), + ], + ), + + ], + ), + ), + ), + ], + ), + ), + ); + } + + addressWidget() { + return GetBuilder( + builder: (controller) { + return Column( + children: [ + Container( + padding: EdgeInsets.only(top: 0), + height: Get.height*0.08, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: + TextField( + style: TextStyle( + fontSize: 14,fontWeight: FontWeight.bold, + // color: Colors.grey[400], + ), + controller: controller.addressController, + onChanged: (text) => controller.onSearchTextChanged(text), + + decoration: InputDecoration( + prefixIcon:Icon( Icons.location_on,color: ColorConstants.primaryColor,) , + suffixIcon: InkWell( + onTap: (){ + controller.addressController.clear(); + controller.suburbController.clear(); + controller.cityController.clear(); + controller.stateController.clear(); + controller.postCodeController.clear(); + }, + child: Icon(Icons.close,color: Colors.red,)), + // suffixIcon: InkWell( + // onTap: ()async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon(Icons.edit,color: ColorConstants.primaryColor,)), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.grey[400]!, + width: 2, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: ColorConstants.primaryColor, + width: 2, + ), + ), + + labelText: 'Address', + labelStyle: TextStyle(color: ColorConstants.primaryColor)), + ), + + ), + SizedBox(height: 8,), + + controller.predictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Obx(() { + return ListView.builder( + itemCount: controller.predictions.length, + itemBuilder: (context, index) { + final prediction = + controller.predictions[index]['description']; + return ListTile( + title: Text(prediction), + onTap: () { + final placeId = + controller.predictions[index]['place_id']; + controller.getPlaceDetails(placeId,prediction); + controller.searchController.clear(); + controller.predictions.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + + ], + ); + + } + ); + } + + Widget suburb(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "Suburb", + prefixIcon: Icon( + Icons.location_on, + color: ColorConstants.primaryColor, + )), + controller:pickupCustomerAddressController.suburbController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget city(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "City", + prefixIcon: Icon( + Icons.location_city, + color: ColorConstants.primaryColor, + )), + controller:pickupCustomerAddressController.cityController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget state(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "State", + prefixIcon: Icon( + Icons.account_balance, + color: ColorConstants.primaryColor, + )), + controller:pickupCustomerAddressController.stateController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget postalCode(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "PostCode", + prefixIcon: Icon( + Icons.local_post_office, + color: ColorConstants.primaryColor, + )), + controller:pickupCustomerAddressController.postCodeController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget landmark(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "LandMark", + prefixIcon: Icon( + Icons.home, + color: ColorConstants.primaryColor, + )), + controller:pickupCustomerAddressController.landmarkController, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + Widget doorNo(){ + return Container( + height: Get.height*0.07, + width: Get.width*0.9, + // decoration: BoxDecoration( + // color: secondaryColor, + // borderRadius: BorderRadius.circular(10), + // ), + child: TextFormField( + style: TextStyle(fontSize: 15,fontWeight: FontWeight.bold), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: "Doorno", + prefixIcon: Icon( + Icons.door_back_door, + color: ColorConstants.primaryColor, + )), + controller:pickupCustomerAddressController.doornoController, + + // focusNode: individualNameNode, + onEditingComplete: () { + var context = Get.context; + FocusScope.of(context!).requestFocus(FocusNode()); + }, + ), + ); + + } + + savedAddressDetailsList() { + return Padding( + padding: const EdgeInsets.only(top: 10,left: 20), + child: GetBuilder( + builder: (controller) { + return controller.getCustomeraddress.isEmpty && !controller.loader == true + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No delivery address available", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.loader?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): + + Container( + width: Get.width*0.90, + child: ListView.separated( + itemCount: controller.getCustomeraddress.length, + padding: EdgeInsets.only(top: 4), + itemBuilder: (BuildContext context, int index) { + return addressCard(controller.getCustomeraddress[index], index); + }, + separatorBuilder: (BuildContext context, int index) => + Container(height: 8, color: Colors.grey[100]), + ), + // color: Colors.white, + + ); + } + ), + ); + } + + addressCard(CustomerAddressDetail models, int index) { + return GetBuilder( + builder: (controller) { + return InkWell( + onTap: (){ + controller.selectedAddressIndex = index; + controller.locationId = models.locationid!; + controller.address = models.address??''; + controller.addressController.text =models.address!; + controller.latitude = models.latitude; + controller.longitude = models.longitude; + // controller.changeCustomeraddress.add(controller.mSelectedAddressIndex[index]); + controller.update(); + print('locationIdonChanged ${controller.locationId}'); + print('addressControlleronChanged ${controller.addressController.text}'); + print('addressControlleronChanged ${controller.selectedAddressIndex}'); + print('latitudeControlleronChanged ${ controller.latitude}'); + print('longitudeControlleronChanged ${ controller.longitude}'); + }, + child: Container( + padding: EdgeInsets.only(top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(5)), + child: ListTile( + // leading: Padding( + // padding: const EdgeInsets.fromLTRB(0, 8, 8, 8), + // child: Icon( + // Icons.my_location, + // size: 25, + // color: Colors.grey, + // ), + // ), + trailing: InkWell( + onTap: (){ + controller.selectedAddressIndex = index; + controller.locationId = models.locationid!; + controller.addressController.text =models.address!; + controller.latitude = models.latitude; + controller.longitude = models.longitude; + // controller.changeCustomeraddress.add(controller.mSelectedAddressIndex[index]); + controller.update(); + print('locationIdonChanged ${controller.locationId}'); + print('addressControlleronChanged ${controller.addressController.text}'); + print('addressControlleronChanged ${controller.selectedAddressIndex}'); + print('latitudeControlleronChanged ${ controller.latitude}'); + print('longitudeControlleronChanged ${ controller.longitude}'); + }, + child: CircleAvatar( + radius: 12, + backgroundColor:controller.selectedAddressIndex==index?Colors.green:Colors.grey[300], + child: Icon(Icons.check,color: ColorConstants.secondaryColor,size: 20), + ), + ), + title: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.location_city,size: 20,color: ColorConstants.primaryColor,), + SizedBox(width: 4,), + Text('${controller.getCustomeraddress[index].suburb}', + style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold,color: ColorConstants.darkGreyColor)), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 5), + child: Icon(Icons.location_on,size: 20,color: ColorConstants.primaryColor,), + ), + SizedBox(width: 4,), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Container( + width: Get.width*0.59, + child: Text('${controller.getCustomeraddress[index].address}', + maxLines: 3, + overflow: TextOverflow.ellipsis, + style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold,color: ColorConstants.darkGreyColor)), + ), + ), + ], + ), + ], + ), + ), + // color: Colors.white, + margin: EdgeInsets.only(bottom: 2)), + ); + } + ); + } + + submit() { + return Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 30), + child: Center( + child: RoundedButton( + onPressed: () { + pickupCustomerAddressController.describeValidation(); + }, + color:ColorConstants.primaryColor, + title: 'Submit', + controller: pickupCustomerAddressController.submitBtnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + + ), + ); + } + + proceed() { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 20,top: 10), + child: Center( + child: RoundedButton( + onPressed: () { + if(pickupCustomerAddressController.selectedAddressIndex!=-1){ + pickupCustomerAddressController.selectedAddressIndex =-1; + // Get.to(OrderDetailsView(data:data)); + pickupCustomerAddressController.btnController.success(); + Get.to(CreateOrderView(pickUpData: data,isDashboard: false,)); + pickupCustomerAddressController.btnController.reset(); + } + else{ + print('Please Select delivery address'); + Toast.showToast('Please Select delivery address',); + + pickupCustomerAddressController.btnController.reset(); + } + pickupCustomerAddressController.update(); + + }, + color:ColorConstants.primaryColor, + title: 'Proceed', + controller: pickupCustomerAddressController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + + + )), + // Padding( + // padding: const EdgeInsets.only(top: 5,left: 20), + // child: FloatingActionButton( + // onPressed: () async{ + // if (savedAddressController.resultPosition != null) { + // var locationResult = await Get.to(AddCustomerAddressMap( long: savedAddressController.resultPosition!.longitude, lat: savedAddressController.resultPosition!.latitude,)); + // if (locationResult != null) { + // savedAddressController.setLocationValues(locationResult); + // } + // } + // }, + // child: Icon( + // Icons.location_on, + // color: ColorConstants.secondaryColor, + // ), + // backgroundColor: ColorConstants.primaryColor, + // ), + // ) + ], + ); + } + +} diff --git a/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Tenantcustomerview.dart b/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Tenantcustomerview.dart new file mode 100644 index 0000000..a707fe7 --- /dev/null +++ b/lib/View/Createorder/Pickuplocation/Tabs/Allcustomers/Tenantcustomers/Tenantcustomerview.dart @@ -0,0 +1,202 @@ +import 'package:alphabet_search_view/alphabet_search_view.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../../Helper/toast.dart'; +import '../../../../../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../../../../Createorderview.dart'; + +class TenantPickUpCustomerView extends StatelessWidget { + TenantPickUpCustomerView({super.key}); + + TenantPickupCustomerController tenantPickupCustomerController = Get.put(TenantPickupCustomerController()); + AddPickupCustomerController addPickupCustomerController = Get.put(AddPickupCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + // PickupCustomerAddressController pickupCustomerAddressController = Get.put(PickupCustomerAddressController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + + body: GetBuilder( + initState: (_){ + tenantPickupCustomerController.progress = true; + tenantPickupCustomerController.getCustomerByTenantId(); + + }, + builder: (controller) { + return controller.getCustomerBytenantId.isEmpty && !controller.progress == true + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No customers at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.progress?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): Padding( + padding: const EdgeInsets.only(top: 5), + child: SafeArea( + bottom: false, + child: AlphabetSearchView.list( + decoration: AlphabetSearchDecoration.fromContext( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + withSearch: true, + context, + subtitleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor), + titleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor,), + letterHeaderTextStyle: TextStyle( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 40), + ), + list: controller.getCustomerBytenantId.map( + (e) => AlphabetSearchModel( + title: e.firstname.toString() + e.lastname.toString(), + subtitle: e.contactno.toString(), + data: e, + ), + ) + .toList(), + onItemTap: (_, index, item) { + // deliveryDetailsController.weightSelectedIndex = -1; + // deliveryDetailsController.paymentSelectedIndex = -1; + // deliveryDetailsController.timeSelectIndex = -1; + // deliveryDetailsController.weight = null; + // deliveryDetailsController.selectedDate = DateTime.now(); + // deliveryDetailsController.datetime = DateTime.now(); + // deliveryDetailsController.subCatName = null; + // deliveryDetailsController.tecNotes.clear(); + // deliveryDetailsController.payment =null; + // savedAddressController.deliveryAddressList = false; + // savedAddressController.mSelectedAddressIndex = -1; + // pickupCustomerAddressController.selectedAddressIndex = -1; + createOrderController.pickupCustomerId = item.data.customerid; + createOrderController.pickUpCustomerName = "${item.data.firstname}" + "${item.data.lastname}"; + createOrderController.pickUpCustomerContactNo = item.data.contactno; + createOrderController.pickupLocationId = item.data.deliverylocationid; + createOrderController.pickupTenantLocationId = item.data.tenantlocationid; + createOrderController.fromLatitude = item.data.latitude; + createOrderController.fromLongitude = item.data.longitude; + createOrderController.fromAddress =item.data.address; + + if(createOrderController.pickupCustomerId == createOrderController.dropCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + Get.to(CreateOrderView(pickUpData:item.data, isDashboard: false,)); + + } + + + }, + buildItem: (_, index, item) { + print('dashboardgetCustomerBytenantId${controller.getCustomerBytenantId.length}'); + return Container( + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 14, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Text( + item.title, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_city,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Text( + '${item.data.suburb??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Expanded( + child: Text( + '${item.data.address??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + + ), + ), + ], + ), + ), + SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.phone,color: ColorConstants.primaryColor,size: 20,), + SizedBox(width: 3,), + Text( + item.subtitle!, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + ], + ), + ) + ], + ), + ), + ); + }, + ), + ), + ); + } + ), + ); + } +} diff --git a/lib/View/Createorder/Pickuplocation/Tabs/Pickupcustomertabmainpage.dart b/lib/View/Createorder/Pickuplocation/Tabs/Pickupcustomertabmainpage.dart new file mode 100644 index 0000000..f5e6548 --- /dev/null +++ b/lib/View/Createorder/Pickuplocation/Tabs/Pickupcustomertabmainpage.dart @@ -0,0 +1,898 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import 'package:shimmer/shimmer.dart'; +import '../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../Controller/Dashboard/Pickup/Tabs/Pickupcustomertabscontroller.dart'; +import '../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Customeraddress/Addcustomer/Addcustomercontroller.dart'; +import '../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/Logger.dart'; +import '../../../../Helper/toast.dart'; +import '../../../../Helper/utility.dart'; +import '../../Createorderview.dart'; +import 'Allcustomers/Tenantcustomers/Tenantcustomerview.dart'; +import 'Tenants/Tenantsview.dart'; + +// class PickupCustomerTabView extends StatelessWidget { +// final int tabIndex; +// +// PickupCustomerTabView({super.key, this.tabIndex = 0}); +// +// PickupCustomerTabController pickupCustomerTabController = Get.put(PickupCustomerTabController()); +// AddPickupCustomerController addPickupCustomerController = Get.put(AddPickupCustomerController()); +// +// +// @override +// Widget build(BuildContext context) { +// return GetBuilder( +// initState: (_){ +// if (tabIndex != 0) { +// print('tabindex ${tabIndex}'); +// pickupCustomerTabController.tabIndex =tabIndex; +// } +// // orderMainController.tabIndex = tabIndex; +// pickupCustomerTabController.tabController.index = tabIndex; +// pickupCustomerTabController.tabController.addListener(() { +// if (!pickupCustomerTabController.tabController.indexIsChanging) { +// // pickupCustomerTabController.update(); +// pickupCustomerTabController.tabIndex = pickupCustomerTabController.tabController.index; +// } +// }); +// +// }, +// builder: (controller) { +// return Scaffold( +// backgroundColor: Colors.grey[100], +// appBar: AppBar( +// leading: Padding( +// padding: const EdgeInsets.all(5.0), +// child:InkWell( +// onTap: (){ +// +// Get.back(); +// }, +// child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), +// ), +// titleSpacing: 0, +// +// title: Row( +// children: [ +// Text("Pickup address",style: TextStyle(color: ColorConstants.secondaryColor)), +// const Spacer(), +// InkWell( +// onTap: () { +// addPickupCustomerController.customerFirstNameController.clear(); +// addPickupCustomerController.customerLastNameController.clear(); +// addPickupCustomerController.customerPhoneController.clear(); +// addPickupCustomerController.addressController.clear() ; +// addPickupCustomerController.doorNoController.clear() ; +// addPickupCustomerController.landMarkController.clear() ; +// addPickupCustomerController.predictions.clear(); +// Get.to(AddCustomerView()); +// }, +// child: Column( +// mainAxisAlignment: MainAxisAlignment.end, +// children: [ +// Padding( +// padding: EdgeInsets.only(bottom: 3,right: 0), +// child: Icon( +// Icons.person_add_alt_rounded, +// size: 35, +// color: Colors.white, +// ), +// ), +// ], +// ), +// ), +// const SizedBox(width: 10,) +// ], +// ), +// elevation: 0, +// backgroundColor: ColorConstants.primaryColor, +// automaticallyImplyLeading: false, +// +// // backwardsCompatibility: false, +// ), +// body: Stack( +// children: [ +// Column( +// mainAxisAlignment: MainAxisAlignment.start, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// TabBar( +// tabs: controller.tabs, +// unselectedLabelColor: ColorConstants.primaryColor, +// indicatorColor: ColorConstants.primaryColor, +// indicatorSize: TabBarIndicatorSize.tab, +// labelColor: ColorConstants.primaryColor, +// controller: controller.tabController, +// onTap: (_){ +// pickupCustomerTabController.tabIndex = pickupCustomerTabController.tabController.index; +// print("tabIndexonTap ${pickupCustomerTabController.tabIndex}"); +// }, +// ), +// Expanded( +// child: TabBarView( +// controller: controller.tabController, +// physics: const NeverScrollableScrollPhysics(), +// children: [ +// TenantPickUpCustomerView(), +// TenantPickUpTenantsView(), +// ], +// ), +// ), +// ], +// ), +// ], +// ), +// ); +// } +// ); +// } +// } + + +class PickupCustomerView extends StatelessWidget { + PickupCustomerView({super.key}); + + TenantPickupCustomerController tenantPickupCustomerController = Get.put(TenantPickupCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + final ScrollController scrollController = ScrollController(); + + + @override + Widget build(BuildContext context) { + + void onScroll() { + double maxScroll = scrollController.position.maxScrollExtent; + double currentScroll = scrollController.position.pixels; + + if (maxScroll == currentScroll && tenantPickupCustomerController.hasMore.value) { + tenantPickupCustomerController.getCustomerData(); + } + } + + scrollController.addListener(onScroll); + + return Scaffold( + backgroundColor: Colors.grey[100], + appBar: AppBar( + leading: Padding( + padding: const EdgeInsets.all(5.0), + child:InkWell( + onTap: (){ + Get.back(); + }, + child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), + ), + titleSpacing: 0, + + title: Row( + children: [ + Text("Saved address",style: TextStyle(color: ColorConstants.secondaryColor)), + ], + ), + elevation: 0, + backgroundColor: ColorConstants.primaryColor, + automaticallyImplyLeading: false, + // backwardsCompatibility: false, + ), + body: GetBuilder( + initState: (_){ + tenantPickupCustomerController.shimmer.value = true; + // tenantPickupCustomerController.getCustomerByTenantId(); + // tenantPickupCustomerController.getCustomerData(); + tenantPickupCustomerController.refreshData(); + + }, + builder: (controller) { + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + padding: EdgeInsets.only(top: 10,bottom: 10), + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: TextField( + controller: controller.searchController, + textAlignVertical: TextAlignVertical.center, + // focusNode: controller.focusNode, + onChanged: (data){ + var keyword = data; + print('keyword................${keyword}'); + if(data.isNotEmpty) { + controller.shimmer.value = true; + controller.getSearchCustomerData(keyword); + } + else{ + controller.shimmer.value = true; + controller.refreshData(); + FocusScope.of(context).unfocus(); + } + controller.update(); + }, + decoration: InputDecoration( + prefixIcon: IconButton( + icon: const Icon(Icons.search), + color: Colors.grey[500]!, + onPressed: () { + + }, + ), + hintText: 'Search by customer', + hintStyle: TextStyle( + color: Colors.grey[500]!, + + + ), + suffixIcon: controller.searchController.text.isEmpty ? const SizedBox() : IconButton( + icon: const Icon(Icons.cancel), + color: Colors.grey[500]!, + onPressed: () { + controller.shimmer.value = true; + controller.refreshData(); + FocusScope.of(context).unfocus(); + }, + ), + border: InputBorder.none), + ), + ), + controller.getCustomerBytenantId.isEmpty && !controller.shimmer.value + ? Center( + heightFactor: 3.0, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No customers at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.shimmer.value?Center( + heightFactor: 15.0, + child: CircularProgressIndicator(color: ColorConstants.primaryColor)): + controller.shimmer.value? + queueShimmerCard(context): + Expanded( + child:controller.searchController.text.isEmpty? ListView.builder( + controller: scrollController, + itemCount: controller.hasMore.value + ? controller.getCustomerBytenantId.length + 1 + : controller.getCustomerBytenantId.length, + itemBuilder: (BuildContext context,int index) + { + if(index < controller.getCustomerBytenantId.length){ + return Padding( + padding: const EdgeInsets.only( + top: 10, + left: 10, + right: 10, + + ), + child: Stack( + children: [ + InkWell( + onTap:(){ + createOrderController.pickupCustomerId = controller.getCustomerBytenantId[index].customerid; + createOrderController.pickUpCustomerName = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.pickUpCustomerContactNo = controller.getCustomerBytenantId[index].contactno; + createOrderController.pickUpLandMark = controller.getCustomerBytenantId[index].landmark; + createOrderController.pickUpDoorNo = controller.getCustomerBytenantId[index].doorno; + createOrderController.pickupLocationId = controller.getCustomerBytenantId[index].deliverylocationid; + createOrderController.pickupTenantLocationId = controller.getCustomerBytenantId[index].tenantlocationid; + createOrderController.fromLatitude = controller.getCustomerBytenantId[index].latitude; + createOrderController.fromLongitude = controller.getCustomerBytenantId[index].longitude; + createOrderController.fromAddress =controller.getCustomerBytenantId[index].address; + + createOrderController.pickupAddressController.text = controller.getCustomerBytenantId[index].address??''; + createOrderController.pickupContactNameController.text = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.pickupContactNoController.text = controller.getCustomerBytenantId[index].contactno??''; + createOrderController.pickupDoorNoController.text = controller.getCustomerBytenantId[index].doorno??''; + createOrderController.pickupLandMarkController.text = controller.getCustomerBytenantId[index].landmark??''; + createOrderController.pickupStateController.text = controller.getCustomerBytenantId[index].state ??''; + createOrderController.pickupCityController.text = controller.getCustomerBytenantId[index].city??'' ; + createOrderController.pickupSuburbController.text = controller.getCustomerBytenantId[index].suburb??''; + createOrderController.pickupPostcodeController.text = controller.getCustomerBytenantId[index].postcode??'' ; + + print('pickupCustomerIdmainpage ${createOrderController.pickupCustomerId}'); + + logger.i (createOrderController.pickupCustomerId); + logger.i (createOrderController.dropCustomerId); + + if(createOrderController.pickupCustomerId == createOrderController.dropCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + createOrderController.pickupSaveAddress = false; + Get.to(CreateOrderView(pickUpData:controller.getCustomerBytenantId[index], isDashboard: false,)); + + } + + }, + child: Container( + padding: const EdgeInsets.only( + right: 15 + ), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: const [ + BoxShadow(color: Colors.grey) + ], + borderRadius: + const BorderRadius.all(Radius.circular(3)), + ), + height: Get.height*0.15, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: UtilityPromotion + .getLightColors( + controller.getCustomerBytenantId[index].firstname == '' ?'': + controller.getCustomerBytenantId[index].firstname![0] + .toString() + ) + .withAlpha(100), + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 10,), + CircleAvatar( + backgroundColor: + Colors.white70, + radius: 28, + child: Text( + controller.getCustomerBytenantId[index].firstname == '' ?'': + controller.getCustomerBytenantId[index].firstname![0].toString().toUpperCase(), + style: const TextStyle( + color: Colors + .black54, + fontSize: 22), + )), + Spacer(), + Container( + padding: EdgeInsets.only(top: 5,bottom: 5,right: 5,left: 5), + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Center( + child: Text( + '${controller.getCustomerBytenantId[index].suburb}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ) + ], + ), + )), + const SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants + .primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Row( + children: [ + Text( + controller.getCustomerBytenantId[index].firstname ?? "", + style: TextStyle( + fontSize: 16, + color: Colors + .grey[600], + fontWeight: + FontWeight + .w600), + ), + ], + ), + + ], + ), + Row( + children: [ + Icon( + Icons.call, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Text( + '${controller.getCustomerBytenantId[index].contactno}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + ], + ), + Row( + children: [ + Icon( + Icons.location_on, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Text( + '${controller.getCustomerBytenantId[index].address}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + // SizedBox( + // height: 10, + // ), + ], + )), + ], + ), + ), + ), + + ], + ), + ); + } + else{ + return Padding( + padding: const EdgeInsets.all(15), + child: Center( + child: CircularProgressIndicator( + color: ColorConstants.primaryColor, + ), + ), + ); + } + } + ): + ListView.builder( + itemCount: controller.getCustomerBytenantId.length, + itemBuilder: (BuildContext context,int index) + { + return Padding( + padding: const EdgeInsets.only( + top: 10, + left: 10, + right: 10, + + ), + child: InkWell( + onTap: ()async{ + createOrderController.pickupCustomerId = controller.getCustomerBytenantId[index].customerid; + createOrderController.pickUpCustomerName = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.pickUpCustomerContactNo = controller.getCustomerBytenantId[index].contactno; + createOrderController.pickUpLandMark = controller.getCustomerBytenantId[index].landmark; + createOrderController.pickUpDoorNo = controller.getCustomerBytenantId[index].doorno; + createOrderController.pickupLocationId = controller.getCustomerBytenantId[index].deliverylocationid; + createOrderController.pickupTenantLocationId = controller.getCustomerBytenantId[index].tenantlocationid; + createOrderController.fromLatitude = controller.getCustomerBytenantId[index].latitude; + createOrderController.fromLongitude = controller.getCustomerBytenantId[index].longitude; + createOrderController.fromAddress =controller.getCustomerBytenantId[index].address; + + createOrderController.pickupAddressController.text = controller.getCustomerBytenantId[index].address??''; + createOrderController.pickupContactNameController.text = "${controller.getCustomerBytenantId[index].firstname}" + "${controller.getCustomerBytenantId[index].lastname}"; + createOrderController.pickupContactNoController.text = controller.getCustomerBytenantId[index].contactno??''; + createOrderController.pickupDoorNoController.text = controller.getCustomerBytenantId[index].doorno??''; + createOrderController.pickupLandMarkController.text = controller.getCustomerBytenantId[index].landmark??''; + createOrderController.pickupStateController.text = controller.getCustomerBytenantId[index].state ??''; + createOrderController.pickupCityController.text = controller.getCustomerBytenantId[index].city??'' ; + createOrderController.pickupSuburbController.text = controller.getCustomerBytenantId[index].suburb??''; + createOrderController.pickupPostcodeController.text = controller.getCustomerBytenantId[index].postcode??'' ; + + logger.i (createOrderController.pickupCustomerId); + logger.i (createOrderController.dropCustomerId); + + + if(createOrderController.pickupCustomerId == createOrderController.dropCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + createOrderController.pickupSaveAddress = false; + Get.to(CreateOrderView(pickUpData:controller.getCustomerBytenantId[index], isDashboard: false,)); + + } + }, + child: Stack( + children: [ + Container( + padding: const EdgeInsets.only( + right: 15 + ), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: const [ + BoxShadow(color: Colors.grey) + ], + borderRadius: + const BorderRadius.all(Radius.circular(3)), + ), + height: Get.height*0.15, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Container( + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: UtilityPromotion + .getLightColors( + controller.getCustomerBytenantId[index].firstname![0] + .toString()) + .withAlpha(100), + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + SizedBox(height: 10,), + CircleAvatar( + backgroundColor: + Colors.white70, + radius: 28, + child: Text( + controller.getCustomerBytenantId[index].firstname == '' ?'': + controller.getCustomerBytenantId[index].firstname![0].toString().toUpperCase(), + style: const TextStyle( + color: Colors + .black54, + fontSize: 22), + )), + Spacer(), + Container( + padding: EdgeInsets.only(top: 5,bottom: 5,right: 5,left: 5), + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Center( + child: Text( + '${controller.getCustomerBytenantId[index].suburb}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ) + ], + ), + )), + const SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants + .primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Row( + children: [ + Text( + controller.getCustomerBytenantId[index].firstname ?? "", + style: TextStyle( + fontSize: 16, + color: Colors + .grey[600], + fontWeight: + FontWeight + .w600), + ), + ], + ), + ], + ), + Row( + children: [ + Icon( + Icons.call, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Text( + '${controller.getCustomerBytenantId[index].contactno}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + + ], + ), + Row( + children: [ + Icon( + Icons.location_on, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Text( + '${controller.getCustomerBytenantId[index].address}', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + // SizedBox( + // height: 10, + // ), + ], + )), + ], + ), + ), + + ], + ), + ), + ); + } + ), + ), + ], + + ); + } + ), + ); + } + queueShimmerCard(BuildContext context) { + return Expanded( + child: ListView.builder( + itemCount: 6, + itemBuilder: (_, __) { + return Padding( + padding: const EdgeInsets.all(3.0), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Padding( + padding: const EdgeInsets.only( + top: 10, + left: 10, + right: 10, + + ), + child: InkWell( + onTap: ()async{ + + }, + child: Stack( + children: [ + Container( + padding: const EdgeInsets.only( + right: 15 + ), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: const [ + BoxShadow(color: Colors.grey) + ], + borderRadius: + const BorderRadius.all(Radius.circular(3)), + ), + height: Get.height*0.10, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + flex: 2, + child: Container( + padding: const EdgeInsets.all(5), + decoration: const BoxDecoration( + color:Colors.grey, + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + CircleAvatar( + backgroundColor: + Colors.white70, + radius: 28, + child: Text( + '', + style: TextStyle( + color: Colors + .black54, + fontSize: 22), + )), + ], + ), + )), + const SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants + .primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Row( + children: [ + Text( + "", + style: TextStyle( + fontSize: 16, + color: Colors + .grey[600], + fontWeight: + FontWeight + .w600), + ), + ], + ), + ], + ), + Row( + children: [ + Icon( + Icons.call, + color: + ColorConstants.primaryColor, + size: 20, + ), + const SizedBox( + width: 5, + ), + Text( + '', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + const Spacer(), + + Text( + '', + style: TextStyle( + color: ColorConstants + .darkGreyColor, + fontSize: 14, + fontWeight: + FontWeight.bold), + ), + ], + ), + // SizedBox( + // height: 10, + // ), + ], + )), + ], + ), + ), + + ], + ), + ), + ), + ), + ); + }), + ); + } + +} + diff --git a/lib/View/Createorder/Pickuplocation/Tabs/Tenants/Tenantsview.dart b/lib/View/Createorder/Pickuplocation/Tabs/Tenants/Tenantsview.dart new file mode 100644 index 0000000..1e31bf2 --- /dev/null +++ b/lib/View/Createorder/Pickuplocation/Tabs/Tenants/Tenantsview.dart @@ -0,0 +1,202 @@ + +import 'package:alphabet_search_view/alphabet_search_view.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../../../../../../Helper/toast.dart'; +import '../../../../../Controller/Createorder/Createordercontroller.dart'; +import '../../../../../Controller/Dashboard/Pickup/Tabs/Tenantcustomers/Tenantcustomercontroller.dart'; +import '../../../../../Helper/Constants/Assetconstants.dart'; +import '../../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../../../Createorderview.dart'; + +class TenantPickUpTenantsView extends StatelessWidget { + final bool? navigate; + TenantPickUpTenantsView({super.key, this.navigate}); + + TenantPickupCustomerController tenantPickupCustomerController = Get.put(TenantPickupCustomerController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + // PickupCustomerAddressController pickupCustomerAddressController = Get.put(PickupCustomerAddressController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + + body: GetBuilder( + initState: (_){ + tenantPickupCustomerController.progress = true; + tenantPickupCustomerController.getTenantsByTenantId(); + + }, + builder: (controller) { + return controller.getCustomerBytenantId.isEmpty && !controller.progress == true + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + const SizedBox( + height: 8, + ), + Text( + "No customers at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 18), + ), + ], + )):controller.progress?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): Padding( + padding: const EdgeInsets.only(top: 5), + child: SafeArea( + bottom: false, + child: AlphabetSearchView.list( + decoration: AlphabetSearchDecoration.fromContext( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + withSearch: true, + context, + subtitleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor), + titleStyle: TextStyle(backgroundColor: ColorConstants.secondaryColor,), + letterHeaderTextStyle: TextStyle( + backgroundColor: ColorConstants.secondaryColor, + color: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 40), + ), + list: controller.getCustomerBytenantId.map( + (e) => AlphabetSearchModel( + title: e.firstname.toString() + e.lastname.toString(), + subtitle: e.contactno.toString(), + data: e, + ), + ) + .toList(), + onItemTap: (_, index, item) { + // deliveryDetailsController.weightSelectedIndex = -1; + // deliveryDetailsController.paymentSelectedIndex = -1; + // deliveryDetailsController.timeSelectIndex = -1; + // deliveryDetailsController.weight = null; + // deliveryDetailsController.selectedDate = DateTime.now(); + // deliveryDetailsController.datetime = DateTime.now(); + // deliveryDetailsController.subCatName = null; + // deliveryDetailsController.tecNotes.clear(); + // deliveryDetailsController.payment =null; + // savedAddressController.deliveryAddressList = false; + // savedAddressController.mSelectedAddressIndex = -1; + // pickupCustomerAddressController.selectedAddressIndex = -1; + createOrderController.pickupCustomerId = item.data.customerid; + createOrderController.pickUpCustomerName = "${item.data.firstname}" + "${item.data.lastname}"; + createOrderController.pickUpCustomerContactNo = item.data.contactno; + createOrderController.pickupLocationId = item.data.deliverylocationid; + createOrderController.pickupTenantLocationId = item.data.tenantlocationid; + createOrderController.fromLatitude = item.data.latitude; + createOrderController.fromLongitude = item.data.longitude; + createOrderController.fromAddress =item.data.address; + + if(createOrderController.pickupCustomerId == createOrderController.dropCustomerId){ + Toast.showToast('Please select different customer it already selected'); + } + else{ + + Get.to(CreateOrderView(pickUpData:item.data, isDashboard: false,)); + + } + + + }, + buildItem: (_, index, item) { + print('dashboardgetCustomerBytenantId${controller.getCustomerBytenantId.length}'); + return Container( + decoration: BoxDecoration(color: ColorConstants.secondaryColor), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 14, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Text( + item.title, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + const SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_city,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Text( + item.data.suburb??'', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + const SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.location_on,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Expanded( + child: Text( + '${item.data.address??''}', + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + maxLines: 1, + overflow: TextOverflow.ellipsis, + + ), + ), + ], + ), + ), + const SizedBox(height: 4), + Flexible( + child: Row( + children: [ + Icon(Icons.phone,color: ColorConstants.primaryColor,size: 20,), + const SizedBox(width: 3,), + Text( + item.subtitle!, + style: TextStyle(color: ColorConstants.darkGreyColor,fontSize: 14,fontWeight: FontWeight.bold), + ), + ], + ), + ), + ], + ), + ) + ], + ), + ), + ); + }, + ), + ), + ); + } + ), + ); + } +} diff --git a/lib/View/Customers/Customersview.dart b/lib/View/Customers/Customersview.dart new file mode 100644 index 0000000..f4c7747 --- /dev/null +++ b/lib/View/Customers/Customersview.dart @@ -0,0 +1,224 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:alphabet_search_view/alphabet_search_view.dart'; + +import '../../Controller/Customers/Customercontroller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/Assetconstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/utility.dart'; +import '../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../Dashboard/Dashboardview.dart'; + +class CustomerView extends StatelessWidget { + CustomerView({super.key}); + + final CustomerController customerController = Get.put(CustomerController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const TextWidget( + text: 'Customers', + fontSize: 20, + fontWeight: FontWeight.bold, + ), + elevation: 0, + backgroundColor: ColorConstants.secondaryColor, + automaticallyImplyLeading: false, + ), + body: GetBuilder( + initState: (_) { + customerController.getCustomerByTenantId(); + }, + builder: (controller) { + if (controller.progress.value) { + return Center( + child: ShimmerListView( + height: 100 + ), + ); + } + + if (controller.getCustomerBytenantId.isEmpty) { + return emptyCustomerWidget(); + } + + return Padding( + padding: const EdgeInsets.only(top: 5), + child: SafeArea( + bottom: false, + child: ListView.builder( + itemCount: controller.getCustomerBytenantId.length, + itemBuilder: (context, index) { + var customer = controller.getCustomerBytenantId[index]; + return CustomerCard( + name: customer.firstname ?? '', + address: (customer.suburb?.isNotEmpty ?? false) ? + customer.suburb ?? '' : customer.city ?? '', + phoneNumber: customer.contactno ?? '', + profileImageUrl: '', + ); + } + ), + ), + ); + }, + ), + ); + } + + Widget emptyCustomerWidget() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height:10), + Image.asset( + AssetConstants.noCustomersFound, + height: 200, + width: 200, + fit: BoxFit.fill, + ), + TextWidget( + text: 'No Customers Found!', + color: ColorConstants.blackColor, + fontSize: 18, + fontWeight: FontWeight.w700, + maxLines: 2, + textAlign: TextAlign.center, + ), + SizedBox(height: 10), + TextWidget( + text: 'Stay tuned - your next loyal customer could appear here soon!', + color: ColorConstants.blackColor, + fontSize: 14, + fontWeight: FontWeight.normal, + maxLines: 2, + textAlign: TextAlign.center, + ), + ], + ), + ); + } + + +} + + + + +class CustomerCard extends StatelessWidget { + final String name; + final String address; + final String phoneNumber; + final String profileImageUrl; + + const CustomerCard({ + super.key, + required this.name, + required this.address, + required this.phoneNumber, + required this.profileImageUrl, + }); + + @override + Widget build(BuildContext context) { + return Card( + margin: const EdgeInsets.symmetric(horizontal: 0, vertical: 6), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(0)), + elevation: 0, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + /// Profile image + profileImageUrl.isNotEmpty ?? false ? + CircleAvatar( + radius: 30, + backgroundImage: NetworkImage(profileImageUrl), + backgroundColor: Colors.grey.shade300, + ) : + CircleAvatar( + radius: 30, + child: TextWidget( + text: name[0], + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 22, + ), + backgroundColor: Colors.grey.shade300, + ), + const SizedBox(width: 16), + + // Customer details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.person, color: ColorConstants.darkGreyColor, size: 17,), + SizedBox(width: 5,), + Text( + name, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: ColorConstants.darkGreyColor + ), + ), + ], + ), + const SizedBox(height: 4), + Row( + children: [ + Icon(Icons.location_on_outlined, color: ColorConstants.darkGreyColor, size: 14,), + SizedBox(width: 5,), + Text( + address, + style: TextStyle( + fontSize: 14, + color: ColorConstants.darkGreyColor, + ), + ), + ], + ), + const SizedBox(height: 4), + Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 2), + child: Icon(Icons.phone, color: ColorConstants.darkGreyColor, size: 14,), + ), + SizedBox(width: 5,), + Text( + '+91 $phoneNumber', + style: const TextStyle( + fontSize: 14, + color: Colors.grey, + ), + ), + ], + ), + ], + ), + ), + + // Call icon + IconButton( + icon: const Icon(Icons.phone, color: Colors.green), + onPressed: () { + // TODO: Add phone call logic + Utility.openPhoneCallApp(phoneNumber); + }, + ), + ], + ), + ), + ); + } +} diff --git a/lib/View/Dashboard/Dashboardview.dart b/lib/View/Dashboard/Dashboardview.dart new file mode 100644 index 0000000..8fc518e --- /dev/null +++ b/lib/View/Dashboard/Dashboardview.dart @@ -0,0 +1,563 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../Controller/Dashboard/Dashboardcontroller.dart'; +import '../../Controller/Dashboard/Tabs/Ordercontroller.dart'; +import '../../Controller/products/product_controller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/AssetConstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../widgets/product_bottom_sheet.dart'; +import '../More/Notification/Notificationview.dart'; +import '../Orders/orderDetails.dart'; + +class DashboardView extends StatelessWidget { + DashboardView({super.key}); + + final DashboardController dashboardController = Get.put(DashboardController()); + final CurrentOrderController currentOrderController = Get.put(CurrentOrderController()); + final ProductController productController = Get.put(ProductController()); + + @override + Widget build(BuildContext context) { + + SystemChrome.setSystemUIOverlayStyle( + const SystemUiOverlayStyle( + statusBarColor: Colors.transparent, // or your color + statusBarIconBrightness: Brightness.dark, // Android icons + statusBarBrightness: Brightness.light, // iOS icons + ), + ); + + return DefaultTabController( + length: 4, + child: Builder( + builder: (context) { + final TabController tabController = DefaultTabController.of(context); + + // Listen to tab changes (tap or swipe) + tabController.addListener(() { + if (!tabController.indexIsChanging) { + String status; + switch (tabController.index) { + case 0: + status = 'created'; + break; + case 1: + status = 'ongoing'; + break; + case 2: + status = 'delivered'; + break; + case 3: + status = 'cancelled'; + break; + default: + status = 'created'; + } + + // Only fetch if not already loaded + currentOrderController.getOrder(status); + if (!currentOrderController.hasLoaded(status)) { + currentOrderController.getOrder(status); + } + } + }); + + return GetBuilder( + initState: (_) { + logger.i('Init state triggered in View : '); + WidgetsBinding.instance.addPostFrameCallback((_) { + dashboardController.getDetails(); + dashboardController.getTenantInfo(); + currentOrderController.getOrder('created'); // Initial fetch for Placed tab + }); + }, + builder: (dashboardCtrl) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + toolbarHeight: 70, + elevation: 0, + backgroundColor: ColorConstants.secondaryColor, + actions: [ + Padding( + padding: EdgeInsets.only(right: 15), + child: InkWell( + onTap: () { + Get.to(() => NotificationView()); + }, + child: Icon( + Icons.notifications, + color: ColorConstants.darkGreyColor, + ), + ), + ), + ], + title: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget( + text: dashboardCtrl.tenantInfo?.tenantname ?? '', + fontWeight: FontWeight.w700, + fontSize: 20, + ), + SizedBox(height: 5), + Row( + children: [ + Icon(Icons.location_on_outlined, color: ColorConstants.darkGreyColor, size: 15), + TextWidget( + text: dashboardCtrl.tenantInfo?.locationname ?? '', + fontWeight: FontWeight.w500, + fontSize: 14, + ), + ], + ) + ], + ), + bottom: TabBar( + physics: NeverScrollableScrollPhysics(), + tabs: [ + Tab(text: 'Placed'), + Tab(text: 'Ongoing'), + Tab(text: 'Completed'), + Tab(text: 'Cancelled'), + ], + labelColor: ColorConstants.primaryColor, + unselectedLabelColor: ColorConstants.darkGreyColor?.withOpacity(0.5), + indicatorColor: ColorConstants.primaryColor, + labelStyle: TextStyle(fontWeight: FontWeight.w600, fontSize: 14), + unselectedLabelStyle: TextStyle(fontWeight: FontWeight.w400, fontSize: 12), + ), + ), + body: TabBarView( + physics: const NeverScrollableScrollPhysics(), + children: [ + OrderTabView(orderStatus: 'created'), + OrderTabView(orderStatus: 'ongoing'), + OrderTabView(orderStatus: 'delivered'), + OrderTabView(orderStatus: 'cancelled'), + ], + ), + ); + }, + ); + }, + ), + ); + } +} + +class OrderTabView extends StatelessWidget { + final String orderStatus; + final CurrentOrderController currentOrderController = Get.find(); + + OrderTabView({ + super.key, + required this.orderStatus, + }); + + @override + Widget build(BuildContext context) { + return Obx(() { + final orders = currentOrderController.getOrdersByStatus(orderStatus); + final isLoading = currentOrderController.getLoadingByStatus(orderStatus).value; + // Show shimmer only on first load + if (isLoading && !currentOrderController.hasLoaded(orderStatus)) { + return Center(child: ShimmerListView(height: 200)); + } + + if (orders.isEmpty) { + return emptyOrdersWidget(); + } + + return ListView.builder( + padding: const EdgeInsets.only(top: 10), + itemCount: orders.length, + itemBuilder: (context, index) { + final order = orders[index]; + + return InkWell( + onTap: () async { + final orderId = order.orderheaderid ?? 0; + final productController = Get.find(); + await productController.getProductDetails(orderId); + + if (context.mounted) { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => OrderDetailsPage( + orderDetails: order, + productDetails: productController.productDetail, + controller: currentOrderController, + ), + ), + ); + } + }, + child: OrderCard( + orderStatus: order.orderstatus ?? '', + orderId: order.orderid ?? '', + orderDateTime: order.orderdate ?? '', + customerName: order.deliverycustomer ?? '', + phoneNumber: order.deliverycontactno ?? '', + deliveryLocation: order.deliveryaddress ?? '', + onInfoTap: () async { + final orderId = order.orderheaderid ?? 1; + final productController = Get.find(); + await productController.getProductDetails(orderId); + + for (var product in productController.productDetail ?? []) { + if (product.productimage != null) { + precacheImage( + CachedNetworkImageProvider(product.productimage ?? ''), + context, + ); + } + } + if (context.mounted) { + ProductBottomSheet.show(context, productController.productDetail ?? []); + } + }, + ), + ); + }, + ); + }); + } +} + +/// Shimmer Card widget +class ShimmerListView extends StatelessWidget { + final double height; + const ShimmerListView({super.key, required this.height}); + + @override + Widget build(BuildContext context) { + return ListView.builder( + itemCount: 10, + itemBuilder: (context, index) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + child: Shimmer.fromColors( + baseColor: Colors.grey.shade300, + highlightColor: Colors.grey.shade100, + child: Container( + height: height, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + ), + child: Row( + children: [ + Container( + width: 60, + height: 60, + margin: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: Colors.grey.shade400, + borderRadius: BorderRadius.circular(8), + ), + ), + const SizedBox(width: 10), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 14, + width: double.infinity, + color: Colors.grey.shade400, + ), + const SizedBox(height: 10), + Container( + height: 12, + width: 150, + color: Colors.grey.shade400, + ), + ], + ), + ) + ], + ), + ), + ), + ); + }, + ); + } +} + +showConfirmationBottomSheet( + BuildContext context, { + required VoidCallback onAccept, + VoidCallback? onCancel, + String title = "Confirmation", + String message = "Are you sure you want to continue?", + }) { + showModalBottomSheet( + context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + backgroundColor: Colors.white, + builder: (context) { + return Padding( + padding: const EdgeInsets.fromLTRB(20, 20, 20, 30), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + title, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 12), + Text( + message, + style: TextStyle(fontSize: 15, color: Colors.grey[700]), + textAlign: TextAlign.center, + ), + const SizedBox(height: 24), + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: () { + Navigator.pop(context); + Future.microtask(() => onCancel?.call()); + }, + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Colors.grey), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + child: const Text('Cancel'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: ElevatedButton( + onPressed: () { + Navigator.pop(context); + Future.microtask(() => onAccept()); + }, + style: ElevatedButton.styleFrom( + backgroundColor: ColorConstants.primaryColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + child: const Text('Accept'), + ), + ), + ], + ), + ], + ), + ); + }, + ); +} + +class OrderCard extends StatelessWidget { + final String orderId; + final String orderDateTime; + final String customerName; + final String phoneNumber; + final String orderStatus; + final String deliveryLocation; + final VoidCallback? onInfoTap; + + const OrderCard({ + super.key, + required this.orderId, + required this.orderDateTime, + required this.customerName, + required this.phoneNumber, + required this.orderStatus, + required this.deliveryLocation, + this.onInfoTap, + }); + + + + + + @override + Widget build(BuildContext context) { + DateTime dateTime = DateTime.parse(orderDateTime); + logger.i('orderDateTime : ${dateTime}'); + + final dataStr = dateTime.toLocal().toString().split(' ')[0]; + final timeStr = DateFormat('h:mm a').format(dateTime); + + return Card( + elevation: 0, + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 5), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: Padding( + padding: const EdgeInsets.all(10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const Icon(Icons.confirmation_number_outlined, color: Colors.deepPurple), + const SizedBox(width: 6), + TextWidget( + text: 'Order ID: $orderId', + fontWeight: FontWeight.w700, + fontSize: 16, + ), + ], + ), + IconButton( + icon: const Icon(Icons.info_outline_rounded, color: Colors.grey), + onPressed: onInfoTap ?? () {}, + ), + ], + ), + + const SizedBox(height: 5), + + Row( + children: [ + const Icon(Icons.calendar_today_outlined, size: 20, color: Colors.teal), + const SizedBox(width: 6), + TextWidget(text: '$dataStr • $timeStr'), + Spacer(), + Container( + margin: const EdgeInsets.only(top: 4), + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: _getStatusColor(orderStatus).withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + ), + child: TextWidget( + text: orderStatus, + fontWeight: FontWeight.w600, + fontSize: 13, + color: _getStatusColor(orderStatus), + ), + ), + ], + ), + + const Divider(height: 24, thickness: 0.7), + + Row( + children: [ + const Icon(Icons.person_outline, color: Colors.indigo, size: 20,), + const SizedBox(width: 6), + Expanded( + child: TextWidget( + text: customerName, + fontWeight: FontWeight.w500, + ) + ), + ], + ), + + const SizedBox(height: 8), + + Row( + children: [ + const Icon(Icons.phone_outlined, color: Colors.green, size: 20), + const SizedBox(width: 6), + TextWidget(text: phoneNumber), + ], + ), + + const SizedBox(height: 8), + + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon(Icons.location_on_outlined, color: Colors.redAccent, size: 20), + const SizedBox(width: 6), + Expanded( + child: TextWidget( + text: deliveryLocation, + textHeight: 1.4, + ), + ), + ], + ), + ], + ), + ), + ); + } +} + + + +Color _getStatusColor(String status) { + switch (status.toLowerCase()) { + case 'created': + return Colors.blueGrey; + case 'assigned': + return Colors.indigo; + case 'accepted': + return Colors.teal; + case 'arrived': + return Colors.blue; + case 'picked': + return Colors.deepPurple; + case 'delivered': + return Colors.green; + case 'cancelled': + return Colors.red; + default: + return Colors.grey; + } +} + +Widget emptyOrdersWidget() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height:10), + Image.asset( + AssetConstants.noOrdersFound, + height: 200, + width: 200, + fit: BoxFit.fill, + ), + TextWidget( + text: 'No Orders Yet!', + color: ColorConstants.blackColor, + fontSize: 18, + fontWeight: FontWeight.w700, + maxLines: 2, + textAlign: TextAlign.center, + ), + SizedBox(height: 10), + TextWidget( + text: 'Stay tuned, your next order will appear here soon!', + color: ColorConstants.blackColor, + fontSize: 14, + fontWeight: FontWeight.normal, + maxLines: 2, + textAlign: TextAlign.center, + ), + ], + ), + ); +} \ No newline at end of file diff --git a/lib/View/Dashboard/Orderdetails/Orderdetailsview.dart b/lib/View/Dashboard/Orderdetails/Orderdetailsview.dart new file mode 100644 index 0000000..9ecaad4 --- /dev/null +++ b/lib/View/Dashboard/Orderdetails/Orderdetailsview.dart @@ -0,0 +1,1002 @@ +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/utility.dart'; +import '../../../Model/Response/Orders/Getorderresponse.dart'; + +class OrderDetailsView extends StatelessWidget { + final OrderDetails data; + OrderDetailsView({Key? key, required this.data}) : super(key: key); + + + + final GlobalKey _scaffoldKey = GlobalKey(); + + + @override + Widget build(BuildContext context) { + return Scaffold( + key: _scaffoldKey, + backgroundColor: Colors.grey[100], + appBar:AppBar( + leading: InkWell( + onTap: () { + Get.back(); + }, + child: Icon( + Icons.reply, + color: ColorConstants.secondaryColor, + size: 28, + )), + title:const Text("Order Details"), + backgroundColor: ColorConstants.primaryColor, + + ), + body: SizedBox( + height: MediaQuery.of(context).size.height, + width: MediaQuery.of(context).size.width, + child:Padding( + padding: const EdgeInsets.all(6.0), + child: SizedBox( + height: MediaQuery.of(context).size.height, + width: MediaQuery.of(context).size.width, + child: Column( + children: [ + const SizedBox( + height: 10, + ), + Container( + color: ColorConstants.secondaryColor, + margin: const EdgeInsets.only(left: 5,right: 5), + // surfaceTintColor:ColorConstants.secondaryColor , + // elevation: 0, // surfaceTintColor:ColorConstants.secondaryColor , + // elevation: 0, + child: SizedBox( + height: 95, + child: Stack( + children: [ + Row( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.primaryColor1, + // borderRadius: const BorderRadius.only(topLeft: Radius.circular(10),bottomLeft: Radius.circular(10)), + shape: BoxShape.rectangle), + width: 75, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: const EdgeInsets.symmetric( + horizontal: 15, vertical: 10), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + shape: BoxShape.rectangle), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + // '10', + DateFormat("dd").format(DateFormat("yyyy-MM-dd", "en_US").parse(data.orderdate!)), + style: TextStyle( + fontSize: 14, color: Colors.grey[700],fontWeight: FontWeight.w600), + ), + const SizedBox(height: 4,), + Text( + // 'Apr', + DateFormat("MMM").format(DateFormat("yyyy-MM-dd", "en_US").parse(data.orderdate!)), + style: TextStyle( + fontSize: 14, + height: 1, + color: Colors.grey[700], + fontWeight: FontWeight.w600), + ), + ], + ), + ), + const SizedBox( + height: 6, + ), + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + // '11.31AM', + DateFormat("hh.mm a").format(DateFormat("yyyy-MM-ddTHH:mm:ss", "en_US").parse(data.orderdate!)), + style: TextStyle( + fontSize: 11, + color: Colors.grey[700], + fontWeight: FontWeight.w600), + ), + ], + ), + ], + ), + ), + const SizedBox( + width: 12, + ), + Expanded( + flex: 3, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Row( + children: [ + const Icon( + Icons.person, + color: Colors.black45, + size: 18, + ), + const SizedBox( + width: 5, + ), + Text( + '${data.tenantname}', + style: TextStyle( + fontSize: 15, + color: Colors.grey[500], + fontWeight: FontWeight.w600), + ), + ], + ), + + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const Icon( + Icons.receipt, + color: Colors.black45, + size: 18, + ), + const SizedBox( + width: 5, + ), + Text( + '${data.orderid}', + style: const TextStyle( + fontSize: 13, + color: Colors.black54, + fontWeight: FontWeight.w600), + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const Icon( + Icons.phone, + color: Colors.black45, + size: 18, + ), + const SizedBox( + width: 5, + ), + InkWell( + onTap: () { + launch( + ('tel://${data.tenantcontactno}')); + }, + child: Text( + '${data.tenantcontactno}', + style: const TextStyle( + fontSize: 13, + color: Colors.black54, + fontWeight: FontWeight.w600), + ), + ), + ], + ), + ], + )), + ], + ), + // Positioned( + // top: 5, + // right: 5, + // child: Icon( + // Icons.payment_outlined, + // color:data.paymentstatus==0?Colors.green:Colors.red, + // ), + // ), + ], + ), + ), + ), + const SizedBox( + height: 10, + ), + Card( + color: Colors.red[100]!.withAlpha(100), + // Utility.getLightColors(data!.locationname!) + // .withAlpha(100), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(13), + ), + child: SizedBox( + height: 150, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.end, + children: [ + const SizedBox( + height: 15, + ), + Container( + height: 40, + width: 40, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + FaIcon( + FontAwesomeIcons.mapMarkerAlt, + size: 22, + color: Colors.green, + ), + ], + ), + ), + const Spacer(), + // Text( + // 'Pickup', + // style: TextStyle( + // color: Colors.black87, + // fontWeight: FontWeight.bold, + // fontSize: 15), + // ), + + Container( + height: 40, + width: 40, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child:InkWell( + onTap: () { + Utility.openMap( + double.parse(data + .pickuplat!), + double.parse(data + .pickuplong!) + ); + }, + child: Icon( + Icons + .assistant_direction_rounded, + size: 30, + color: ColorConstants + .primaryColor, + ), + ), + + ), + + + const SizedBox( + height: 10, + ), + ], + ), + ), + Expanded( + flex: 14, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: + BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 9, + child: Padding( + padding: + const EdgeInsets.only( + left: 10), + child: Column( + children: [ + Expanded( + flex: 3, + child: Row( + children: [ + Expanded( + flex: 7, + child: Column( + crossAxisAlignment: + CrossAxisAlignment + .start, + mainAxisAlignment: + MainAxisAlignment + .start, + children: [ + // const SizedBox( + // height: 15, + // ), + Expanded( + flex: 3, + child: Row( + children: [ + const Icon( + Icons + .business, + size: + 14, + color: + Colors.black38, + ), + const SizedBox( + width: + 4, + ), + Text( + // "Nearle Demo", + data.pickupcustomer??'', + style: const TextStyle( + color: Colors.black87, + fontSize: 15), + ) + ], + ), + ), + // const SizedBox( + // height: 10, + // ), + Expanded( + flex: 3, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon( + Icons + .location_on_rounded, + size: + 14, + color: + Colors.black38, + ), + const SizedBox( + width: + 4, + ), + Flexible( + child: + Text( + // "R.S. Puram, Coimbatore, Tamil Nadu, India", + " ${data.pickupaddress!}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.ellipsis, + fontSize: 13, + ), + maxLines: 2, + ), + ), + const SizedBox( + width: + 5, + ), + ], + ), + ), + // const SizedBox( + // height: 15, + // ), + Expanded( + flex: 2, + child: InkWell( + onTap: (){ + Utility.openPhoneCallApp( + data.pickupcontactno! + ); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon( + Icons + .phone, + size: + 14, + color: + Colors.black38, + ), + const SizedBox( + width: + 4, + ), + Text( + // "+918838304677", + data.pickupcontactno??'', + style: const TextStyle( + color: Colors.black87, + fontSize: 13), + ) + ], + ), + ), + ), + // SizedBox(height: 10,) + ], + ), + ), + ], + )), + // Expanded( + // flex: 2, + // child: Row( + // children: [ + // Icon( + // Icons + // .confirmation_num, + // size: 18, + // color: Colors + // .black38, + // ), + // SizedBox( + // width: 4, + // ), + // Text( + // "ORD-6464654", + // // data!.orderid!, + // style: TextStyle( + // color: Colors + // .black87, + // fontWeight: + // FontWeight + // .bold, + // fontSize: 15), + // ), + // ], + // ), + // ), + ], + ), + ), + ), + // Expanded( + // flex: 3, + // child: Column( + // mainAxisAlignment: + // MainAxisAlignment.start, + // crossAxisAlignment: + // CrossAxisAlignment.center, + // children: [ + // const SizedBox( + // height: 35, + // ), + // // Container( + // // height: 50, + // // child: Image.asset(AssetConstants.PickupIcon,)), + // // Spacer(), + // Container( + // height: 45, + // width: 45, + // decoration: const BoxDecoration( + // shape: BoxShape.circle, + // color: Colors.white, + // ), + // child:InkWell( + // onTap: () { + // Utility.openMap( + // double.parse(data + // .pickuplat!), + // double.parse(data + // .pickuplong!) + // ); + // }, + // child: Icon( + // Icons + // .assistant_direction_rounded, + // size: 35, + // color: ColorConstants + // .primaryColor, + // ), + // ), + // + // ), + // + // + // const SizedBox( + // height: 15, + // ), + // ], + // ), + // ) + ], + ), + ), + ), + ), + ], + ), + ), + ), + Card( + color: Colors.red[100]!.withAlpha(100), + // Utility.getLightColors(data!.locationname!) + // .withAlpha(100), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(13), + ), + child: SizedBox( + height: 150, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.end, + children: [ + const SizedBox( + height: 15, + ), + Container( + height: 40, + width: 40, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + FaIcon( + FontAwesomeIcons.mapMarkerAlt, + size: 22, + color: Colors.red, + ), + ], + ), + ), + const Spacer(), + // Text( + // 'Drop', + // style: TextStyle( + // color: Colors.black87, + // fontWeight: FontWeight.bold, + // fontSize: 17), + // ), + Container( + height: 40, + width: 40, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child:InkWell( + onTap: () { + Utility.openMap( + // 11.0051058,76.9509126 + double.parse( + data.deliverylat!), + double.parse(data + .deliverylong!) + ); + }, + child: Icon( + Icons + .assistant_direction_rounded, + size: 30, + color: ColorConstants + .primaryColor, + ), + ), + + ), + const SizedBox( + height: 10, + ), + ], + ), + ), + Expanded( + flex: 14, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: + BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 9, + child: Padding( + padding: + const EdgeInsets.only( + left: 10), + child: Column( + children: [ + Expanded( + flex: 5, + child: Row( + children: [ + Expanded( + flex: 7, + child: Column( + crossAxisAlignment: + CrossAxisAlignment + .start, + mainAxisAlignment: + MainAxisAlignment + .start, + children: [ + // const SizedBox( + // height: 15, + // ), + Expanded( + flex: 3, + child: Row( + children: [ + const Icon( + Icons + .person, + size: + 14, + color: + Colors.black38, + ), + const SizedBox( + width: + 4, + ), + Expanded( + child: Text( + "${data.deliverycustomer}", + style: const TextStyle( + color: Colors.black87, + fontSize: 15), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 5,) + ], + ), + ), + // const SizedBox( + // height: 10, + // ), + Expanded( + flex: 3, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon( + Icons + .location_on_rounded, + size: + 14, + color: + Colors.black38, + ), + const SizedBox( + width: + 4, + ), + Flexible( + child: + Text( + "${data.deliveryaddress}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.ellipsis, + fontSize: 13), + maxLines: + 2, + ), + ), + const SizedBox( + width: + 5, + ), + ], + ), + ), + // const SizedBox( + // height: + // 15, + // ), + Expanded( + flex: 2, + child: InkWell( + onTap: (){ + Utility.openPhoneCallApp( + data.deliverycontactno!); + }, + child: Row( + children: [ + const Icon( + Icons + .phone, + size: + 16, + color: + Colors.black38, + ), + const SizedBox( + width: + 4, + ), + Text( + "${data.deliverycontactno}", + style: const TextStyle( + color: Colors.black87, + fontSize: 13), + ) + ], + ), + ), + ) + ], + ), + ), + ], + )), + // Expanded( + // flex: 2, + // child: Container()), + ], + ), + ), + ), + // Expanded( + // flex: 3, + // child: Column( + // mainAxisAlignment: + // MainAxisAlignment.start, + // crossAxisAlignment: + // CrossAxisAlignment.center, + // children: [ + // const SizedBox( + // height: 35, + // ), + // // Container( + // // height: 50, + // // child: Image.asset(AssetConstants.DropIcon,)), + // Container( + // height: 45, + // width: 45, + // decoration: const BoxDecoration( + // shape: BoxShape.circle, + // color: Colors.white, + // ), + // child:InkWell( + // onTap: () { + // Utility.openMap( + // // 11.0051058,76.9509126 + // double.parse( + // data.deliverylat!), + // double.parse(data + // .deliverylong!) + // ); + // }, + // child: Icon( + // Icons + // .assistant_direction_rounded, + // size: 35, + // color: ColorConstants + // .primaryColor, + // ), + // ), + // + // ), + // + // const SizedBox( + // height: 15, + // ), + // ], + // ), + // ) + ], + ), + ), + ), + ), + ], + ), + ), + ), + // Expanded( + // flex: 2, + // child: Card( + // color:Colors.red[100]!.withAlpha(100), + // // Utility.getLightColors( + // // data!.locationname!) + // // .withAlpha(100), + // elevation: 0, + // shape: RoundedRectangleBorder( + // borderRadius: BorderRadius.circular(13), + // ), + // child: SizedBox( + // height: 170, + // width: MediaQuery.of(context).size.width, + // child: Row( + // children: [ + // Expanded( + // flex: 2, + // child: Column( + // mainAxisAlignment: + // MainAxisAlignment.start, + // crossAxisAlignment: + // CrossAxisAlignment.end, + // children: [ + // const SizedBox( + // height: 15, + // ), + // Container( + // height: 49, + // width: 45, + // decoration: const BoxDecoration( + // shape: BoxShape.circle, + // color: Colors.white, + // ), + // child: const Column( + // mainAxisAlignment: + // MainAxisAlignment + // .center, + // children: [ + // // Padding(padding: EdgeInsets.all(3)), + // Text( + // "₹", + // style: TextStyle( + // fontWeight: + // FontWeight.bold, + // color: Colors.black, + // fontSize: 34), + // ), + // ], + // ), + // ), + // ], + // ), + // ), + // Expanded( + // flex: 12, + // child: Padding( + // padding: + // const EdgeInsets.all(5.0), + // child: Card( + // elevation: 0, + // shape: RoundedRectangleBorder( + // borderRadius: + // BorderRadius.circular(10), + // ), + // child: Row( + // children: [ + // Expanded( + // flex: 9, + // child: Padding( + // padding: + // const EdgeInsets + // .only(left: 10), + // child: Column( + // children: [ + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // Expanded( + // flex: 7, + // child: + // Column( + // crossAxisAlignment: + // CrossAxisAlignment.start, + // mainAxisAlignment: + // MainAxisAlignment.start, + // children: [ + // const SizedBox( + // height: + // 13, + // ), + // Row( + // children: [ + // const Icon( + // Icons.location_on_rounded, + // size: 14, + // color: Colors.black38, + // ), + // const SizedBox( + // width: 4, + // ), + // Flexible( + // child: Text( + // "${controller.distanceKm??0} kms", + // style: const TextStyle(color: Colors.black87, overflow: TextOverflow.ellipsis, fontSize: 15), + // ), + // ) + // ], + // ), + // const SizedBox( + // height: + // 5, + // ), + // Row( + // children: [ + // + // const Text( + // "₹", + // style: TextStyle( + // // fontWeight: FontWeight.bold, + // color: Colors.black, + // fontSize: 18), + // ), + // const SizedBox( + // width: 5, + // ), + // Text( + // "", + // // "${data.orderamount}", + // + // style: const TextStyle(color: Colors.black87, fontSize: 15), + // ) + // ], + // ) + // ], + // ), + // ), + // ], + // )), + // ], + // ), + // ), + // ), + // ], + // ), + // ), + // ), + // ), + // ], + // ), + // ), + // ), + // ), + ], + ), + ), + ), + ), + + + ); + } + + +} diff --git a/lib/View/Dashboard/Tabs/Cancelledview.dart b/lib/View/Dashboard/Tabs/Cancelledview.dart new file mode 100644 index 0000000..ebfb5b0 --- /dev/null +++ b/lib/View/Dashboard/Tabs/Cancelledview.dart @@ -0,0 +1,683 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; + +import '../../../Controller/Dashboard/Tabs/Cancelledordercontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../Orderdetails/Orderdetailsview.dart'; + +class CancelledView extends StatelessWidget { + CancelledView({super.key}); + + CancelledOrderController completedOrderController = Get.put(CancelledOrderController()) ; + + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + body:Stack( + children: [ + GetBuilder( + initState: (_){ + completedOrderController.shimmer.value = true; + completedOrderController.getCancelledOrder(); + }, + builder: (controller) { + return + controller.getCancelledOrderList.isEmpty && + !controller.shimmer.value + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + + Text( + "No orders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + )) :controller.shimmer.value + ? orderShimmerCard(context) + : + Container( + padding: const EdgeInsets.only(left: 5, right: 5, top: 8), + child: ListView.builder( + padding: const EdgeInsets.only(bottom: 70), + itemCount: + controller.shimmer.value + ? 5 + :controller.getCancelledOrderList.length, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + Get.to(()=>OrderDetailsView(data: controller.getCancelledOrderList[index],)); + + }, + child: Card( + color: Colors.red[100]!.withAlpha(100), + // Utility.getLightColors(controller.getOrderAllList[index].tenantname![0]).withAlpha(100), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: SizedBox( + height: 180, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + // mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 12,bottom: 0), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + child: Column( + children: [ + Text( + DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.getCancelledOrderList[index].orderdate!)), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + const SizedBox( + height: 2, + ), + Text( + DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.getCancelledOrderList[index].orderdate!)), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + ], + ), + ), + + Column( + children: [ + const SizedBox( + width: 10, + ), + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 0,bottom: 5), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + // radius: 22, + // backgroundColor: Colors.white70, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + DateFormat("hh:mm").format(DateFormat("yyyy-mm-dd'T'HH:mm:ss", "en_US").parse(controller.getCancelledOrderList[index].deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + Text( + DateFormat("a").format(DateFormat("yyyy-mm-dd'T'HH:mm:ss", "en_US").parse(controller.getCancelledOrderList[index].deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + ], + ), + ), + const SizedBox(height: 5,) + ], + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // Expanded( + // flex: 6, + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.start, + // children: [ + // const SizedBox( + // height: 3, + // ), + // Row( + // children: [ + // Icon(Icons.business,color: ColorConstants.primaryColor,size: 20), + // const SizedBox(width: 5,), + // SizedBox( + // width: Get.width*0.30, + // child: Text( + // "${controller.getCompletedOrderList[index].tenantname}", + // style: const TextStyle( + // color: Colors.black87, + // fontWeight: FontWeight.w500, + // fontSize: 16), + // maxLines: 1, + // ), + // ), + // const Spacer(), + // Padding( + // padding: const EdgeInsets.only(top: 10,right: 10), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Container( + // // height:Get.height*0.03, + // // width: Get.width*0.3, + // decoration: BoxDecoration( + // color: ColorConstants.primaryColor, + // borderRadius: BorderRadius.circular(12)), + // // height:Get.height*0.03, + // // width: Get.width*0.3, + // child: Padding( + // padding: const EdgeInsets.all(5.0), + // child: Text( + // "${controller.getCompletedOrderList[index].orderid}", + // style: const TextStyle( + // fontSize: 11, color: Colors.white), + // ), + // ), + // ), + // ], + // ), + // ), + // + // ], + // ), + // const SizedBox( + // height: 3, + // ), + // Row( + // children: [ + // Icon( + // Icons.location_on_rounded, + // size: 20, + // color: ColorConstants.primaryColor, + // ), + // const SizedBox( + // width: 5, + // ), + // Flexible( + // child: (Text( + // "${controller.getCompletedOrderList[index].pickupaddress}", + // style: const TextStyle( + // color: Colors.black87, + // overflow: TextOverflow.visible, + // fontSize: 14), + // maxLines: 1, + // ))) + // ], + // ), + // ], + // ), + // ), + // ], + // )), + + Expanded( + flex: 4, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox( + height: 0, + ), + Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20), + const SizedBox(width: 5,), + Expanded( + child: Text( + controller.getCancelledOrderList[index].deliverycustomer??'', + style: const TextStyle( + color: Colors.black87, fontSize: 16), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 4,) + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.location_on_rounded, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCancelledOrderList[index].deliveryaddress}.", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ), + ), + + + const SizedBox( + width: 8, + ), + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.phone, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCancelledOrderList[index].deliverycontactno}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Row( + children: [ + Icon( + Icons.confirmation_num, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCancelledOrderList[index].orderid}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + + ], + ), + + + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ); + }), + ); + } + ), + ], + ), + ); + } + + orderShimmerCard(BuildContext context) { + return ListView.builder( + itemCount: 6, + itemBuilder: (_, __) { + return Padding( + padding: const EdgeInsets.all(3.0), + child: Container( + height: 190, + width: MediaQuery.of(context).size.width, + color: Colors.white, + child: Card( + color: Colors.grey[300], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(13), + ), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only(top: 15), + child: Container( + height: 45, + width: 45, + decoration: const BoxDecoration( + // shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + ], + ), + ), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Container( + height: 45, + width: 45, + decoration: const BoxDecoration( + // shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + Text( + '', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 11), + ), + ], + ), + ), + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + Expanded( + flex: 3, + child: Row( + children: [ + Expanded( + flex: 7, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + SizedBox( + height: 9, + ), + Row( + children: [ + Icon( + Icons.confirmation_num, + size: 22, + color: Colors.black38, + ), + SizedBox( + width: 6, + ), + Text( + "", + style: TextStyle( + color: Colors.grey, + fontWeight: + FontWeight.bold, + fontSize: 17), + ) + ], + ), + SizedBox( + height: 8, + ), + SizedBox(), + ], + ), + ), + Expanded( + flex: 3, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox( + height: 6, + ), + Text( + "", + style: TextStyle( + fontWeight: + FontWeight.bold, + fontSize: 18, + color: Colors.black), + ), + Text( + "", + style: TextStyle( + fontWeight: + FontWeight.bold, + fontSize: 15, + color: Colors.black), + ), + ], + ), + ) + ], + )), + const SizedBox( + height: 3, + ), + Expanded( + flex: 2, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + const SizedBox( + width: 40, + ), + Container( + height: 28, + width: 28, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.green, + ), + child: const Icon( + Icons.check, + color: Colors.white, + ), + ) + ], + )), + Expanded( + flex: 2, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + SizedBox( + width: 5, + ) + ], + ), + ), + const SizedBox( + height: 3, + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ), + ); + } + ); + } + +} diff --git a/lib/View/Dashboard/Tabs/Completedview.dart b/lib/View/Dashboard/Tabs/Completedview.dart new file mode 100644 index 0000000..1ca7588 --- /dev/null +++ b/lib/View/Dashboard/Tabs/Completedview.dart @@ -0,0 +1,683 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; + +import '../../../Controller/Dashboard/Tabs/Completedordercontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../Orderdetails/Orderdetailsview.dart'; + +class CompletedView extends StatelessWidget { + CompletedView({super.key}); + +CompletedOrderController completedOrderController = Get.put(CompletedOrderController()) ; + + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + body:Stack( + children: [ + GetBuilder( + initState: (_){ + completedOrderController.shimmer.value = true; + completedOrderController.getCompletedOrder(); + }, + builder: (controller) { + return + controller.getCompletedOrderList.isEmpty && + !controller.shimmer.value + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + + Text( + "No orders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + )) :controller.shimmer.value + ? orderShimmerCard(context) + : + Container( + padding: const EdgeInsets.only(left: 5, right: 5, top: 8), + child: ListView.builder( + padding: const EdgeInsets.only(bottom: 70), + itemCount: + controller.shimmer.value + ? 5 + :controller.getCompletedOrderList.length, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + Get.to(()=>OrderDetailsView(data: controller.getCompletedOrderList[index],)); + + }, + child: Card( + color: Colors.red[100]!.withAlpha(100), + // Utility.getLightColors(controller.getOrderAllList[index].tenantname![0]).withAlpha(100), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: SizedBox( + height: 180, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + // mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 12,bottom: 0), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + child: Column( + children: [ + Text( + DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.getCompletedOrderList[index].orderdate!)), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + const SizedBox( + height: 2, + ), + Text( + DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.getCompletedOrderList[index].orderdate!)), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + ], + ), + ), + + Column( + children: [ + const SizedBox( + width: 10, + ), + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 0,bottom: 5), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + // radius: 22, + // backgroundColor: Colors.white70, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + DateFormat("hh:mm").format(DateFormat("yyyy-mm-dd'T'HH:mm:ss", "en_US").parse(controller.getCompletedOrderList[index].deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + Text( + DateFormat("a").format(DateFormat("yyyy-mm-dd'T'HH:mm:ss", "en_US").parse(controller.getCompletedOrderList[index].deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + ], + ), + ), + const SizedBox(height: 5,) + ], + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // Expanded( + // flex: 6, + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.start, + // children: [ + // const SizedBox( + // height: 3, + // ), + // Row( + // children: [ + // Icon(Icons.business,color: ColorConstants.primaryColor,size: 20), + // const SizedBox(width: 5,), + // SizedBox( + // width: Get.width*0.30, + // child: Text( + // "${controller.getCompletedOrderList[index].tenantname}", + // style: const TextStyle( + // color: Colors.black87, + // fontWeight: FontWeight.w500, + // fontSize: 16), + // maxLines: 1, + // ), + // ), + // const Spacer(), + // Padding( + // padding: const EdgeInsets.only(top: 10,right: 10), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Container( + // // height:Get.height*0.03, + // // width: Get.width*0.3, + // decoration: BoxDecoration( + // color: ColorConstants.primaryColor, + // borderRadius: BorderRadius.circular(12)), + // // height:Get.height*0.03, + // // width: Get.width*0.3, + // child: Padding( + // padding: const EdgeInsets.all(5.0), + // child: Text( + // "${controller.getCompletedOrderList[index].orderid}", + // style: const TextStyle( + // fontSize: 11, color: Colors.white), + // ), + // ), + // ), + // ], + // ), + // ), + // + // ], + // ), + // const SizedBox( + // height: 3, + // ), + // Row( + // children: [ + // Icon( + // Icons.location_on_rounded, + // size: 20, + // color: ColorConstants.primaryColor, + // ), + // const SizedBox( + // width: 5, + // ), + // Flexible( + // child: (Text( + // "${controller.getCompletedOrderList[index].pickupaddress}", + // style: const TextStyle( + // color: Colors.black87, + // overflow: TextOverflow.visible, + // fontSize: 14), + // maxLines: 1, + // ))) + // ], + // ), + // ], + // ), + // ), + // ], + // )), + + Expanded( + flex: 4, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox( + height: 0, + ), + Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20), + const SizedBox(width: 5,), + Expanded( + child: Text( + controller.getCompletedOrderList[index].deliverycustomer??'', + style: const TextStyle( + color: Colors.black87, fontSize: 16), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 4,) + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.location_on_rounded, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCompletedOrderList[index].deliveryaddress}.", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ), + ), + + + const SizedBox( + width: 8, + ), + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.phone, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCompletedOrderList[index].deliverycontactno}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Row( + children: [ + Icon( + Icons.confirmation_num, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCompletedOrderList[index].orderid}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + + ], + ), + + + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ); + }), + ); + } + ), + ], + ), + ); + } + + orderShimmerCard(BuildContext context) { + return ListView.builder( + itemCount: 6, + itemBuilder: (_, __) { + return Padding( + padding: const EdgeInsets.all(3.0), + child: Container( + height: 190, + width: MediaQuery.of(context).size.width, + color: Colors.white, + child: Card( + color: Colors.grey[300], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(13), + ), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only(top: 15), + child: Container( + height: 45, + width: 45, + decoration: const BoxDecoration( + // shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + ], + ), + ), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Container( + height: 45, + width: 45, + decoration: const BoxDecoration( + // shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + Text( + '', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 11), + ), + ], + ), + ), + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + Expanded( + flex: 3, + child: Row( + children: [ + Expanded( + flex: 7, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + SizedBox( + height: 9, + ), + Row( + children: [ + Icon( + Icons.confirmation_num, + size: 22, + color: Colors.black38, + ), + SizedBox( + width: 6, + ), + Text( + "", + style: TextStyle( + color: Colors.grey, + fontWeight: + FontWeight.bold, + fontSize: 17), + ) + ], + ), + SizedBox( + height: 8, + ), + SizedBox(), + ], + ), + ), + Expanded( + flex: 3, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox( + height: 6, + ), + Text( + "", + style: TextStyle( + fontWeight: + FontWeight.bold, + fontSize: 18, + color: Colors.black), + ), + Text( + "", + style: TextStyle( + fontWeight: + FontWeight.bold, + fontSize: 15, + color: Colors.black), + ), + ], + ), + ) + ], + )), + const SizedBox( + height: 3, + ), + Expanded( + flex: 2, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + const SizedBox( + width: 40, + ), + Container( + height: 28, + width: 28, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.green, + ), + child: const Icon( + Icons.check, + color: Colors.white, + ), + ) + ], + )), + Expanded( + flex: 2, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + SizedBox( + width: 5, + ) + ], + ), + ), + const SizedBox( + height: 3, + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ), + ); + } + ); + } + +} diff --git a/lib/View/Dashboard/Tabs/Createdview.dart b/lib/View/Dashboard/Tabs/Createdview.dart new file mode 100644 index 0000000..574a962 --- /dev/null +++ b/lib/View/Dashboard/Tabs/Createdview.dart @@ -0,0 +1,566 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; + +import 'package:percent_indicator/circular_percent_indicator.dart'; +import '../../../Controller/Orders/Ordercontroller.dart'; +import '../../../Controller/products/product_controller.dart'; +import '../../../Globalwidgets/textwidget.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/Logger.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../../widgets/product_bottom_sheet.dart'; +import '../../Orders/Deliverydetails/delivery_detail_view.dart'; +import '../Dashboardview.dart'; + + +class OrderView extends StatelessWidget { + const OrderView({super.key}); + + @override + Widget build(BuildContext context) { + final OrderController controller = Get.put(OrderController()); + controller.getOrders('today'); + + return DefaultTabController( + length: 4, + child: Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + title: Obx(() { + return controller.searchMode.value + ? TextField( + controller: controller.searchController, + autofocus: true, + decoration: InputDecoration( + hintText: 'Search Orders', + filled: true, + fillColor: Colors.white, + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide.none, + ), + suffixIcon: IconButton( + icon: const Icon(Icons.close, color: ColorConstants.primaryColor), + onPressed: () { + controller.searchController.clear(); + controller.searchMode.value = false; + controller.search(''); + }, + ), + ), + onChanged: (value) { + controller.search(value); + }, + ) + : const TextWidget( + text: 'Orders', + fontWeight: FontWeight.w700, + fontSize: 20, + ); + }), + + actions: [ + /// Search icon — hidden when searchMode is ON + Obx(() { + if (controller.currentTabIndex.value == 3) { + return SizedBox(); + } + + return controller.searchMode.value + ? SizedBox() // <- Hides extra close icon + : IconButton( + icon: const Icon(Icons.search, color: ColorConstants.primaryColor), + onPressed: () { + controller.searchMode.value = true; + }, + ); + }), + ], + + bottom: TabBar( + indicatorColor: ColorConstants.primaryColor, + labelColor: ColorConstants.primaryColor, + unselectedLabelColor: ColorConstants.darkGreyColor, + onTap: (index) { + controller.currentTabIndex.value = index; + + switch (index) { + case 0: controller.getOrders('today'); break; + case 1: controller.getOrders('week'); break; + case 2: controller.getOrders('month'); break; + case 3: controller.getSummary(); break; + } + + controller.searchMode.value = false; + controller.searchController.clear(); + controller.update(); + }, + tabs: const [ + Tab(text: 'Today'), + Tab(text: 'This Week'), + Tab(text: 'This Month'), + Tab(text: 'Summary'), + ], + ), + ), + + + body: Column( + children: [ + SizedBox(height: 10,), + Expanded( + child: TabBarView( + physics: NeverScrollableScrollPhysics(), + children: [ + /// Today Tab + OrderListView(controller: controller), + /// Week Tab + OrderListView(controller: controller), + /// Month Tab + OrderListView(controller: controller), + /// Summary Tab + GetBuilder( + builder: (_) { + return OrderInsightsGrid( + total: controller.orderSummaryDetails.total ?? 0, + pending: controller.orderSummaryDetails.pending ?? 0, + delivered: controller.orderSummaryDetails.delivered ?? 0, + cancelled: controller.orderSummaryDetails.cancelled ?? 0, + ); + }, + ), + ], + ), + ), + ], + ), + ), + ); + } +} + +/// Widget to display the list of orders +class OrderListView extends StatelessWidget { + final OrderController controller; + + OrderListView({super.key, required this.controller}); + + final ProductController productController = Get.put(ProductController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + builder: (controller) { + if (controller.isOrdersLoading.value) { + return const Center(child: ShimmerListView(height: 180)); + } + final displayList = controller.searchMode.value ? + controller.searchOrderList : + controller.orderAllList; + logger.i('orderAllList : ${controller.orderAllList}'); + logger.i('SearchList : ${controller.searchOrderList}'); + logger.i('DisplayList : ${displayList}'); + return Column( + children: [ + // Visibility( + // visible: controller.currentTabIndex.value != 3 && controller.orderAllList.isNotEmpty, + // child: Padding( + // padding: const EdgeInsets.all(12.0), + // child: TextField( + // controller: controller.searchController, + // decoration: InputDecoration( + // hintText: 'Search Orders', + // filled: true, + // fillColor: ColorConstants.secondaryColor, + // border: OutlineInputBorder( + // borderRadius: BorderRadius.circular(8.0), + // ), + // enabledBorder: OutlineInputBorder( + // borderSide: BorderSide(color: Colors.grey.shade300), + // borderRadius: BorderRadius.circular(8.0), + // ), + // focusedBorder: OutlineInputBorder( + // borderSide: BorderSide( + // color: ColorConstants.primaryColor, width: 2), + // borderRadius: BorderRadius.circular(8.0), + // ), + // suffixIcon: Visibility( + // visible: controller.searchController.text.isNotEmpty, + // child: IconButton( + // icon: const Icon( + // Icons.cancel, + // color: ColorConstants.primaryColor, + // ), + // onPressed: () { + // controller.searchController.clear(); + // controller.search(controller.searchController.text); + // controller.searchMode.value = false; + // FocusScope.of(context).unfocus(); + // }, + // ), + // ), + // ), + // onChanged: (value) { + // controller.search(value); + // }, + // ), + // ), + // ), + Expanded( + child: displayList.isEmpty && !controller.isOrdersLoading.value + ? emptyOrdersWidget() + : ListView.builder( + itemCount: displayList.length, + itemBuilder: (context, index) { + final order = displayList[index]; + logger.i('FinalOrder : ${order.orderid}'); + return OrderListItem( + order: order, + controller: controller, + index: index, + ); + }, + ), + ), + ], + ); + }, + ); + } +} + +/// Order List Items +class OrderListItem extends StatelessWidget { + final DeliveriesDetails order; + final int index; + final dynamic controller; + + OrderListItem({ + Key? key, + required this.order, + required this.index, + required this.controller, + }) : super(key: key); + + final ProductController productController = Get.put(ProductController()); + + @override + Widget build(BuildContext context) { + // final currentOrder = controller.orderAllList[index]; + + logger.i('Current Order List : ${order.orderid}'); + + final date = order.deliverydate != "" + ? DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(order.deliverydate!) + : null; + + final formattedDate = date != null ? DateFormat("dd MMM yyyy").format(date) : "--"; + final time = date != null ? DateFormat("hh:mm a").format(date) : "--:--"; + logger.i('Current Order : ${order.actualkms}'); + + return Card( + margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 5), + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () async { + final orderId = order.orderheaderid ?? 0; + print("order id :${orderId}"); + // Fetch products for this order + await productController.getProductDetails(orderId); + + + Get.to(() => OrderDetailsPage( + productDetails: productController.productDetail, + orderDetails: order, + ) + ); + + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Order ID, Date, and Info Icon Row + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Order ID: ${order.orderid}", + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + const SizedBox(height: 4), + Row( + children: [ + Text( + formattedDate, + style: const TextStyle( + color: Colors.grey, + fontSize: 13, + ), + ), + const SizedBox(width: 5), + Container( + height: 10, + width: 1, + color: Colors.grey, + ), + const SizedBox(width: 5), + Text( + time, + style: const TextStyle( + color: Colors.grey, + fontSize: 13, + ), + ), + ], + ), + ], + ), + IconButton( + padding: EdgeInsets.zero, + icon: const Icon(Icons.info_outline, size: 20), + onPressed: () async { + final orderId = order.orderheaderid ?? 1; + await productController.getProductDetails(orderId); + if (context.mounted) { + ProductBottomSheet.show(context, productController.productDetail, isAmountReceived: true); + } + }, + ), + ], + ), + + const SizedBox(height: 12), + + // Distance Row + Row( + children: [ + const Icon(Icons.delivery_dining, size: 20, color: Colors.orange), + const SizedBox(width: 6), + Text( + "${order.actualkms != null && order.actualkms != 'null' ? order.actualkms : '0.0'} Km", + style: const TextStyle(fontWeight: FontWeight.w500), + ), + ], + ), + + const SizedBox(height: 12), + + // Rider and Customer Info + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon(Icons.person, size: 20, color: Colors.teal), + const SizedBox(width: 6), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Rider: ${order.ridername ?? "Unknown"}", + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500), + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 4), + Text( + "Customer: ${order.deliverycustomer ?? "Unknown"}", + style: const TextStyle(fontSize: 14, color: Colors.grey), + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + ], + ), + + const SizedBox(height: 10), + + + // Payment and Status Row + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const Icon(Icons.wallet, size: 20, color: Colors.green), + const SizedBox(width: 6), + Text( + "₹ ${order.orderamount ?? 0}", + style: const TextStyle(fontWeight: FontWeight.w600), + ), + ], + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: _getStatusColor(order.orderstatus), + borderRadius: BorderRadius.circular(12), + ), + child: Text( + order.orderstatus?.toUpperCase() ?? "-", + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 13, + color: Colors.white, + ), + ), + ), + ], + ), + ], + ), + ), + ), + ); + } + + Color _getStatusColor(String? status) { + switch (status) { + case 'delivered': + return Colors.green; + case 'cancelled': + return Colors.red; + default: + return Colors.orange; + } + } +} + + + +class OrderInsightsGrid extends StatelessWidget { + final int total; + final int pending; + final int delivered; + final int cancelled; + + OrderInsightsGrid({ + super.key, + required this.total, + required this.pending, + required this.delivered, + required this.cancelled, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(16.0), + child: GridView.count( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + crossAxisCount: 2, + mainAxisSpacing: 16, + crossAxisSpacing: 16, + childAspectRatio: .70, + children: [ + _buildInsightCard( + label: "Total Orders", + count: total, + icon: Icons.list_alt, + color: Colors.blue, + showChart: false, + ), + _buildInsightCard( + label: "Pending", + count: pending, + percent: total > 0 ? pending / total : 0.0, + icon: Icons.schedule, + color: Colors.orange, + ), + _buildInsightCard( + label: "Delivered", + count: delivered, + percent: total > 0 ? delivered / total : 0.0, + icon: Icons.check_circle, + color: Colors.green, + ), + _buildInsightCard( + label: "Cancelled", + count: cancelled, + percent: total > 0 ? cancelled / total : 0.0, + icon: Icons.cancel, + color: Colors.red, + ), + ], + ), + ); + } + + Widget _buildInsightCard({ + required String label, + required int count, + double percent = 1.0, + required IconData icon, + required Color color, + bool showChart = true, + }) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + ), + padding: const EdgeInsets.all(16), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + if (showChart) + SizedBox( + height: 60, + width: 60, + child: CircularPercentIndicator( + radius: 30, + lineWidth: 5, + percent: percent.clamp(0.0, 1.0), + center: Icon(icon, color: color, size: 24), + backgroundColor: color.withOpacity(0.1), + progressColor: color, + animation: true, + ), + ) + else + Icon(icon, color: color, size: 32), + const SizedBox(height: 12), + TextWidget( + text: "$count", + fontWeight: FontWeight.w700, + color: color, + fontSize: 20, + ), + const SizedBox(height: 6), + TextWidget( + text: label, + fontSize: 16, + textAlign: TextAlign.center, + ), + if (showChart) + Padding( + padding: const EdgeInsets.only(top: 4), + child: TextWidget( + text: "${(percent * 100).toStringAsFixed(1)}%", + fontSize: 14, + color: ColorConstants.darkGreyColor?.withOpacity(0.5), + fontWeight: FontWeight.w700, + ), + ), + ], + ), + ); + } + +} + + + diff --git a/lib/View/Dashboard/Tabs/Ongoingview.dart b/lib/View/Dashboard/Tabs/Ongoingview.dart new file mode 100644 index 0000000..1bba6ad --- /dev/null +++ b/lib/View/Dashboard/Tabs/Ongoingview.dart @@ -0,0 +1,681 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../../Controller/Dashboard/Tabs/Ongoingordercontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/utility.dart'; +import '../Orderdetails/Orderdetailsview.dart'; + +class OnGoingView extends StatelessWidget { + OnGoingView({super.key}); + + OnGoingOrderController onGoingOrderController = Get.put(OnGoingOrderController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[100], + body:Stack( + children: [ + GetBuilder( + initState: (_){ + onGoingOrderController.shimmer.value = true; + onGoingOrderController.getCurrentOrder(); + }, + builder: (controller) { + return + controller.getCurrentOrderList.isEmpty && + !controller.shimmer.value + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + + Text( + "No orders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + )) :controller.shimmer.value + ? orderShimmerCard(context) + : + Container( + padding: const EdgeInsets.only(left: 5, right: 5, top: 8), + child: ListView.builder( + padding: const EdgeInsets.only(bottom: 70), + itemCount: + controller.shimmer.value + ? 5 + :controller.getCurrentOrderList.length, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: (){ + Get.to(()=>OrderDetailsView(data: controller.getCurrentOrderList[index],)); + }, + child: Card( + color: Colors.red[100]!.withAlpha(100), + // Utility.getLightColors(controller.getOrderAllList[index].tenantname![0]).withAlpha(100), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: SizedBox( + height: 180, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + // mainAxisSize: MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceBetween, + children: [ + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 12,bottom: 0), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + child: Column( + children: [ + Text( + DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.getCurrentOrderList[index].orderdate!)), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + const SizedBox( + height: 2, + ), + Text( + DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.getCurrentOrderList[index].orderdate!)), + + style: const TextStyle( + fontSize: 12, + fontWeight: + FontWeight + .w700), + ), + ], + ), + ), + + Column( + children: [ + const SizedBox( + width: 10, + ), + Container( + width:45, + margin: const EdgeInsets.only(left: 8,right: 0,top: 0,bottom: 5), + padding: const EdgeInsets.only(left: 5,right: 5,top: 5,bottom: 5), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + // shape: BoxShape.circle + ), + // radius: 22, + // backgroundColor: Colors.white70, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + DateFormat("hh:mm").format(DateFormat("yyyy-mm-dd'T'HH:mm:ss", "en_US").parse(controller.getCurrentOrderList[index].deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + Text( + DateFormat("a").format(DateFormat("yyyy-mm-dd'T'HH:mm:ss", "en_US").parse(controller.getCurrentOrderList[index].deliverydate??'')), + style: const TextStyle(fontSize: 11,color: Colors.black,fontWeight: FontWeight.bold)), + const SizedBox(height: 2,), + ], + ), + ), + const SizedBox(height: 5,) + ], + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + // Expanded( + // flex: 3, + // child: Row( + // children: [ + // Expanded( + // flex: 6, + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.start, + // children: [ + // const SizedBox( + // height: 3, + // ), + // Row( + // children: [ + // Icon(Icons.business,color: ColorConstants.primaryColor,size: 20), + // const SizedBox(width: 5,), + // SizedBox( + // width: Get.width*0.30, + // child: Text( + // "${controller.getCurrentOrderList[index].tenantname}", + // style: const TextStyle( + // color: Colors.black87, + // fontWeight: FontWeight.w500, + // fontSize: 16), + // maxLines: 1, + // ), + // ), + // const Spacer(), + // Padding( + // padding: const EdgeInsets.only(top: 10,right: 10), + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Container( + // // height:Get.height*0.03, + // // width: Get.width*0.3, + // decoration: BoxDecoration( + // color: ColorConstants.primaryColor, + // borderRadius: BorderRadius.circular(12)), + // // height:Get.height*0.03, + // // width: Get.width*0.3, + // child: Padding( + // padding: const EdgeInsets.all(5.0), + // child: Text( + // "${controller.getCurrentOrderList[index].orderid}", + // style: const TextStyle( + // fontSize: 11, color: Colors.white), + // ), + // ), + // ), + // ], + // ), + // ), + // + // ], + // ), + // const SizedBox( + // height: 3, + // ), + // Row( + // children: [ + // Icon( + // Icons.location_on_rounded, + // size: 20, + // color: ColorConstants.primaryColor, + // ), + // const SizedBox( + // width: 5, + // ), + // Flexible( + // child: (Text( + // "${controller.getCurrentOrderList[index].pickupaddress}", + // style: const TextStyle( + // color: Colors.black87, + // overflow: TextOverflow.visible, + // fontSize: 14), + // maxLines: 1, + // ))) + // ], + // ), + // ], + // ), + // ), + // ], + // )), + + Expanded( + flex: 4, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox( + height: 0, + ), + Row( + children: [ + Icon(Icons.person,color: ColorConstants.primaryColor,size: 20), + const SizedBox(width: 5,), + Expanded( + child: Text( + controller.getCurrentOrderList[index].deliverycustomer??'', + style: const TextStyle( + color: Colors.black87, fontSize: 16), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 4,) + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.location_on_rounded, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCurrentOrderList[index].deliveryaddress}.", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ), + ), + + + const SizedBox( + width: 8, + ), + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Icon( + Icons.phone, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCurrentOrderList[index].deliverycontactno}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + const SizedBox( + height:5, + ), + Row( + children: [ + Row( + children: [ + Icon( + Icons.confirmation_num, + size: 20, + color: ColorConstants.primaryColor, + ), + const SizedBox( + width: 5, + ), + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + "${controller.getCurrentOrderList[index].orderid}", + style: const TextStyle( + color: Colors.black87, + overflow: TextOverflow.visible, + fontSize: 14), + ), + ), + + ], + ), + + ], + ), + + + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ); + }), + ); + } + ), + ], + ), + ); + } + + orderShimmerCard(BuildContext context) { + return ListView.builder( + itemCount: 6, + itemBuilder: (_, __) { + return Padding( + padding: const EdgeInsets.all(3.0), + child: Container( + height: 190, + width: MediaQuery.of(context).size.width, + color: Colors.white, + child: Card( + color: Colors.grey[300], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(13), + ), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Padding( + padding: const EdgeInsets.only(top: 15), + child: Container( + height: 45, + width: 45, + decoration: const BoxDecoration( + // shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + ], + ), + ), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.only(bottom: 15), + child: Container( + height: 45, + width: 45, + decoration: const BoxDecoration( + // shape: BoxShape.circle, + color: Colors.white, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 12), + ), + Text( + '', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + fontSize: 11), + ), + ], + ), + ), + ), + ], + ), + ), + Expanded( + flex: 12, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + child: Row( + children: [ + Expanded( + flex: 7, + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + children: [ + Expanded( + flex: 3, + child: Row( + children: [ + Expanded( + flex: 7, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + SizedBox( + height: 9, + ), + Row( + children: [ + Icon( + Icons.confirmation_num, + size: 22, + color: Colors.black38, + ), + SizedBox( + width: 6, + ), + Text( + "", + style: TextStyle( + color: Colors.grey, + fontWeight: + FontWeight.bold, + fontSize: 17), + ) + ], + ), + SizedBox( + height: 8, + ), + SizedBox(), + ], + ), + ), + Expanded( + flex: 3, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox( + height: 6, + ), + Text( + "", + style: TextStyle( + fontWeight: + FontWeight.bold, + fontSize: 18, + color: Colors.black), + ), + Text( + "", + style: TextStyle( + fontWeight: + FontWeight.bold, + fontSize: 15, + color: Colors.black), + ), + ], + ), + ) + ], + )), + const SizedBox( + height: 3, + ), + Expanded( + flex: 2, + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + children: [ + const SizedBox( + width: 40, + ), + Container( + height: 28, + width: 28, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.green, + ), + child: const Icon( + Icons.check, + color: Colors.white, + ), + ) + ], + )), + Expanded( + flex: 2, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + Column( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Text( + "", + style: TextStyle( + fontSize: 13, + color: Colors.black), + ), + ], + ), + SizedBox( + width: 5, + ) + ], + ), + ), + const SizedBox( + height: 3, + ), + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ), + ); + } + ); + } + +} diff --git a/lib/View/Googlemap/Googlemapview.dart b/lib/View/Googlemap/Googlemapview.dart new file mode 100644 index 0000000..c46e615 --- /dev/null +++ b/lib/View/Googlemap/Googlemapview.dart @@ -0,0 +1,303 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; + +import '../../Controller/Createorder/Createordercontroller.dart'; +import '../../Controller/Createorder/Drop/Googlemap/Googlemapcontroller.dart'; +import '../../Helper/Constants/Colorconstants.dart'; + +class DropGoogleMapView extends StatelessWidget { + final double lat; + final double long; + + DropGoogleMapView ({Key? key,required this.lat, required this.long,}) : super(key: key); + + DropGoogleMapsController googleMapController = Get.put(DropGoogleMapsController()); + CreateOrderController createOrderController = Get.put(CreateOrderController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + + elevation: 0.5, + backgroundColor: ColorConstants.primaryColor, + title: const Text( + 'Select Location', + style: TextStyle( + color: Colors.white, + ), + ), + ), + body: GetBuilder( + initState: (_){ + DropGoogleMapsController.currentLatitude =lat; + DropGoogleMapsController.currentLongitude =long; + DropGoogleMapsController.center = LatLng(DropGoogleMapsController.currentLatitude!, DropGoogleMapsController.currentLongitude!); + googleMapController.kGooglePlex = CameraPosition( + target: LatLng(DropGoogleMapsController.currentLatitude!, DropGoogleMapsController.currentLongitude!), + zoom: 14.4746, + ); + googleMapController.getCountry(); + }, + builder: (controller) { + return Container( + child: Column( + // fit: StackFit.loose, + children: [ + Container( + child: Row( + children: [ + Container( + width: MediaQuery.of(context).size.width, + color: Colors.white, + height: 60, + padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8), + child: TextField( + controller: controller.searchController, + decoration: InputDecoration( + suffixIcon: Icon(Icons.search), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.grey[300]!, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + labelText: 'Search', + labelStyle: TextStyle(color: Colors.black45)), + onChanged: (text) async { + if(text.isEmpty){ + controller.dropPredictions.clear(); + FocusScope.of(context).unfocus(); + controller.update(); + } + else { + controller + .onSearchDropTextChanged( + text); + } + }, + ), + ), + ], + )), + controller.dropPredictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + decoration: BoxDecoration(color: ColorConstants.secondaryColor,borderRadius: BorderRadius.circular(1)), + child: Obx(() { + return ListView.builder( + itemCount: controller.dropPredictions.length, + itemBuilder: (context, index) { + final prediction = + controller.dropPredictions[index]['description']; + return ListTile( + title: Text(prediction,style: TextStyle(color: ColorConstants.darkGreyColor),), + onTap: () { + final placeId = + controller.dropPredictions[index]['place_id']; + controller.getDropPlaceDetails(placeId,prediction); + googleMapController.searchController.clear(); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox(), + Expanded( + flex: 7, + child: GoogleMap( + myLocationButtonEnabled: true, + myLocationEnabled: true, + mapType: MapType.normal, + initialCameraPosition: controller.kGooglePlex!, + markers: controller.markers, + onCameraMove: (position) { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + DropGoogleMapsController.center = position.target; + controller.update(); + print('positionsssprint$position'); + onAddMarkerButtonPressed(DropGoogleMapsController.center!); + // Update the markers for the updated position.zoom + }, + onCameraIdle: () async { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + await controller.getAddressFromLatLong( + DropGoogleMapsController.center!.latitude, DropGoogleMapsController.center!.longitude); + controller.update(); + print("addressOnCameraIdle${controller.address}"); + + onAddMarkerButtonPressed(DropGoogleMapsController.center!); + }, + onTap: (latLong) async { + if (controller.markers.length >= 1) { + controller.markers.clear(); + } + DropGoogleMapsController.center = latLong; + print('_lastMapPosition${DropGoogleMapsController.center}'); + await controller.getAddressFromLatLong( + DropGoogleMapsController.center!.latitude, DropGoogleMapsController.center!.longitude); + print('address${controller.address}'); + controller.update(); + onAddMarkerButtonPressed(DropGoogleMapsController.center!); + }, + onMapCreated: (GoogleMapController controllers) { + controller.mapController = controllers; + controller.controllers.complete(controllers); + }, + ), + ), + ], + ), + ); + } + ), + floatingActionButton: FloatingActionButton( + onPressed: () async { + if (googleMapController.markers.length >= 1) { + googleMapController.markers.clear(); + } + googleMapController.getAddressFromLatLong( + lat, long); + DropGoogleMapsController.center = LatLng(lat,long); + googleMapController.markers.add( + Marker( + markerId: MarkerId(DropGoogleMapsController.center.toString()), + position: DropGoogleMapsController.center!, + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + DropGoogleMapsController.center = latLong; + await googleMapController.getAddressFromLatLong( + latLong.latitude, latLong.longitude); + googleMapController.update(); + }, + onDrag: (latLong) { + DropGoogleMapsController.center = latLong; + googleMapController.update(); + }, + infoWindow: InfoWindow( + title: 'My Location', + ), + icon: BitmapDescriptor.defaultMarker, + ), + ); + googleMapController.kGooglePlex = CameraPosition( + target: LatLng(lat, long), + zoom: 14.4746, + ); + googleMapController.goToThePosition(googleMapController.kGooglePlex); + googleMapController.update(); + print("addressOnCameraIdle${googleMapController.address}"); + // _onAddMarkerButtonPressed(_center!); + }, + child: Icon(Icons.refresh, color: Colors.white)), + floatingActionButtonLocation: FloatingActionButtonLocation.startFloat, + bottomNavigationBar: GetBuilder( + builder: (controller) { + return Container( + height: 120, + color: Colors.white, + padding: EdgeInsets.all(8), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children: [ + Icon(Icons.location_on), + SizedBox( + width: 10, + ), + Expanded( + child: Text( + controller.dropAddressController.text??'', + maxLines: 2, + softWrap: true, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + SizedBox( + height: 8, + ), + Container( + height: 50, + margin: EdgeInsets.only(left: 15,right: 15), + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + borderRadius: BorderRadius.circular(20), + ), + child: InkWell( + onTap: () { + createOrderController.dropCityController.text = controller.dropCityController.text; + createOrderController.dropStateController.text = controller.dropStateController.text ; + createOrderController.dropSuburbController.text = controller.dropSuburbController.text ; + createOrderController.dropPostcodeController.text = controller.dropPostcodeController.text ; + createOrderController.dropAddressController.text = controller.dropAddressController.text ; + createOrderController.dropAddressController.text = controller.toAddress??''; + createOrderController.toLatitude = controller.toLatitude; + createOrderController.toLongitude = controller.toLongitude; + print('dropAddressControllergooglemap ${controller.dropAddressController.text}'); + controller.update(); + Navigator.pop(context); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Continue', + style: TextStyle(color: Colors.white), + ), + ], + ), + ), + ) + ], + ), + ); + } + ), + ); + } + + onAddMarkerButtonPressed(latLong) { + googleMapController.update(); + googleMapController.markers.add( + Marker( + markerId: MarkerId(DropGoogleMapsController.center.toString()), + position: DropGoogleMapsController.center!, + draggable: true, + onDragEnd: (latLong) async { + print('latLongDrag$latLong'); + DropGoogleMapsController.center = latLong; + googleMapController.address = googleMapController.getAddressFromLatLong( + latLong.latitude, latLong.longitude); + googleMapController.update(); + }, + onDrag: (latLong) { + DropGoogleMapsController.center = latLong; + googleMapController.update(); + }, + infoWindow: InfoWindow( + title: 'My Location', + // snippet: googleMapController.address, + + ), + icon: BitmapDescriptor.defaultMarker, + ), + ); + } + +} diff --git a/lib/View/Home/Homeview.dart b/lib/View/Home/Homeview.dart new file mode 100644 index 0000000..b9bc0eb --- /dev/null +++ b/lib/View/Home/Homeview.dart @@ -0,0 +1,96 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../Controller/Home/Homecontroller.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/toast.dart'; +import '../Customers/Customersview.dart'; +import '../Dashboard/Dashboardview.dart'; +import '../Dashboard/Tabs/Createdview.dart'; +import '../More/Moreview.dart'; +import '../Orders/Orderspage.dart'; + + +class HomeView extends StatelessWidget { + final int selectedIndex; + + HomeView({super.key, required this.selectedIndex}); + + HomeController homeController = Get.put(HomeController()); + + DateTime? currentBackPressTime; + + Future _willPopCallback() async { + DateTime now = DateTime.now(); + if (currentBackPressTime == null || + now.difference(currentBackPressTime!) > Duration(seconds: 1)) { + currentBackPressTime = now; + Toast.showToast("Press one more time to exit"); + return Future.value(false); + }else{ + Get.back(); + return Future.value(true); + + } + } + + @override + Widget build(BuildContext context) { + final List widgetOptionsNearle = _widgetOptionsNearle(); + + return GetBuilder(initState: (_) { + homeController.selectedIndex = selectedIndex; + }, builder: (controller) { + return WillPopScope( + onWillPop: _willPopCallback, + child: Scaffold( + bottomNavigationBar: BottomNavigationBar( + type: BottomNavigationBarType.fixed, + items: [ + const BottomNavigationBarItem( + icon: Icon(Icons.home), + label: 'Home', + ), + const BottomNavigationBarItem( + icon: Icon(Icons.shopping_cart), + label: 'Orders', + ), + const BottomNavigationBarItem( + icon: Icon(Icons.shopping_bag), + label: 'Products', + ), + const BottomNavigationBarItem( + icon: Icon(Icons.people), + label: 'Customers', + ), + const BottomNavigationBarItem( + icon: Icon(Icons.person), + label: 'Accounts', + ), + ], + currentIndex: homeController.selectedIndex, + selectedItemColor: ColorConstants.primaryColor, + unselectedItemColor: Colors.grey, + onTap: homeController.onItemTapped, + ), + body: widgetOptionsNearle[controller.selectedIndex], + ), + ); + }); + } + + + + List _widgetOptionsNearle() => + [ + DashboardView(), + OrderView(), + ProductView(), + CustomerView(), + // ReassignRidersView(deliveryDetails: DeliveriesDetails()), + MoreView() + ]; + +} + + diff --git a/lib/View/Internet/Internetcheckview.dart b/lib/View/Internet/Internetcheckview.dart new file mode 100644 index 0000000..aed6290 --- /dev/null +++ b/lib/View/Internet/Internetcheckview.dart @@ -0,0 +1,139 @@ +import 'package:flutter/material.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:get/get.dart'; +import 'package:flutter/services.dart'; +import 'package:lottie/lottie.dart'; +import '../../Helper/Constants/Assetconstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/toast.dart'; + + +class NoInternetScreen extends StatelessWidget { + final connectivityResult; + + NoInternetScreen({super.key, this.connectivityResult}); + final _scaffoldKey = GlobalKey(); + // InterNetConnectionController interNetConnectionController = Get.put(InterNetConnectionController()); + + Future actionFunction() { + SystemNavigator.pop(); + return Future.value(true); + } + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: ()async{ + bool navigateStatus = false; + if(connectivityResult.contains(ConnectivityResult.wifi) || connectivityResult.contains(ConnectivityResult.mobile) ||connectivityResult.contains(ConnectivityResult.ethernet) ||connectivityResult.contains(ConnectivityResult.vpn)){ + navigateStatus = true; + } + + return navigateStatus; + }, + child: Scaffold( + key: _scaffoldKey, + body: Container( + height: Get.height, + width: Get.width, + color: ColorConstants.secondaryColor, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Stack( + alignment: Alignment.topLeft, + children: [ + Container( + height: Get.height * 0.25, + width: Get.width, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage( + AssetConstants.nearleAppbarTop, + ), + fit: BoxFit.fill), + // color: ColorConstants.primaryColor, + borderRadius: BorderRadius.only( + bottomLeft: Radius.elliptical(20, 20), + bottomRight: Radius.elliptical(20, 20))), + ), + Padding( + padding: const EdgeInsets.only(top: 64, left: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + CircleAvatar( + radius: 40, + backgroundColor: Colors.white, + child: SizedBox( + height: Get.height*0.08, + width: Get.width*0.7, + child: Image.asset(AssetConstants.nearleAppbarDarkLogo), + + ), + ), + + SizedBox( + height: Get.height*0.09, + width: Get.width*0.6, + child: Padding( + padding: const EdgeInsets.only(left: 25), + child: Image.asset(AssetConstants.nearleTextLogoWhite), + ), + + ), + ], + ), + ), + ], + ), + + + const Padding( + padding: EdgeInsets.only(left: 30,right: 30), + child: Text( + "Please Connect to the Network and Try Again", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 20,height: 1.4, + color: ColorConstants.primaryColor, + fontFamily: 'Inter', + fontWeight: FontWeight.bold + ), + + ), + ), + const SizedBox( + height: 40, + ), + + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: Get.height*0.50, + width: Get.width*0.6, + color:ColorConstants.secondaryColor, + child: Lottie.asset('assets/images/nointernet.json',width: Get.width*0.8,fit: BoxFit.cover)), + ], + ), + + ], + ), + ), + bottomNavigationBar: Container( + height: Get.height*0.1, + width: Get.width, + decoration: const BoxDecoration( + image:DecorationImage(image:AssetImage(AssetConstants.nearleAppbarBottom,),fit: BoxFit.fill), + // color: ColorConstants.primaryColor, + borderRadius: BorderRadius.only( + bottomLeft: Radius.elliptical(3, 3), + bottomRight: Radius.elliptical(3, 3))), + ), + + ), + ); + } +} diff --git a/lib/View/Introscreen/Introscreenview.dart b/lib/View/Introscreen/Introscreenview.dart new file mode 100644 index 0000000..e529dbb --- /dev/null +++ b/lib/View/Introscreen/Introscreenview.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intro_slider/intro_slider.dart'; +import '../../Controller/Introscreen/Introscreencontroller.dart'; +import '../../Helper/Constants/Colorconstants.dart'; + + +class IntroScreenView extends StatelessWidget { + IntroScreenView({super.key}); + + final IntroScreenController introScreenController = Get.put(IntroScreenController()); + + + + @override + Widget build(BuildContext context) { + Size screenSize = MediaQuery.of(context).size; + + return GetBuilder( + initState: (_){ + + }, + builder: (controller) { + return SafeArea( + top: false, + child: IntroSlider( + isScrollable: true, + autoScrollInterval: Duration(seconds: 10), + isAutoScroll: true, + key: UniqueKey(), + doneButtonStyle: ButtonStyle( + foregroundColor: WidgetStateProperty.all(ColorConstants.primaryColor), + ), + nextButtonStyle : ButtonStyle( + foregroundColor: WidgetStateProperty.all(ColorConstants.primaryColor), + ), + skipButtonStyle: ButtonStyle( + foregroundColor: WidgetStateProperty.all(ColorConstants.primaryColor), + ), + indicatorConfig: IndicatorConfig(activeIndicatorWidget:CircleAvatar( + radius: screenSize.height * 0.004, + backgroundColor: ColorConstants.primaryColor + ), + ), + listContentConfig: controller.listContentConfig, + onDonePress: controller.onDonePress, + + ), + ); + } + ); + } +} \ No newline at end of file diff --git a/lib/View/Location/Locationpermissionview.dart b/lib/View/Location/Locationpermissionview.dart new file mode 100644 index 0000000..696f039 --- /dev/null +++ b/lib/View/Location/Locationpermissionview.dart @@ -0,0 +1,160 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../Controller/Location/Locationpermissioncontroller.dart'; +import '../../Helper/Constants/AssetConstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/custombutton.dart'; + + +class LocationPermission extends StatelessWidget { + LocationPermission({Key? key}) : super(key: key); + + LocationPermissionController locationPermissionController = Get.put(LocationPermissionController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: Stack( + children: [ + Container( + height: Get.height, + width: Get.width, + padding: EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + ), + child: ListView( + children: [ + Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + // SizedBox( + // height: 10, + // ), + Image( + image: AssetImage( + '${AssetConstants.nearleDarkLogo}', + ), + height: 40, + width: 260, + fit: BoxFit.fill, + ), + SizedBox( + height: 15, + ), + Container( + padding: EdgeInsets.all(7), + decoration: BoxDecoration( + color: Colors.grey[200], + shape: BoxShape.circle, + ), + child: Image( + image: AssetImage( + AssetConstants.nearleLogin, + ), + height: 200, + width: 200, + fit: BoxFit.fill, + ), + ), + SizedBox( + height: 25, + ), + Text( + "Nearle 'Your super hero'", + style: TextStyle( + color: Colors.black, + fontSize: 22, + fontWeight: FontWeight.bold), + ), + SizedBox( + height: 40, + ), + Container( + child: Text( + 'To enjoy a never before experience, please', + style: TextStyle(color: Colors.grey[500], fontSize: 17), + ), + ), + SizedBox( + height: 5, + ), + Container( + child: Text( + 'allow us the following permission.', + style: TextStyle(color: Colors.grey[500], fontSize: 17), + ), + ), + SizedBox( + height: 40, + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon( + Icons.location_on, + size: 30, + ), + Container( + width: Get.width*0.80, + child: Text( + 'Location helps to join your neighbourhood and explore customers around you.', + style: TextStyle( + color: Colors.grey[500], + fontSize: 15, + overflow: TextOverflow.ellipsis), + maxLines: 2, + textAlign: TextAlign.center, + ), + ), + ], + ), + ], + ), + ], + ), + ), + + ], + ), + bottomNavigationBar: Container( + height: Get.height*0.10, + decoration: BoxDecoration(color: Colors.white), + child: Padding( + padding: const EdgeInsets.only(bottom:10,top: 10), + child: GetBuilder( + builder: (controller) { + return Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Center( + child: RoundedButton( + onPressed: () { + controller.doSomething(); + }, + color:ColorConstants.primaryColor, + title: 'Allow permissions', + controller: controller.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + ], + ); + } + ), + ), + ), + ); + } +} + diff --git a/lib/View/More/Editprofile/Editprofileview.dart b/lib/View/More/Editprofile/Editprofileview.dart new file mode 100644 index 0000000..6d1d40f --- /dev/null +++ b/lib/View/More/Editprofile/Editprofileview.dart @@ -0,0 +1,320 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import '../../../Controller/More/Editprofile/Editprofilecontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/custombutton.dart'; +import '../../../Helper/customederaction.dart'; +import '../../../Model/Response/User/Usermodelresponse.dart'; + +class EditProfile extends StatelessWidget { + UserDetails? data; + EditProfile({super.key,this.data}); + + EditProfileController editProfileController = Get.put(EditProfileController()); + final scaffoldKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: SingleChildScrollView( + child: GetBuilder( + initState: (_){ + editProfileController.userInfo = data; + editProfileController.getDetails(); + }, + builder: (controller) { + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Stack( + alignment: Alignment.topLeft, + children: [ + Container( + height: Get.height * 0.30, + width: Get.width, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage( + AssetConstants.nearleAppbarTop, + ), + fit: BoxFit.fill), + // color: ColorConstants.primaryColor, + borderRadius: BorderRadius.only( + bottomLeft: Radius.elliptical(20, 20), + bottomRight: Radius.elliptical(20, 20))), + ), + Padding( + padding: const EdgeInsets.only(top: 64, left: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + CircleAvatar( + radius: 40, + backgroundColor: Colors.white, + child: SizedBox( + height: Get.height*0.08, + width: Get.width*0.7, + child: Image.asset(AssetConstants.nearleAppbarDarkLogo), + + ), + ), + const SizedBox( + width: 45, + ), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Text( + "Edit Profile", + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + fontSize: 24), + textAlign: TextAlign.start, + ), + const SizedBox( + height: 5, + ), + Text( + "+91 ${data?.contactno}", + style: const TextStyle( + fontWeight: FontWeight.normal, + color: Colors.white, + fontSize: 17), + ), + ], + ), + + ], + ), + ), + ], + ), + + Padding( + padding: const EdgeInsets.symmetric(vertical: 25.0,horizontal: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 10,), + firstName(), + const SizedBox(height: 10,), + lastName(), + const SizedBox(height: 10,), + email(), + const SizedBox(height: 10,), + contactNo(), + + + ], + ), + ), + + + ], + ); + } + ), + ), + bottomNavigationBar:Container( + height: Get.height*0.1, + width: Get.width, + decoration: const BoxDecoration( + image:DecorationImage(image:AssetImage(AssetConstants.nearleAppbarBottom,),fit: BoxFit.fill), + // color: ColorConstants.primaryColor, + borderRadius: BorderRadius.only( + bottomLeft: Radius.elliptical(3, 3), + bottomRight: Radius.elliptical(3, 3))), + child: Stack( + children: [ + SizedBox( + height: Get.height*0.08, + child: submit()), + ], + ), + ), + + + + ); + } + + Widget firstName() { + return Container( + height: Get.height*0.07, + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + style: const TextStyle(fontFamily: 'Inter'), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Firstname', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.darkGreyColor, + )), + + controller: editProfileController.firstNameController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + } + Widget lastName() { + return Container( + height: Get.height*0.07, + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + style: const TextStyle(fontFamily: 'Inter'), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Lastname', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.darkGreyColor, + )), + + controller: editProfileController.lastNameController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget email() { + return Container( + height: Get.height*0.07, + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + style: const TextStyle(fontFamily: 'Inter'), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Email', + prefixIcon: Icon( + Icons.email_outlined, + color: ColorConstants.darkGreyColor, + )), + controller: editProfileController.emailController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget contactNo() { + return Container( + height: Get.height*0.07, + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + + // enabled: false, + style: const TextStyle(fontFamily: 'Inter'), + buildCounter: (BuildContext context, + {int? currentLength, int? maxLength, bool? isFocused}) => + null, + maxLength: 10, + keyboardType: + const TextInputType.numberWithOptions(signed: true, decimal: true), + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Contact no', + // prefixIcon: Column( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // SizedBox( + // width: Get.width * 0.3, + // height: Get.height * 0.04, + // child: Row( + // children: [ + // const SizedBox( + // width: 25, + // ), + // InkWell( + // child: CountryPickerUtils.getDefaultFlagImage( + // editProfileController.selectedDialogCountry), + // // onTap: _openCountryPickerDialog, + // ), + // const SizedBox( + // width: 8, + // ), + // Text( + // "+${editProfileController.selectedDialogCountry.phoneCode}"), + // ], + // ), + // ), + // ], + // ), + prefixIcon: Icon( + Icons.phone, + color: ColorConstants.darkGreyColor, + )), + controller: editProfileController.contactNoController, + onEditingComplete: () { + FocusScope.of(Get.context!).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget submit(){ + return GetBuilder( + builder: (controller) { + return RoundedButton( + height: Get.height*0.06, + width: Get.width*0.8, + onPressed: () { + controller.doSomething(); + }, + color: ColorConstants.primaryColor!, + title: 'Update', + controller: controller.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Inter", + color: Colors.white, + fontWeight: FontWeight.bold), + ); + }); + + + } + + + +} + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} \ No newline at end of file diff --git a/lib/View/More/Faqview/Termsandconditionsview.dart b/lib/View/More/Faqview/Termsandconditionsview.dart new file mode 100644 index 0000000..2c4d335 --- /dev/null +++ b/lib/View/More/Faqview/Termsandconditionsview.dart @@ -0,0 +1,60 @@ +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +import '../../../Helper/Constants/Colorconstants.dart'; + + +class TermsAndConditionsView extends StatefulWidget { + const TermsAndConditionsView({super.key}); + + @override + TermsAndConditionsViewState createState() => TermsAndConditionsViewState(); +} + +class TermsAndConditionsViewState extends State { + final Color primaryColor = const Color.fromRGBO(0, 157, 204, 1); + double webProgress = 0; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Terms and Conditions',style: TextStyle(color: ColorConstants.secondaryColor,fontFamily: 'Lato')), + leading: InkWell(child: const FaIcon(FontAwesomeIcons.angleLeft,color: Colors.white,size: 30),onTap: ()=>Navigator.pop(context)), + backgroundColor: ColorConstants.primaryColor, + ), + + body: Column( + children: [ + webProgress < 1 + ? SizedBox( + height: 5, + child: LinearProgressIndicator( + value: webProgress, + color: ColorConstants.primaryColor, + backgroundColor: ColorConstants.secondaryColor, + ), + ) + : const SizedBox(), + // Expanded( + // child: WebView( + // backgroundColor: ColorConstants.secondaryColor, + // initialUrl: 'https://nearle.in/terms.html', + // javascriptMode: JavascriptMode.unrestricted, + // onProgress: (progress) { + // setState(() { + // webProgress = progress / 100; + // }); + // }, + // ), + // ), + ], + ), + + ); + } + + + +} diff --git a/lib/View/More/Faqview/customerfaqs.dart b/lib/View/More/Faqview/customerfaqs.dart new file mode 100644 index 0000000..1bfb89c --- /dev/null +++ b/lib/View/More/Faqview/customerfaqs.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:webview_flutter/webview_flutter.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; + + +class CustomerFaqs extends StatefulWidget { + const CustomerFaqs({Key? key, this.title}) : super(key: key); + + final String? title; + + @override + CustomerFaqsState createState() => CustomerFaqsState(); +} + +class CustomerFaqsState extends State { + + double webProgress = 0; + + + @override + void initState() { + + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('FAQ\'s',style: TextStyle(color: ColorConstants.secondaryColor,fontFamily: 'Lato')), + leading: InkWell(child: const FaIcon(FontAwesomeIcons.angleLeft,color: Colors.white,size: 30),onTap: ()=>Navigator.pop(context)), + backgroundColor: ColorConstants.primaryColor, + ), + body: Column( + children: [ + webProgress < 1 + ? SizedBox( + height: 5, + child: LinearProgressIndicator( + value: webProgress, + color: ColorConstants.primaryColor, + backgroundColor: ColorConstants.secondaryColor, + ), + ) + : const SizedBox(), + // Expanded( + // child: WebView( + // backgroundColor: ColorConstants.secondaryColor, + // initialUrl: ' https://nearle.in/faq.html', + // javascriptMode: JavascriptMode.unrestricted, + // onProgress: (progress) { + // setState(() { + // webProgress = progress / 100; + // }); + // }, + // ), + // ), + ], + ), + ); + } +} + diff --git a/lib/View/More/Faqview/faqtabs.dart b/lib/View/More/Faqview/faqtabs.dart new file mode 100644 index 0000000..fa00f38 --- /dev/null +++ b/lib/View/More/Faqview/faqtabs.dart @@ -0,0 +1,150 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import 'Termsandconditionsview.dart'; +import 'privacy.dart'; +import 'customerfaqs.dart'; + +class FaqTabs extends StatelessWidget { + const FaqTabs({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Our Policies and FAQ\'s',style: TextStyle(color: ColorConstants.secondaryColor,fontFamily: 'Lato')), + leading: InkWell(child: const Icon(Icons.arrow_back,color: Colors.white,size: 30),onTap: ()=>Navigator.pop(context)), + backgroundColor: ColorConstants.primaryColor, + ), + body: Column( + children: [ + + Padding( + padding: const EdgeInsets.only(top: 20,left: 10,right: 10), + child: InkWell( + onTap: (){ + Get.to(()=>const CustomerFaqs()); + }, + child: Card( + shadowColor: ColorConstants.secondaryColor, + child: Container( + height: Get.height*0.08, + width: Get.width*0.95, + decoration: BoxDecoration(border: Border.all(color: Colors.grey[400]!),borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(width: 10,), + Row( + children: [ + Icon(Icons.info_outline,color: Colors.black,size: 36,), + SizedBox(width: 10,), + Text("FAQ's",style: TextStyle(color: Colors.black,fontSize: 18,fontWeight: FontWeight.bold,fontFamily: 'Lato')), + ], + ), + const Spacer(), + SizedBox( + height: Get.height*0.10, + width: Get.width*0.10, + // decoration: const BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.only(topRight: Radius.circular(10),bottomRight: Radius.circular(10))), + child: const Center( + child: Icon(Icons.arrow_forward_ios,color: Colors.black,size: 22), + ), + ) + ], + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 6,left: 10,right: 10), + child: InkWell( + onTap: (){ + Get.to(()=>const Privacy()); + }, + child: Card( + shadowColor: ColorConstants.secondaryColor, + child: Container( + height: Get.height*0.08, + width: Get.width*0.95, + decoration: BoxDecoration(border: Border.all(color: Colors.grey[400]!),borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(width: 10,), + Row( + children: [ + Image( + height: 40, + width: 40, + image: AssetImage(AssetConstants.privacyPolicy,)), + SizedBox(width: 10,), + Text("Privacy Policy",style: TextStyle(color: Colors.black,fontSize: 18,fontWeight: FontWeight.bold,fontFamily: 'Lato')), + ], + ), + const Spacer(), + SizedBox( + height: Get.height*0.10, + width: Get.width*0.10, + // decoration: const BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.only(topRight: Radius.circular(10),bottomRight: Radius.circular(10))), + child: const Center( + child: Icon(Icons.arrow_forward_ios,color: Colors.black,size: 22), + ), + ) + ], + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 6,left: 10,right: 10), + child: InkWell( + onTap: (){ + Get.to(()=>const TermsAndConditionsView()); + }, + child: Card( + shadowColor: ColorConstants.secondaryColor, + child: Container( + height: Get.height*0.08, + width: Get.width*0.95, + decoration: BoxDecoration(border: Border.all(color: Colors.grey[400]!),borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(width: 10,), + Row( + children: [ + Icon(Icons.assignment_outlined,color: Colors.black,size: 36,), + SizedBox(width: 10,), + Text("Term's and conditions",style: TextStyle(color: Colors.black,fontSize: 18,fontWeight: FontWeight.bold,fontFamily: 'Lato')), + ], + ), + const Spacer(), + SizedBox( + height: Get.height*0.10, + width: Get.width*0.10, + // decoration: const BoxDecoration(color: ColorConstants.primaryColor,borderRadius: BorderRadius.only(topRight: Radius.circular(10),bottomRight: Radius.circular(10))), + child: const Center( + child: Icon(Icons.arrow_forward_ios,color: Colors.black,size: 22), + ), + + ) + ], + ), + ), + ), + ), + ), + ], + ), + ); + } +} + + diff --git a/lib/View/More/Faqview/privacy.dart b/lib/View/More/Faqview/privacy.dart new file mode 100644 index 0000000..0a924cd --- /dev/null +++ b/lib/View/More/Faqview/privacy.dart @@ -0,0 +1,59 @@ +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +import '../../../Helper/Constants/Colorconstants.dart'; + + +class Privacy extends StatefulWidget { + const Privacy({super.key}); + + @override + PrivacyState createState() => PrivacyState(); +} + +class PrivacyState extends State { + final Color primaryColor = const Color.fromRGBO(0, 157, 204, 1); + double webProgress = 0; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Privacy Policy',style: TextStyle(color: ColorConstants.secondaryColor,fontFamily: 'Lato')), + leading: InkWell(child: const FaIcon(FontAwesomeIcons.angleLeft,color: Colors.white,size: 30),onTap: ()=>Navigator.pop(context)), + backgroundColor: ColorConstants.primaryColor, + ), + body: Column( + children: [ + webProgress < 1 + ? SizedBox( + height: 5, + child: LinearProgressIndicator( + value: webProgress, + color: ColorConstants.primaryColor, + backgroundColor: ColorConstants.secondaryColor, + ), + ) + : const SizedBox(), + // Expanded( + // child: WebView( + // backgroundColor: ColorConstants.secondaryColor, + // initialUrl: 'https://nearle.in/privacy.html', + // javascriptMode: JavascriptMode.unrestricted, + // onProgress: (progress) { + // setState(() { + // webProgress = progress / 100; + // }); + // }, + // ), + // ), + ], + ), + + ); + } + + + +} diff --git a/lib/View/More/Locations/Addlocation/Addlocationview.dart b/lib/View/More/Locations/Addlocation/Addlocationview.dart new file mode 100644 index 0000000..9afd8f7 --- /dev/null +++ b/lib/View/More/Locations/Addlocation/Addlocationview.dart @@ -0,0 +1,1001 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import '../../../../Controller/More/Locations/Addlocation/Addlocationcontroller.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/custombutton.dart'; +import '../../../../Model/Response/Tenantlocation/Getlocationbyidresponse.dart'; + +import '../../../../Helper/customederaction.dart'; + +class AddLocationView extends StatelessWidget { + final bool editMode; + final TenantLocationDetails? locationInfo; + final int? chargeIndex; + AddLocationView({super.key, required this.editMode, this.locationInfo, this.chargeIndex}); + + AddLocationController addLocationController = Get.put(AddLocationController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_){ + addLocationController.editMode = editMode; + print('AddLocationVieweditMode $editMode'); + addLocationController.locationInfo = locationInfo; + print('initstatelocationName${ addLocationController.locationInfo?.locationname}'); + addLocationController.getAppLocations(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + elevation: 0.5, + leading: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.secondaryColor, + size: 28, + )), + titleSpacing: 1, + title: Text('Add Location'), + backgroundColor: ColorConstants.primaryColor, + ), + body: ListView( + padding: EdgeInsets.only(bottom: 60), + children: [ + SizedBox( + height: 15, + ), + Column( + children: [ + Container( + child: Padding( + padding: const EdgeInsets.only( + left: 6.0, + right: 6.0, + top: 3, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + storeName(context), + SizedBox( + height: 12, + ), + email(context), + SizedBox( + height: 12, + ), + // contactNo(), + Container( + child: contactNo(context), + height: 55, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(7)), + ), + ), + SizedBox( + height: 12, + ), + // locationSheet(context ), + // SizedBox( + // height: 12, + // ), + Padding( + padding: const EdgeInsets.all(5.0), + child: Row( + children: [ + Icon( + Icons.location_on, + color: ColorConstants.primaryColor, + ), + SizedBox( + width: 8, + ), + Text( + 'Address', + style: TextStyle( + color: Colors.black54, fontSize: 18), + ), + Spacer(), + controller.isEnterAddress == true + ? InkWell( + onTap: () { + controller.isEnterAddress = false; + controller.update(); + }, + child: Icon( + Icons.check, + color: Colors.grey[600], + size: 21, + ), + ) + : InkWell( + onTap: () { + controller.isEnterAddress = true; + controller.update(); + }, + child: Icon( + Icons.close, + color: Colors.grey[600], + size: 21, + ), + ), + ], + ), + ), + SizedBox(height: 10,), + address(), + SizedBox( + height: 12, + ), + controller.isEnterAddress == true ? suburbField(context) : SizedBox(), + controller.isEnterAddress == true + ? SizedBox( + height: 12, + ) + : SizedBox(), + controller.isEnterAddress == true ? cityField(context) : SizedBox(), + controller.isEnterAddress == true + ? SizedBox( + height: 10, + ) + : SizedBox(), + controller.isEnterAddress == true ? stateField(context) : SizedBox(), + controller.isEnterAddress == true + ? SizedBox( + height: 12, + ) + : SizedBox(), + pinCode(context), + SizedBox( + height: 12, + ), + + // selectTime(), + // SizedBox(height: 12,), + + // deliveryMinCard(), + // SizedBox( + // height: 12, + // ), + // cancelTimeCard(), + // + // SizedBox( + // height: 12, + // ) + ], + ), + ), + ), + ], + ) + ], + ), + bottomNavigationBar:SizedBox( + height: Get.height*0.08, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 11,top: 0), + child: RoundedButton( + onPressed: () { + addLocationController.describeValidation(); + }, + color:ColorConstants.primaryColor, + title: 'Submit', + controller: addLocationController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ), + )), + ], + ), + + ), + ); + } + ); + } + + Widget storeName(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Store Name', + prefixIcon: Icon( + Icons.store, + color: ColorConstants.primaryColor, + )), + controller: addLocationController.nameController, + // focusNode: suburbNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget email(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: Form( + autovalidateMode: AutovalidateMode.always, + child: TextFormField( + validator: validateEmail, + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Email', + prefixIcon: Icon( + Icons.email, + color: ColorConstants.primaryColor, + )), + controller: addLocationController.emailController, + // focusNode: suburbNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ), + ); + } + + Widget contactNo(context) { + return TextFormField( + maxLength: 10, + keyboardType: + TextInputType.numberWithOptions(signed: true, decimal: true), + controller: addLocationController.phoneNoController, + textDirection: TextDirection.ltr, + onChanged: (data){ + if(data.length==10){ + FocusScope.of(context).unfocus(); + } + }, + onTap: () async { + // print(_selectedDialogCountry.phoneCode); + // currency(); + }, + decoration: InputDecoration( + counterText: '', + labelText: 'Contact no', + labelStyle: TextStyle(color: Colors.grey), + prefixIcon:Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: Get.width * 0.2, + height: Get.height * 0.04, + child: Row( + children: [ + Spacer(flex: 1,), + Flexible( + child: Icon( + Icons.phone_android_outlined, + color: ColorConstants.primaryColor, + ), + ), + Spacer(flex: 1,), + Flexible(flex: 3,child: Text("+${addLocationController.selectedDialogCountry.phoneCode}",style: TextStyle(color: ColorConstants.primaryColor,fontWeight: FontWeight.bold))), + ], + ), + ), + ], + ), + + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + width: 1.0, + ), + ), + + ), + ); + } + + Widget locationSheet(context) { + return InkWell( + onTap: () { + categorySheet(context); + }, + child: Container( + height: 60, + // margin: EdgeInsets.symmetric(horizontal: 15), + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.grey[200]!, width: 2)), + child: Padding( + padding: const EdgeInsets.only(left: 10.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon( + Icons.location_on, + color: ColorConstants.primaryColor, + ), + SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Text( + addLocationController.appLocationName == '' + ? "Select Location" + : addLocationController.appLocationName, + style: TextStyle(fontSize: 17, color: Colors.grey[500]))), + Spacer(), + Expanded( + flex: 1, + child: Icon( + Icons.arrow_drop_down, + color: Colors.grey[600], + size: 20, + )) + ], + ), + ), + ), + ); + } + + categorySheet(context) { + showModalBottomSheet( + isDismissible: true, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(15.0), topRight: Radius.circular(15)), + ), + context: context, + builder: (builder) { + return GetBuilder( + builder: (controller) { + return Container( + padding: const EdgeInsets.all(10), + child: Column( + children: [ + SizedBox( + height: 40, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Select Location', + style: TextStyle(fontSize: 16), + ), + GestureDetector( + child: Container( + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + borderRadius: BorderRadius.circular(30)), + child: const Padding( + padding: EdgeInsets.symmetric( + vertical: 5, horizontal: 10), + child: Text( + 'Done', + style: TextStyle(color: Colors.white), + ), + ), + ), + onTap: () { + Get.back(); + }, + ) + ], + ), + ), + const SizedBox( + height: 10, + ), + Expanded( + child:controller.shimmer?Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor)): GridView.builder( + itemCount:controller.locations.length, + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3), + itemBuilder: (BuildContext context, int index) { + return Card( + child: GridTile( + child: Stack( + alignment: AlignmentDirectional.center, + children: [ + GestureDetector( + onTap: () { + controller.appLocationId =controller.locations[index].applocationid??0; + controller.appLocationName = controller.locations[index].city??''; + + Get.back(); + controller.update(); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image( + image: NetworkImage( + '${controller.locations[index].image}', + ), + fit: BoxFit.fitHeight, + height: 70, + ), + const SizedBox( + height: 10, + ), + Text('${controller.locations[index].city}'), + ], + ), + ), + Positioned( + top: 0, + right: 0, + child: Icon( + Icons.check_circle, + color: controller.appLocationId == controller.locations[index].applocationid + ? Colors.green + : Colors.grey[300], + ), + ) + ], + ), //just for testing, will fill with image later + ), + ); + }, + ), + ) + ], + )); + } + ); + }); + } + + + Widget address() { + String text = ''; + int maxLength = 250; + return Column( + children: [ + TextFormField( + maxLength: 150, + onChanged: (text) => addLocationController.onSearchTextChanged(text), + controller: addLocationController.addressController, + maxLines: 3, + cursorColor: ColorConstants.primaryColor, + style: TextStyle( + color: ColorConstants.textFieldColor, + fontSize: 17, + ), + decoration: InputDecoration( + fillColor: ColorConstants.secondaryColor, + counterText: '', + filled: true, + labelText: "Address", + hintText: "", + labelStyle: TextStyle(color: Colors.grey, fontSize: 18), + hintStyle: TextStyle(color: Colors.grey,fontSize: 18), + border: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.black, + ), + borderRadius: BorderRadius.all( + Radius.circular(7), + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(7)), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + ), + ), + SizedBox(height: 8,), + + addLocationController.predictions.isNotEmpty?Container( + height: Get.height*0.20, + width: Get.width, + padding: EdgeInsets.only(left: 5,right: 5), + decoration: BoxDecoration(color: Colors.white,borderRadius: BorderRadius.circular(10)), + child: Obx(() { + return ListView.builder( + itemCount: addLocationController.predictions.length, + itemBuilder: (context, index) { + final prediction = + addLocationController.predictions[index]['description']; + return ListTile( + title: Text(prediction), + onTap: () { + final placeId = + addLocationController.predictions[index]['place_id']; + addLocationController.getPlaceDetails(placeId,prediction); + FocusScope.of(context).unfocus(); + }, + ); + }, + ); + + }),):SizedBox() + ], + ); + } + + Widget suburbField(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Suburb', + prefixIcon: Icon( + Icons.location_city, + color: ColorConstants.primaryColor, + )), + controller: addLocationController.suburbController, + // focusNode: suburbNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget cityField(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'City', + prefixIcon: Icon( + Icons.location_city, + color: ColorConstants.primaryColor, + )), + controller: addLocationController.cityController, + // focusNode: cityNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget stateField(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'State', + prefixIcon: Icon( + Icons.location_city, + color: ColorConstants.primaryColor, + )), + controller: addLocationController.stateController, + // focusNode: stateNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget pinCode(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Pincode', + prefixIcon: Icon( + Icons.location_on, + color: ColorConstants.primaryColor, + )), + controller: addLocationController.postalCodeController, + // focusNode: postCodeNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget cancelTimeCard() { + return GetBuilder( + builder: (controller) { + return Card( + child: Container( + margin: EdgeInsets.all(10), + child: Column( + children: [ + SizedBox( + height: 5, + ), + Row( + children: [ + SizedBox( + width: 5, + ), + Text( + // "Delivery Minutes", + 'Cancellation seconds', + style: TextStyle(color: ColorConstants.primaryColor, fontSize: 18), + ), + ], + ), + SizedBox( + height: 10, + ), + const Text( + "Choose any one cancellation seconds", + // '${minDesc ?? ''}', + style: TextStyle(color: Colors.grey, fontSize: 17), + ), + const SizedBox( + height: 10, + ), + Row( + children: [ + const SizedBox( + width: 5, + ), + Text( + // "Delivery Time :", + 'Sec : ', + style: TextStyle(color: Colors.grey[900], fontSize: 15), + ), + const SizedBox( + width: 10, + ), + InkWell( + onTap: () { + controller.sec1 = true; + controller.sec2 = false; + controller.sec3 = false; + controller.cancellationSec = 20; + controller.update(); + + }, + child: Container( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: controller.sec1 == true ? ColorConstants.primaryColor : Colors.grey[100], + // borderRadius: BorderRadius.circular(70), + border: Border.all(color: Colors.grey)), + child: Padding( + padding: const EdgeInsets.all(10), + child: Center( + child: Text( + // '0 - 30', + '20', + style: TextStyle( + fontWeight: + controller.sec1 == true ? FontWeight.bold : FontWeight.w500, + fontSize: 12, + color: + controller.sec1 == true ? ColorConstants.secondaryColor : Colors.black45), + )), + ), + ), + ), + SizedBox( + width: 20, + ), + InkWell( + onTap: () { + controller.sec1 = false; + controller.sec2 = true; + controller.sec3 = false; + controller.cancellationSec = 30; + controller.update(); + + }, + child: Container( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: controller.sec2 == true ? ColorConstants.primaryColor : Colors.grey[100], + // borderRadius: BorderRadius.circular(70), + border: Border.all(color: Colors.grey)), + child: Padding( + padding: const EdgeInsets.all(10), + child: Center( + child: Text( + // '30 - 60', + '30', + style: TextStyle( + fontWeight: + controller.sec2 == true ? FontWeight.bold : FontWeight.w500, + fontSize: 12, + color: + controller.sec2 == true ? ColorConstants.secondaryColor : Colors.black45), + )), + ), + ), + ), + SizedBox( + width: 20, + ), + InkWell( + onTap: () { + controller.sec1 = false; + controller.sec2 = false; + controller.sec3 = true; + controller.cancellationSec = 40; + controller.update(); + }, + child: Container( + decoration: BoxDecoration( + shape: BoxShape.circle, + color: controller.sec3 == true ? ColorConstants.primaryColor : Colors.grey[100], + // borderRadius: BorderRadius.circular(70), + border: Border.all(color: Colors.grey)), + child: Padding( + padding: const EdgeInsets.all(10), + child: Center( + child: Text( + // '60 - 120', + '40', + style: TextStyle( + fontWeight: + controller.sec3 == true ? FontWeight.bold : FontWeight.w500, + fontSize: 12, + color: + controller.sec3 == true ? ColorConstants.secondaryColor : Colors.black45), + )), + ), + ), + ) + ], + ), + SizedBox( + height: 15, + ) + ], + ), + )); + } + ); + } + + Widget deliveryMinCard() { + return GetBuilder( + builder: (controller) { + return Card( + child: Container( + margin: EdgeInsets.all(10), + child: Column( + children: [ + SizedBox( + height: 5, + ), + Row( + children: [ + SizedBox( + width: 5, + ), + Text( + // "Delivery Minutes", + 'Preperation minuites', + style: TextStyle(color: ColorConstants.primaryColor, fontSize: 18), + ), + ], + ), + SizedBox( + height: 10, + ), + Text( + "Choose any one preperation Time", + // '${minDesc ?? ''}', + style: TextStyle(color: Colors.grey, fontSize: 17), + ), + SizedBox( + height: 10, + ), + Row( + // mainAxisSize: MainAxisSize.max, + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + width: 5, + ), + Text( + // "Delivery Time :", + 'Min : ', + style: TextStyle(color: Colors.grey[900], fontSize: 15), + ), + SizedBox( + width: 10, + ), + InkWell( + onTap: () { + controller.min1 = true; + controller.min2 = false; + controller.min3 = false; + controller.deliveryMin = 30; + controller.update(); + + }, + child: Container( + height: Get.height * 0.04, + width: Get.width * 0.165, + decoration: BoxDecoration( + shape: BoxShape.rectangle, + color: controller.min1 == true ? ColorConstants.primaryColor : Colors.grey[100], + // borderRadius: BorderRadius.circular(70), + border: Border.all(color: Colors.grey)), + child: Padding( + padding: const EdgeInsets.only(left: 8, right: 8), + child: Center( + child: Text( + // '0 - 30', + '${controller.min1Label ?? ''}', + style: TextStyle( + fontWeight: + controller.min1 == true ? FontWeight.bold : FontWeight.w500, + fontSize: 12, + color: + controller.min1 == true ? ColorConstants.secondaryColor : Colors.black45), + )), + ), + ), + ), + SizedBox( + width: 8, + ), + InkWell( + onTap: () { + controller.min1 = false; + controller.min2 = true; + controller.min3 = false; + controller.deliveryMin = 60; + controller.update(); + }, + child: Container( + height: Get.height * 0.04, + width: Get.width * 0.205, + decoration: BoxDecoration( + shape: BoxShape.rectangle, + color: controller.min2 == true ? ColorConstants.primaryColor : Colors.grey[100], + // borderRadius: BorderRadius.circular(70), + border: Border.all(color: Colors.grey)), + child: Padding( + padding: const EdgeInsets.only(left: 8, right: 8), + child: Center( + child: Text( + // '30 - 60', + '${controller.min2Label ?? ''}', + style: TextStyle( + fontWeight: + controller.min2 == true ? FontWeight.bold : FontWeight.w500, + fontSize: 12, + color: + controller.min2 == true ? ColorConstants.secondaryColor : Colors.black45), + )), + ), + ), + ), + SizedBox( + width: 10, + ), + InkWell( + onTap: () { + controller.min1 = false; + controller.min2 = false; + controller.min3 = true; + controller.deliveryMin = 120; + controller.update(); + + + }, + child: Container( + height: Get.height * 0.04, + width: Get.width * 0.205, + decoration: BoxDecoration( + shape: BoxShape.rectangle, + color: controller.min3 == true ? ColorConstants.primaryColor : Colors.grey[100], + // borderRadius: BorderRadius.circular(70), + border: Border.all(color: Colors.grey)), + child: Padding( + padding: const EdgeInsets.only(left: 8, right: 8), + child: Center( + child: Text( + // '60 - 120', + '${controller.min3Label ?? ''}', + style: TextStyle( + fontWeight: + controller.min3 == true ? FontWeight.bold : FontWeight.w500, + fontSize: 12, + color: + controller.min3 == true ? ColorConstants.secondaryColor : Colors.black45), + )), + ), + ), + ) + ], + ), + SizedBox( + height: 15, + ) + ], + ), + )); + } + ); + } + + String? validateEmail(String? value) { + const pattern = r"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'" + r'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-' + r'\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*' + r'[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4]' + r'[0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9]' + r'[0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\' + r'x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])'; + final regex = RegExp(pattern); + + return value!.isNotEmpty && !regex.hasMatch(value) + ? 'Enter a valid email address' + : null; + } + +} + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} \ No newline at end of file diff --git a/lib/View/More/Locations/Locationview.dart b/lib/View/More/Locations/Locationview.dart new file mode 100644 index 0000000..b67b4a9 --- /dev/null +++ b/lib/View/More/Locations/Locationview.dart @@ -0,0 +1,844 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import 'package:shimmer/shimmer.dart'; +import '../../../Controller/More/Locations/Locationcontroller.dart'; +import '../../../Helper/Constants/AssetConstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/utility.dart'; +import '../../Home/Homeview.dart'; +import 'Addlocation/Addlocationview.dart'; +import 'Staffs/Staffdetailsview.dart'; + +class LocationView extends StatelessWidget { + LocationView({super.key}); + LocationController locationController = Get.put(LocationController()); + + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: ()async{ + Get.to(()=>HomeView(selectedIndex: 3)); + return false; + }, + child: Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + elevation: 0.5, + leading: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 40, + width: 40, + child: CircleAvatar( + backgroundColor: ColorConstants. primaryColor, + // radius: 20, + backgroundImage: AssetImage(AssetConstants.NearleAppbarIcon), + ), + ), + ], + ), + titleSpacing: 1, + title: Text('Locations'), + backgroundColor: ColorConstants.primaryColor, + ), + body: GetBuilder( + initState: (_){ + locationController.getLocation(); + }, + builder: (controller) { + return Stack( + children: [ + Column( + children: [ + SizedBox( + height: 8, + ), + Expanded( + flex: 9, + child: Padding( + padding: const EdgeInsets.only(left: 5, right: 5, top: 5), + child: controller.shimmer == true + ? shimmerLocation() + : controller.locations.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No Locations at this moment", + style: TextStyle( + color: Colors.grey[600], + fontSize: 16), + ), + ], + )) + : listLocationMobile(), + ), + ) + ], + ), + Positioned( + bottom: 5, + left: 0, + right: 0, + child: Container( + margin: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + height: 60, + // width: Get.width * 0.8, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), color: ColorConstants.primaryColor), + child: Center( + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: InkWell( + onTap: () { + print('hello'); + Navigator.of(context) + .pushReplacement(MaterialPageRoute( + builder: (context) => HomeView( + selectedIndex: 0, + ))); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.home, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Home', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + SizedBox( + height: 60, + width: 0.5, + child: Container( + color: Colors.white, + ), + ), + Expanded( + child: InkWell( + onTap: () { + Get.to(()=>AddLocationView(editMode: false,)); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.add_location_alt_sharp, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Add Location', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + SizedBox( + height: 60, + width: 0.5, + child: Container( + color: Colors.white, + ), + ), + Expanded( + child: InkWell( + onTap: () { + Get.to(HomeView(selectedIndex: 3)); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.arrow_back, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Back', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + ], + ), + ), + ), + ), + ], + ); + } + ), + ), + ); + } + + Widget listLocationMobile() { + return GetBuilder( + builder: (controller) { + return ListView.builder( + padding: EdgeInsets.only(bottom: 70), + itemCount: controller.locations.length, + itemBuilder: (BuildContext context, int index) { + return Card( + // color: Colors.grey[150], + elevation: 0, + child: Container( + height: 120, + child: Row( + children: [ + Expanded( + flex: 2, + child: Container( + decoration: BoxDecoration( + color: UtilityPromotion.getLightColors( + controller.locations[index].locationname?[0] ?? + 'A'.toString().trimLeft()) + .withAlpha(200), + borderRadius: BorderRadius.circular(5), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Stack( + children: [ + Container( + padding: EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white70, + shape: BoxShape.circle), + child: Icon( + Icons.storefront, + color: ColorConstants.primaryColor, + size: 50, + )), + Positioned( + bottom: 0, + right: 0, + child: GestureDetector( + onTap: () { + Get.to(()=> AddLocationView(editMode: true, + locationInfo: controller.locations[index], + ),); + + }, + child: Container( + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + shape: BoxShape.circle, + // borderRadius: BorderRadius.circular(12), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 6, horizontal: 6), + child: Icon( + Icons.edit, + color: Colors.white, + size: 16, + ), + ), + ), + ), + ) + + ], + ) + ], + ), + ), + ), + SizedBox( + width: 10, + ), + Expanded( + flex: 4, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + // SizedBox( + // height: 3, + // ), + Row( + children: [ + Icon( + Icons.location_on, + color: Colors.black45, + size: 17, + ), + SizedBox( + width: 5, + ), + Flexible( + flex: 3, + child: Text( + "${ controller.locations[index].locationname}", + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 18, + color: Colors.black54, + fontWeight: FontWeight.w600), + ), + ), + SizedBox( + width: 3, + ), + ], + ), + + Row( + children: [ + Icon( + Icons.phone_android_sharp, + color: Colors.black45, + size: 16, + ), + SizedBox( + width: 5, + ), + Text( + controller.locations[index].locationcontact == null + ? "Contact No" + : '${ controller.locations[index].locationcontact}', + style: TextStyle( + fontSize: 15, + color: Colors.black87, + fontWeight: FontWeight.w400), + ), + ], + ), + + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon( + Icons.location_on_outlined, + size: 16, + color: Colors.black45, + ), + SizedBox( + width: 4, + ), + Flexible( + child: Text( + "${ controller.locations[index].locationsuburb}", + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 15, color: Colors.black87 + + // fontWeight: FontWeight.w600 + ), + ), + ), + ], + ), + ], + ), + ), + ], + ), + ), + + // ExpansionTile( + // maintainState: true, + // + // backgroundColor: ColorConstants.secondaryColor, + // tilePadding: EdgeInsets.only(left: 8, top: 2), + // initiallyExpanded: true, + // + // childrenPadding: EdgeInsets.only(left: 2, right: 2, bottom: 0), + // trailing: Padding( + // padding: const EdgeInsets.only(top: 30.0, right: 10), + // child: Column( + // mainAxisSize: MainAxisSize.max, + // children: [ + // Expanded( + // // flex: 3, + // child: Icon( + // Icons.keyboard_arrow_down_sharp, + // color: Colors.black87, + // size: 24, + // ), + // ), + // ], + // ), + // ), + // title: Container( + // height: 120, + // child: Row( + // children: [ + // Expanded( + // flex: 2, + // child: Container( + // decoration: BoxDecoration( + // color: UtilityPromotion.getLightColors( + // controller.locations[index].locationname?[0] ?? + // 'A'.toString().trimLeft()) + // .withAlpha(200), + // borderRadius: BorderRadius.circular(5), + // ), + // child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Stack( + // children: [ + // Container( + // padding: EdgeInsets.all(12), + // decoration: BoxDecoration( + // color: Colors.white70, + // shape: BoxShape.circle), + // child: Icon( + // Icons.storefront, + // color: ColorConstants.primaryColor, + // size: 50, + // )), + // Positioned( + // bottom: 0, + // right: 0, + // child: GestureDetector( + // onTap: () { + // Get.to(()=> AddLocationView(editMode: true, + // locationInfo: controller.locations[index], + // ),); + // + // }, + // child: Container( + // decoration: BoxDecoration( + // color: ColorConstants.primaryColor, + // shape: BoxShape.circle, + // // borderRadius: BorderRadius.circular(12), + // ), + // child: Padding( + // padding: const EdgeInsets.symmetric( + // vertical: 6, horizontal: 6), + // child: Icon( + // Icons.edit, + // color: Colors.white, + // size: 16, + // ), + // ), + // ), + // ), + // ) + // + // ], + // ) + // ], + // ), + // ), + // ), + // SizedBox( + // width: 10, + // ), + // Expanded( + // flex: 4, + // child: Column( + // mainAxisAlignment: MainAxisAlignment.spaceEvenly, + // children: [ + // // SizedBox( + // // height: 3, + // // ), + // Row( + // children: [ + // Icon( + // Icons.location_on, + // color: Colors.black45, + // size: 17, + // ), + // SizedBox( + // width: 5, + // ), + // Flexible( + // flex: 3, + // child: Text( + // "${ controller.locations[index].locationname}", + // overflow: TextOverflow.ellipsis, + // style: TextStyle( + // fontSize: 18, + // color: Colors.black54, + // fontWeight: FontWeight.w600), + // ), + // ), + // SizedBox( + // width: 3, + // ), + // ], + // ), + // + // Row( + // children: [ + // Icon( + // Icons.phone_android_sharp, + // color: Colors.black45, + // size: 16, + // ), + // SizedBox( + // width: 5, + // ), + // Text( + // controller.locations[index].locationcontact == null + // ? "Contact No" + // : '${ controller.locations[index].locationcontact}', + // style: TextStyle( + // fontSize: 15, + // color: Colors.black87, + // fontWeight: FontWeight.w400), + // ), + // ], + // ), + // + // Row( + // crossAxisAlignment: CrossAxisAlignment.center, + // mainAxisAlignment: MainAxisAlignment.start, + // children: [ + // Icon( + // Icons.location_on_outlined, + // size: 16, + // color: Colors.black45, + // ), + // SizedBox( + // width: 4, + // ), + // Flexible( + // child: Text( + // "${ controller.locations[index].locationsuburb}", + // overflow: TextOverflow.ellipsis, + // style: TextStyle( + // fontSize: 15, color: Colors.black87 + // + // // fontWeight: FontWeight.w600 + // ), + // ), + // ), + // ], + // ), + // ], + // ), + // ), + // ], + // ), + // ), + // children: [ + // Divider( + // thickness: 1, + // color: Colors.grey[300], + // ), + // Container( + // margin: EdgeInsets.only(top: 10, bottom: 0, right: 10), + // height: 90, + // child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Expanded( + // flex: 7, + // child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceAround, + // children: [ + // Expanded( + // child: InkWell( + // onTap: () { + // Get.to(()=> AddLocationView(editMode: true, + // locationInfo: controller.locations[index], + // ),); + // + // }, + // child: Column(children: [ + // + // Container( + // height: 45, + // width: 45, + // decoration: BoxDecoration( + // shape: BoxShape.circle, + // border: Border.all( + // color: ColorConstants.primaryColor)), + // child: Center( + // child: Icon( + // Icons.edit_location_alt, + // color: ColorConstants.primaryColor, + // size: 30, + // ), + // ), + // ), + // SizedBox( + // height: 5, + // ), + // Text("Location", + // textAlign: TextAlign.center, + // style: TextStyle( + // fontSize: 14, + // color: Colors.grey[800], + // height: 0.8)), + // ]), + // ), + // ), + // Expanded( + // child: InkWell( + // onTap: () { + // + // Get.to(()=>StaffsDetails(staffData: [], locationName:controller.locations[index].locationname??'',)); + // + // }, + // child: Column(children: [ + // + // Container( + // height: 45, + // width: 45, + // decoration: BoxDecoration( + // shape: BoxShape.circle, + // border: Border.all( + // color: ColorConstants.primaryColor)), + // child: Center( + // child: Icon( + // Icons.person, + // color: ColorConstants.primaryColor, + // size: 30, + // ), + // ), + // ), + // SizedBox( + // height: 5, + // ), + // Text("Staff's", + // textAlign: TextAlign.center, + // style: TextStyle( + // fontSize: 14, + // color: Colors.grey[800], + // height: 0.8)), + // ]), + // ), + // ), + // + // Expanded( + // child: Container(), + // ), + // Expanded( + // child: Container(), + // ), + // ], + // ), + // ), + // // controller.moduleId != 4?Divider( + // // thickness: 2, + // // color: Colors.grey[100], + // // ):SizedBox(), + // // controller. moduleId != 4?Expanded( + // // flex: 8, + // // child: Row( + // // mainAxisAlignment: MainAxisAlignment.spaceAround, + // // children: [ + // // Expanded( + // // child: InkWell( + // // onTap: () { + // // + // // }, + // // child: Column(children: [ + // // SizedBox( + // // height: 15, + // // ), + // // Container( + // // height: 45, + // // width: 45, + // // decoration: BoxDecoration( + // // shape: BoxShape.circle, + // // border: Border.all( + // // color: primaryColor)), + // // child: Center( + // // child: Icon( + // // Icons.person, + // // color: primaryColor, + // // size: 30, + // // ), + // // ), + // // ), + // // SizedBox( + // // height: 10, + // // ), + // // Text("Staff's", + // // textAlign: TextAlign.center, + // // style: TextStyle( + // // fontSize: 14, + // // color: Colors.grey[800], + // // height: 0.8)), + // // ]), + // // ), + // // ), + // // Expanded( + // // child: Container(), + // // ), + // // Expanded( + // // child: Container(), + // // ), + // // Expanded( + // // child: Container(), + // // ) + // // ], + // // )):SizedBox(), + // ], + // ), + // ) + // ], + // ) + ); + }); + } + ); + } + + shimmerLocation(){ + return Shimmer.fromColors( + baseColor: Colors.grey[300]!, + highlightColor: Colors.grey[100]!, + + enabled: true, + child: ListView.builder( + itemBuilder: (_, __) => Padding( + padding: const EdgeInsets.only( + bottom: 8.0, + ), + child: Column( + children: [ + Container( + height: 120, + decoration: BoxDecoration( + border: Border.all( + color: ColorConstants.secondaryColor!,width: 3)), + child: Row( + children: [ + Expanded( + flex: 3, + child: Container( + + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + decoration: BoxDecoration( + shape: BoxShape.rectangle, + color: Colors.white), + child: Padding( + padding: const EdgeInsets.all(13.0), + child: Container( + height: 50, + width: 50, + decoration: BoxDecoration( + color: ColorConstants.secondaryColor), + ), + ), + ), + + ], + ), + ), + ), + Expanded( + flex: 7, + child: Container( + + child: Column( + // mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: 20, + ), + Row( + children: [ + SizedBox( + width: 10, + ), + Container( + height: 12, + width: 150, + color: ColorConstants.secondaryColor, + ), + ], + ), + SizedBox( + height:17, + ), + Row( + children: [ + SizedBox( + width: 10, + ), + Container( + height: 12, + width: 150, + color: ColorConstants.secondaryColor, + ), + SizedBox( + width: 6, + ), + + ], + ), + SizedBox( + height:17, + ), + Row( + children: [ + SizedBox( + width: 10, + ), + Container( + height: 12, + width: 150, + color: ColorConstants.secondaryColor, + ), + ], + ), + + ], + ), + ), + ) + ], + ), + ), + SizedBox( + height: 10, + ) + ], + ) + ), + itemCount: 6, + ), + ); + } + +} + diff --git a/lib/View/More/Locations/Staffs/Staffdetailsview.dart b/lib/View/More/Locations/Staffs/Staffdetailsview.dart new file mode 100644 index 0000000..c4430f2 --- /dev/null +++ b/lib/View/More/Locations/Staffs/Staffdetailsview.dart @@ -0,0 +1,484 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import 'package:shimmer/shimmer.dart'; + +import '../../../../Controller/More/Locations/Staffs/Staffdetailscontroller.dart'; +import '../../../../Controller/More/Staffs/Staffscontroller.dart'; +import '../../../../Helper/Constants/AssetConstants.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/utility.dart'; +import '../../../Home/Homeview.dart'; + +class StaffsDetails extends StatelessWidget { + List staffData; + String locationName; + StaffDetailsController staffDetailsController = Get.put(StaffDetailsController()); + StaffsDetails({Key? key, required this.staffData, required this.locationName,}) : super(key: key); + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: Padding( + padding: const EdgeInsets.all(5.0), + child: Image( + image: AssetImage(AssetConstants.NearleAppbarIcon), + height: 30, + ), + ), + title: Text('$locationName Staffs'), + titleSpacing: 0, + ), + body: Stack( + children: [ + Column( + children: [ + SizedBox( + height: 10, + ), + Expanded( + flex: 9, + child: mobileUserList(), + ) + ], + ), + Positioned( + bottom: 5, + left: 0, + right: 0, + child: Container( + margin: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + height: 60, + // width: Get.width * 0.8, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), color: ColorConstants.primaryColor), + child: Center( + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: InkWell( + onTap: () { + Get.to(()=>HomeView(selectedIndex: 0,)); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.home, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Home', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + Container( + color: Colors.white, + width: 0.5, + ), + Expanded( + child: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.arrow_back, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Back', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + ], + ), + ), + ), + ) + ], + ), + ); + } + addUser() { + + // Get.to(()=>AddUser(location: true, locationId:staffData[0]['Locationid']??[],)); + } + + mobileUserList() { + return GetBuilder( + builder: (context) { + return Container( + margin: const EdgeInsets.only( + left: 10.0, + right: 10, + ), + child:staffData.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No users at this moment", + style: TextStyle( + color: Colors.grey[600], fontSize: 14), + ), + ], + )) + : staffDetailsController.shimmer == true + ? Shimmer.fromColors( + enabled: true, + child: ListView.builder( + padding: EdgeInsets.only(bottom: 60), + itemCount: 4, + itemBuilder: (BuildContext context, int index) { + return InkWell( + child: Container( + margin: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + border: Border.all( + color: Colors.grey[400]!, width: 2), + borderRadius: + BorderRadius.all(Radius.circular(3)), + ), + height: 90, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Container( + width: 55, + height: 55, + child: CircleAvatar( + backgroundColor: ColorConstants.secondaryColor, + child: Text( + "", + style: TextStyle( + color: ColorConstants.secondaryColor, + fontSize: 22), + )), + ), + ], + )), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + SizedBox( + height: 4, + ), + Expanded( + flex: 2, + child: Row( + children: [ + Icon( + Icons.person, + color: ColorConstants.secondaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + "--------------", + style: TextStyle( + fontSize: 16, + color: Colors.grey[600], + fontWeight: + FontWeight.w600), + ), + ], + ), + ), + Expanded( + flex: 2, + child: Row( + children: [ + Icon( + Icons.phone, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + '-----------', + style: TextStyle( + fontSize: 15, + color: Colors.black54, + fontWeight: + FontWeight.w400), + ), + ], + ), + ), + Expanded( + flex: 2, + child: Row( + children: [ + Expanded( + // flex: 5, + child: Row( + children: [ + Icon( + Icons.store, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 3, + ), + Text( + '-----------', + // '', + style: TextStyle( + fontSize: 15, + color: Colors.black54, + fontWeight: + FontWeight.w400), + ), + SizedBox( + width: 5, + ), + ], + )), + ], + ), + ), + SizedBox( + height: 4, + ), + ], + )), + Expanded( + flex: 1, + child: Center( + child: Icon( + Icons.arrow_forward_ios, + color: Colors.grey[600], + size: 16, + ), + ), + ) + ], + ), + ), + ); + }), + baseColor: Colors.grey[300]!, + highlightColor: Colors.grey[100]!, + ) + : ListView.builder( + padding: EdgeInsets.only(bottom: 80), + itemCount: staffData.length, + itemBuilder: (BuildContext context, int index) { + + + return Padding( + padding: const EdgeInsets.only(top: 12), + child: Stack( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: [BoxShadow(color: Colors.grey)], + borderRadius: + BorderRadius.all(Radius.circular(3)), + ), + height: 130, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Container( + padding: EdgeInsets.all(5), + decoration: BoxDecoration( + color: UtilityPromotion.getLightColors( + '${ staffData[index]['Firstname']==null||staffData[index]['Firstname'].toString().isEmpty?'':staffData[index]['Firstname'].toString()[0]}' + .toString()) + .withAlpha(100), + // staffData[index]['Firstname'][0].toString()), + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Container( + // width: 55, + // height: 60, + child: CircleAvatar( + backgroundColor: Colors.white70, + radius: 28, + child: Text( + "${ staffData[index]['Firstname']==null||staffData[index]['Firstname'].toString().isEmpty?'':staffData[index]['Firstname'].toString()[0].toUpperCase()}", + style: TextStyle( + color: Colors.black54, + fontSize: 22), + )), + ), + SizedBox( + height: 12, + ), + Text( + locationName + .toString() + .length > + 9 + ?locationName + .toString() + .substring(0, 9) + + '...' + : locationName + .toString(), + overflow: TextOverflow.ellipsis, + // '', + style: TextStyle( + fontSize: 13, + color: Colors.black54, + fontWeight: FontWeight.w600), + ), + ], + ), + )), + SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + // SizedBox( + // height: 4, + // ), + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Row( + children: [ + Text( + "${staffData[index]['Firstname'] == null ? "" : staffData[index]['Firstname']} ${staffData[index]['Lastname'] == null ? "" : staffData[index]['Lastname']}", + style: TextStyle( + fontSize: 16, + color: Colors.grey[600], + fontWeight: FontWeight.w600), + ), + SizedBox(width: 10,), + staffData[index]['Roleid']==1?Icon(Icons.admin_panel_settings_outlined,color: ColorConstants.primaryColor,size:20,):staffData[index]['Roleid']==2?Icon(Icons.phone_android,color: ColorConstants.primaryColor,size:20,): + Icon(Icons.laptop_windows,color: ColorConstants.primaryColor,size:20,) + ], + ), + ], + ), + Row( + children: [ + Icon( + Icons.phone, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + '91 ${staffData[index]['Contact']}', + style: TextStyle( + fontSize: 15, + color: Colors.black54, + fontWeight: FontWeight.w400), + ), + ], + ), + Row( + children: [ + Icon( + Icons.mail, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + '${staffData[index]['Email']}', + style: TextStyle( + fontSize: 16, + color: Colors.black54, + fontWeight: FontWeight.w400), + ), + ], + ), + ], + ), + + ), + ], + ), + ), + ], + ), + ); + + + + }), + ); + } + ); + } + + +} diff --git a/lib/View/More/Mobileprofileview.dart b/lib/View/More/Mobileprofileview.dart new file mode 100644 index 0000000..803d9a7 --- /dev/null +++ b/lib/View/More/Mobileprofileview.dart @@ -0,0 +1,96 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../Helper/Constants/Colorconstants.dart'; + +class ProfileMobile extends StatelessWidget { + final String title; + final Color colorValue; + final IconData icon; + final Function(bool) onTapNavigation; + + ProfileMobile( + {required this.title, + required this.icon, + required this.onTapNavigation, + required this.colorValue}); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () { + onTapNavigation(true); + }, + child: Container( + padding: EdgeInsets.all(8), + width: Get.width * 0.3, + height: 120, + decoration: BoxDecoration( + color: colorValue, + shape: BoxShape.rectangle, + borderRadius: BorderRadius.circular(12), + ), + child: Column( + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + flex: 7, + child: Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(10), + shape: BoxShape.rectangle), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + icon, + size: 24, + color: ColorConstants.primaryColor, + ), + ), + ), + SizedBox( + height: 5, + ), + Padding( + padding: const EdgeInsets.only(left: 2), + child: Text( + "${this.title}", + style: TextStyle( + fontSize: 12, + color: Colors.grey[800], + fontWeight: FontWeight.bold), + ), + ), + ], + ) + ], + ), + ), + Expanded( + flex: 3, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(4.0), + child: Icon( + Icons.arrow_forward, + color: Colors.grey[700], + size: 22, + ), + ), + ], + ), + ) + ], + ), + )); + } +} diff --git a/lib/View/More/Moreview.dart b/lib/View/More/Moreview.dart new file mode 100644 index 0000000..7190a9c --- /dev/null +++ b/lib/View/More/Moreview.dart @@ -0,0 +1,309 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../Controller/Dashboard/Dashboardcontroller.dart'; +import '../../Controller/Home/Homecontroller.dart'; +import '../../Controller/More/Morecontroller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Globalwidgets/web_view.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import 'Notification/Notificationview.dart'; + +class MoreView extends StatelessWidget { + MoreView({super.key}); + + final MoreController moreController = Get.put(MoreController()); + + final DashboardController dashboardController = Get.put(DashboardController()); + + final HomeController homeController = Get.put(HomeController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_){ + moreController.getToken(); + homeController.getTenantId(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: Colors.grey.shade200, + appBar: AppBar( + leading: Padding( + padding: const EdgeInsets.only(left: 14), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget( + text: '${dashboardController.tenantInfo?.firstname}', + fontSize : 18, + fontWeight: FontWeight.w700, + maxLines: 1, + ), + const SizedBox(height: 5,), + TextWidget( + text: '+91 ${dashboardController.tenantInfo?.primarycontact}', + fontSize: 15, + ) + ], + ), + ), + leadingWidth: double.infinity, + backgroundColor: ColorConstants.secondaryColor, + automaticallyImplyLeading: false, + toolbarHeight: 65, + + ), + body: SingleChildScrollView( + child: Column( + children: [ + const SizedBox(height: 20,), + MyAccountSegmentUI(moreController: moreController, homeController: homeController,), + const SizedBox(height: 20,), + // HelpAndSupport(moreController: moreController, homeController: homeController,), + // const SizedBox(height: 20,), + const PrivacyPolicySegment(), + const SizedBox(height: 20,), + TextWidget( + text: 'App Version: ${controller.currentVersion}', + fontSize: 14, + fontWeight: FontWeight.w700, + color: ColorConstants.darkGreyColor, + ), + const SizedBox(height: 50,), + ], + ), + ), + ); + } + ); + } +} + + +class MyAccountSegmentUI extends StatelessWidget { + const MyAccountSegmentUI({ + super.key, required + this.moreController, + required this.homeController, + + }); + + final MoreController moreController; + + final HomeController homeController; + + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + child: Padding( + padding: const EdgeInsets.only(left: 15, right: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 10,), + const TextWidget( + text: 'My Account', + fontWeight: FontWeight.bold, + fontSize: 21, + ), + const SizedBox( + height: 15, + ), + CustomListTile( + leadingIcon: Icons.notifications_active, + title: 'Notification', + onTap: () { + Get.to(() => NotificationView()); + }, + ), + CustomListTile( + leadingIcon: Icons.qr_code_scanner, + title: 'Scanner', + onTap: () { + homeController.showQRBottomSheet(); + }, + ), + CustomListTile( + leadingIcon: Icons.logout, + title: 'Logout', + onTap: () { + moreController.confirmLogout(context); + }, + noNeedDivider: true, + ), + ], + ), + ), + ); + } +} + + +class HelpAndSupport extends StatelessWidget { + const HelpAndSupport({ + super.key, required + this.moreController, + required this.homeController, + + }); + + final MoreController moreController; + + final HomeController homeController; + + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + child: Padding( + padding: const EdgeInsets.only(left: 15, right: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 10,), + const TextWidget( + text: 'Help And Support', + fontWeight: FontWeight.bold, + fontSize: 21, + ), + const SizedBox( + height: 15, + ), + CustomListTile( + leadingIcon: Icons.headphones, + title: 'Create Request', + onTap: () { + Get.to(() => NotificationView()); + }, + ), + CustomListTile( + leadingIcon: Icons.support_agent_outlined, + title: 'Requested Support', + noNeedDivider: true, + onTap: () { + homeController.showQRBottomSheet(); + }, + ), + ], + ), + ), + ); + } +} + + +class PrivacyPolicySegment extends StatelessWidget { + const PrivacyPolicySegment({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + child: Padding( + padding: const EdgeInsets.only(left: 15, right: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 10,), + const TextWidget( + text: 'Policy and FAQ', + fontWeight: FontWeight.bold, + fontSize: 21, + ), + const SizedBox( + height: 15, + ), + CustomListTile( + leadingIcon: Icons.question_answer, + title: "FAQ's", + onTap: () { + Get.to(() => const WebViewApp( + url: 'https://nearle.in/faq', + appBarText: "FAQ's", + )); + }, + ), + CustomListTile( + leadingIcon: Icons.rule, + title: "Term's and conditions", + onTap: () { + Get.to(() => const WebViewApp( + url: 'https://nearle.in/terms', + appBarText: 'Terms and conditions', + ), + ); + }, + ), + CustomListTile( + leadingIcon: Icons.privacy_tip, + title: 'Privacy Policy', + noNeedDivider: true, + onTap: () { + Get.to(() => const WebViewApp( + url: 'https://nearle.in/privacy', + appBarText: 'Privacy Policy', + )); + }, + ), + ], + ), + ), + ); + } +} + +class CustomListTile extends StatelessWidget { + final IconData leadingIcon; + final String title; + final VoidCallback onTap; + final bool? noNeedDivider; + + const CustomListTile({ + super.key, + required this.leadingIcon, + required this.title, + required this.onTap, + this.noNeedDivider, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + ListTile( + contentPadding: EdgeInsets.zero, + visualDensity: const VisualDensity(horizontal: -4), // Decrease space + leading: CircleAvatar( + radius: 18, + backgroundColor: ColorConstants.primaryColor.withOpacity(0.1), + child: Icon( + leadingIcon, + color: ColorConstants.primaryColor, + size: 20, + ), + ), + trailing: const Icon(Icons.arrow_forward_ios, size: 17), + title: TextWidget( + text: title, + fontSize: 16, + // fontWeight: FontWeight.bold, + ), + onTap: onTap, // Action when the ListTile is tapped + ), + (noNeedDivider ?? false) ? + const SizedBox() : + Divider( + thickness: 0.5, + // color: ColorConstants.lightGrey, + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/View/More/Notification/Notificationview.dart b/lib/View/More/Notification/Notificationview.dart new file mode 100644 index 0000000..56b0b23 --- /dev/null +++ b/lib/View/More/Notification/Notificationview.dart @@ -0,0 +1,100 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../Controller/More/Notification/Notificationcontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; + +class NotificationView extends StatelessWidget { + NotificationView({super.key}); + + final NotificationController controller = + Get.put(NotificationController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + leading: Row( + children: [ + IconButton(onPressed: (){ + Navigator.pop(context); + + }, icon: Icon(Icons.arrow_back,color: Colors.black,)), + Text( + "Notification", + style: TextStyle(color: Colors.black,fontSize: 20), + ), + ], + ), + leadingWidth: 400, + elevation: 0, + backgroundColor:ColorConstants.lightColor, + automaticallyImplyLeading: true, + ), + + body: Obx(() { + // Loading state + if (controller.isLoading.value) { + return const Center(child: CircularProgressIndicator()); + } + // Empty state + if (controller.notifications.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + const SizedBox(height: 10), + Text( + "No notification at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + ), + ); + } + + // Notification List + return ListView.builder( + padding: const EdgeInsets.all(12), + itemCount: controller.notifications.length, + itemBuilder: (context, index) { + final NotificationModel item = + controller.notifications[index]; + + return Card( + elevation: 2, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: ListTile( + title: Text( + item.title, + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + subtitle: Text( + item.message, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + trailing: Text( + item.notificationdate.split("T")[0], // YYYY-MM-DD + style: const TextStyle(fontSize: 12, color: Colors.grey), + ), + ), + ); + }, + ); + }), + ); + } +} diff --git a/lib/View/More/Staffs/Addstaff/Addstaffview.dart b/lib/View/More/Staffs/Addstaff/Addstaffview.dart new file mode 100644 index 0000000..7662f29 --- /dev/null +++ b/lib/View/More/Staffs/Addstaff/Addstaffview.dart @@ -0,0 +1,477 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import '../../../../Controller/More/Staffs/Addstaff/Addstaffcontroller.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/custombutton.dart'; +import '../../../../Helper/customederaction.dart'; + +class AddStaffView extends StatelessWidget { + final bool location; + + AddStaffView({super.key, required this.location}); + + AddStaffController addStaffController = Get.put(AddStaffController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + elevation: 0.5, + leading: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.secondaryColor, + size: 28, + )), + titleSpacing: 1, + title: Text('Add Staff',style: TextStyle(color: ColorConstants.secondaryColor)), + backgroundColor: ColorConstants.primaryColor, + ), + body: Container( + child: ListView( + children: [ + GetBuilder( + initState: (_){ + addStaffController.getLocation(); + }, + + builder: (controller) { + return Container( + child: Padding( + padding: const EdgeInsets.only( + left: 10.0, right: 10.0, top: 10, bottom: 70), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 20, + ), + firstName(context), + SizedBox( + height: 12, + ), + lastName(context), + SizedBox( + height: 12, + ), + + Container( + child: contactNo(context), + height: 55, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(7)), + ), + ), + SizedBox( + height: 12, + ), + email(context), + SizedBox( + height: 12, + ), + SizedBox( + height: 8, + ), + Container( + height: 110, + width: Get.width, + decoration: BoxDecoration( + color: Colors.white, + border: Border.all( + color: Color.fromRGBO(220, 220, 220, 0.6), + ), + borderRadius: BorderRadius.all( + Radius.circular(7), + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 10,), + Padding( + padding: const EdgeInsets.only(left: 10), + child: Text( + addStaffController.isLocation.isTrue ?'Selected Location :':"Selected Location :", + style: TextStyle(fontSize: 18, color: Colors.grey[500]), + ), + ), + SizedBox(height: 10,), + addStaffController.isLocation.value == true + ? Container( + height: 45, + margin: EdgeInsets.only(left: 10), + padding: EdgeInsets.symmetric(horizontal: 10), + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + + shape: BoxShape.rectangle, + border: Border.all( + color: Colors.white + ), + borderRadius: BorderRadius.all( + Radius.circular(5), + ), + ), + // width: 150, + child: Row( + mainAxisSize: MainAxisSize.min, + + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 45, + + + child: Center( + child: Icon( + Icons.store, + color: ColorConstants.secondaryColor, + + size: 30, + ), + ), + ), + SizedBox( + width: 5, + ), + Container(width: 1,color: Colors.white,), + SizedBox( + width: 5, + ), + Text(controller.locationName??'', + textAlign: TextAlign.center, + maxLines: 2, + style: TextStyle( + fontSize: 15, + color: Colors.white, + height: 0.9, + fontWeight: FontWeight.bold + )), + ], + ), + ) + : + Expanded( + + child: ListView.builder( + padding: EdgeInsets.only(left: 0), + scrollDirection: Axis.horizontal, + physics: ScrollPhysics(), + itemCount: addStaffController.tenantLocation?.length, + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: + const EdgeInsets.only(left: 5.0, top: 10,bottom: 12,right: 10), + child: GetX( + + builder: (controller) { + return InkWell( + onTap: () { + controller.locationId.value = controller.tenantLocation?[index].locationid??0; + controller.locationAddress = controller.tenantLocation?[index].locationaddress??''; + controller.locationSuburb = controller.tenantLocation?[index].locationsuburb??''; + controller.locationCity = controller.tenantLocation?[index].locationcity??''; + controller.locationState = controller.tenantLocation?[index].locationstate??''; + controller.locationPostcode = controller.tenantLocation?[index].locationpostcode??''; + FocusScope.of(context).unfocus(); + + print('locationAddressonTap${controller.locationAddress}'); + }, + child: Container( + height: 40, + padding: EdgeInsets.symmetric(horizontal: 5), + decoration: BoxDecoration( + color: controller.locationId.value == controller.tenantLocation?[index].locationid + ? ColorConstants.primaryColor + : Colors.white, + shape: BoxShape.rectangle, + border: Border.all( + color: controller.locationId.value == + controller.tenantLocation?[index].locationid + ? Colors.white + : Colors.grey[300]!), + borderRadius: BorderRadius.all( + Radius.circular(5), + ), + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + + Container( + child: Center( + child: Icon( + Icons.store, + color: controller.locationId.value == + controller.tenantLocation?[index].locationid + ? ColorConstants.secondaryColor + : Colors.grey[400], + size: 30, + ), + ), + ), + SizedBox( + width: 5, + + // height: 5, + ), + SizedBox( + width: 1, + child: Container(color: + controller.locationId.value == + controller.tenantLocation?[index].locationid? Colors.white:Colors.grey[300],), + // height: 5, + ), + SizedBox( + width: 5, + + // height: 5, + ), + Text( controller.tenantLocation?[index].locationname??'', + textAlign: TextAlign.center, + maxLines: 2, + style: TextStyle( + fontSize: 12, + color:controller.locationId.value == + controller.tenantLocation?[index].locationid? Colors.white: Colors.grey[600], + height: 0.9, + fontWeight: + controller.locationId.value == + controller.tenantLocation?[index].locationid + ? FontWeight.bold + : FontWeight.w500)), + ], + ), + ), + ); + } + ), + ); + }, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + ) + ], + ), + ), + bottomNavigationBar: SizedBox( + height: Get.height*0.08, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 11,top: 0), + child: RoundedButton( + onPressed: () { + addStaffController.describeValidation(); + }, + color:ColorConstants.primaryColor, + title: 'Create', + controller: addStaffController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ), + )), + ], + ), + + ), + + ); + } + + String? validateEmail(String? value) { + const pattern = r"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'" + r'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-' + r'\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*' + r'[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4]' + r'[0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9]' + r'[0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\' + r'x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])'; + final regex = RegExp(pattern); + + return value!.isNotEmpty && !regex.hasMatch(value) + ? 'Enter a valid email address' + : null; + } + + + Widget firstName(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'First Name', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: addStaffController.nameController, + // focusNode: aadharNoNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget lastName(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Last Name', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: addStaffController.lastNameController, + // focusNode: aadharNoNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget contactNo(context) { + return TextFormField( + keyboardType: + TextInputType.numberWithOptions(signed: true, decimal: true), + maxLength: 10, + controller: addStaffController.phoneNoController, + buildCounter: (BuildContext context, + {int? currentLength, int? maxLength, bool? isFocused}) => + null, + onChanged: (contactNo){ + if(contactNo.length==10){ + FocusScope.of(context).unfocus(); + } + }, + decoration: InputDecoration( + labelText: 'Contact no', + labelStyle: TextStyle(color: Colors.grey), + prefixIcon:Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: Get.width * 0.2, + height: Get.height * 0.04, + child: Row( + children: [ + Spacer(flex: 1,), + Flexible( + child: Icon( + Icons.phone_android_outlined, + color: ColorConstants.primaryColor, + ), + ), + Spacer(flex: 1,), + Flexible(flex: 3,child: Text("+91",style: TextStyle(color: ColorConstants.primaryColor,fontWeight: FontWeight.bold))), + ], + ), + ), + ], + ), + + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + width: 1.0, + ), + ), + + ), + ); + } + + Widget email(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: Form( + autovalidateMode: AutovalidateMode.always, + child: TextFormField( + validator: validateEmail, + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Email', + prefixIcon: Icon( + Icons.mail_outline, + color: ColorConstants.primaryColor, + )), + controller: addStaffController.emailController, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ), + ); + } +} + + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} + diff --git a/lib/View/More/Staffs/Staffview.dart b/lib/View/More/Staffs/Staffview.dart new file mode 100644 index 0000000..cdef03b --- /dev/null +++ b/lib/View/More/Staffs/Staffview.dart @@ -0,0 +1,563 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import 'package:shimmer/shimmer.dart'; + +import '../../../Controller/More/Staffs/Staffscontroller.dart'; +import '../../../Helper/Constants/AssetConstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/utility.dart'; +import '../../Home/Homeview.dart'; +import '../Locations/Addlocation/Addlocationview.dart'; +import 'Addstaff/Addstaffview.dart'; +import 'Updatestaff/Updatestaffview.dart'; + +class StaffsView extends StatelessWidget { + StaffsView({super.key}); + StaffsController staffsController = Get.put(StaffsController()); + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: () async { + Get.to(()=>HomeView(selectedIndex: 3)); + return false; + }, + child: Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: Padding( + padding: const EdgeInsets.all(5.0), + child: Image( + image: AssetImage(AssetConstants.NearleAppbarIcon), + height: 30, + ), + ), + title: Text('Staffs', + style: TextStyle(color: ColorConstants.secondaryColor)), + titleSpacing: 0, + ), + body: Stack( + children: [ + Column( + children: [ + SizedBox( + height: 10, + ), + Expanded( + flex: 9, + child: mobileUserList(), + ) + ], + ), + Positioned( + bottom: 5, + left: 0, + right: 0, + child: Container( + margin: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + height: 60, + // width: Get.width * 0.8, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: ColorConstants.primaryColor), + child: Center( + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: InkWell( + onTap: () { + Navigator.of(context) + .pushReplacement(MaterialPageRoute( + builder: (context) => HomeView( + selectedIndex: 0, + ))); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.home, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Home', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + SizedBox( + height: 60, + width: 0.5, + child: Container( + color: Colors.white, + ), + ), + Expanded( + child: InkWell( + onTap: () { + Get.to(() => AddStaffView( + location: false, + )); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.person_add, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'Add User', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + SizedBox( + height: 60, + width: 0.5, + child: Container( + color: Colors.white, + ), + ), + Expanded( + child: InkWell( + onTap: () { + Get.to(HomeView(selectedIndex: 3)); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.more_horiz, + color: Colors.white, + ), + SizedBox( + height: 3, + ), + Text( + 'More', + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + ], + ), + ), + ), + ) + ], + ), + ), + ); + } + + Widget mobileUserList() { + return GetBuilder(initState: (_) { + staffsController.shimmer = true; + staffsController.getStaffs(); + }, builder: (controller) { + return Container( + margin: const EdgeInsets.only( + left: 10.0, + right: 10, + ), + child: + !controller.shimmer && controller.getStaff.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + SizedBox( + height: 8, + ), + Text( + "No users at this moment", + style: TextStyle( + color: Colors.grey[600], fontSize: 14), + ), + ], + )) + : controller.shimmer + ? staffShimmer() + : + ListView.builder( + padding: EdgeInsets.only(bottom: 80), + itemCount: controller.getStaff.length, + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: const EdgeInsets.only(top: 12), + child: Stack( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + boxShadow: [BoxShadow(color: Colors.grey)], + borderRadius: BorderRadius.all(Radius.circular(3)), + ), + height: 120, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Stack( + children: [ + Container( + width: Get.width*0.22, + decoration: BoxDecoration( + color: + UtilityPromotion.getLightColors( + '${controller.getStaff[index].firstname?[0]}'.toString()) + .withAlpha(100), + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Container( + // width: 55, + // height: 60, + child: CircleAvatar( + backgroundColor: + Colors.white70, + radius: 30, + child: Text( + "${controller.getStaff[index].firstname?[0].toString().toUpperCase()}", + style: TextStyle( + color: Colors.black54, + fontSize: 22), + )), + ), + + + ], + ), + ), + Positioned( + bottom: 26, + right: 12, + child: GestureDetector( + onTap: () { + Get.to(UpdateStaff(staffData:controller.getStaff[index])); + }, + child: Container( + decoration: BoxDecoration( + color: + ColorConstants.primaryColor, + shape: BoxShape.circle, + // borderRadius: BorderRadius.circular(12), + ), + child: Padding( + padding: + const EdgeInsets.symmetric( + vertical: 6, + horizontal: 6), + child: Icon( + Icons.edit, + color: Colors.white, + size: 16, + ), + ), + ), + ), + ) + ], + ), + SizedBox( + width: 10, + ), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + // SizedBox( + // height: 4, + // ), + Row( + children: [ + Icon( + Icons.person, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Row( + children: [ + Text( + "${controller.getStaff[index].firstname}", + style: TextStyle( + fontSize: 16, + color: Colors.grey[600], + fontWeight: + FontWeight.w600), + ), + SizedBox( + width: 10, + ), + // users[index]['Roleid']==1? + // Icon( + // Icons + // .admin_panel_settings_outlined, + // color: + // ColorConstants.primaryColor, + // size: 20, + // ) + // : users[index]['Roleid']==2?Icon(Icons.phone_android,color:ColorConstants.primaryColor,size:20,): + // Icon(Icons.laptop_windows,color:ColorConstants.primaryColor,size:20,) + ], + ), + ], + ), + Row( + children: [ + Icon( + Icons.phone, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + '+91 ${controller.getStaff[index].contactno}', + style: TextStyle( + fontSize: 15, + color: Colors.black54, + fontWeight: FontWeight.w400), + ), + ], + ), + Row( + children: [ + Container( + height: 30, + padding: EdgeInsets.only(right: 10,), + + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + border: Border.all( + color: ColorConstants.primaryColor)), + child: Row( + children: [ + Container( + padding: EdgeInsets.symmetric( + horizontal: 10), + height: 30, + decoration: BoxDecoration( + color: Colors.white), + child: Icon( + Icons.business, + color: ColorConstants.primaryColor, + size: 18, + ), + ), + SizedBox( + width: 10, + ), + Text( + '${controller.getStaff[index].locationname}', + style: TextStyle( + fontSize: 15, + color: Colors.white, + fontWeight: + FontWeight.w400), + ), + + ], + ), + ), + ], + ), + + ], + )), + ], + ), + ), + ], + ), + ); + }), + ); + }); + } + + staffShimmer() { + return Shimmer.fromColors( + enabled: true, + child: ListView.builder( + padding: EdgeInsets.only(bottom: 60, top: 10), + itemCount: 4, + itemBuilder: (BuildContext context, int index) { + return InkWell( + child: Container( + margin: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + border: Border.all(color: Colors.grey[400]!, width: 2), + borderRadius: BorderRadius.all(Radius.circular(3)), + ), + height: 90, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + flex: 3, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 55, + height: 55, + child: CircleAvatar( + backgroundColor: + ColorConstants.secondaryColor, + child: Text( + "", + style: TextStyle( + color: ColorConstants.secondaryColor, + fontSize: 22), + )), + ), + ], + )), + Expanded( + flex: 8, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: 4, + ), + Expanded( + flex: 2, + child: Row( + children: [ + Icon( + Icons.person, + color: ColorConstants.secondaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + "--------------", + style: TextStyle( + fontSize: 16, + color: Colors.grey[600], + fontWeight: FontWeight.w600), + ), + ], + ), + ), + Expanded( + flex: 2, + child: Row( + children: [ + Icon( + Icons.phone, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 5, + ), + Text( + '-----------', + style: TextStyle( + fontSize: 15, + color: Colors.black54, + fontWeight: FontWeight.w400), + ), + ], + ), + ), + Expanded( + flex: 2, + child: Row( + children: [ + Expanded( + // flex: 5, + child: Row( + children: [ + Icon( + Icons.store, + color: ColorConstants.primaryColor, + size: 20, + ), + SizedBox( + width: 3, + ), + Text( + '-----------', + // '', + style: TextStyle( + fontSize: 15, + color: Colors.black54, + fontWeight: FontWeight.w400), + ), + SizedBox( + width: 5, + ), + ], + )), + ], + ), + ), + SizedBox( + height: 4, + ), + ], + )), + Expanded( + flex: 1, + child: Center( + child: Icon( + Icons.arrow_forward_ios, + color: Colors.grey[600], + size: 16, + ), + ), + ) + ], + ), + ), + ); + }), + baseColor: Colors.grey[300]!, + highlightColor: Colors.grey[100]!, + ); + } +} diff --git a/lib/View/More/Staffs/Updatestaff/Updatestaffview.dart b/lib/View/More/Staffs/Updatestaff/Updatestaffview.dart new file mode 100644 index 0000000..07e6b5b --- /dev/null +++ b/lib/View/More/Staffs/Updatestaff/Updatestaffview.dart @@ -0,0 +1,478 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; + +import '../../../../Controller/More/Staffs/Updatestaff/Updatestaffcontroller.dart'; +import '../../../../Helper/Constants/Colorconstants.dart'; +import '../../../../Helper/custombutton.dart'; +import '../../../../Helper/customederaction.dart'; +import '../../../../Model/Response/Staffs/Getstaffsresponse.dart'; +import '../../../Home/Homeview.dart'; + +class UpdateStaff extends StatelessWidget { + final StaffDetails staffData; + UpdateStaff({super.key, required this.staffData}); + UpdateStaffController updateStaffController = Get.put(UpdateStaffController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: ColorConstants.lightColor, + appBar: AppBar( + elevation: 0.5, + leading: InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.secondaryColor, + size: 28, + )), + titleSpacing: 1, + title: Text('Update Staff',style: TextStyle(color: ColorConstants.secondaryColor)), + backgroundColor: ColorConstants.primaryColor, + ), + body: Container( + child: ListView( + children: [ + GetBuilder( + initState: (_){ + updateStaffController.staffData = staffData; + updateStaffController.setValues(); + updateStaffController.getLocation(); + }, + + builder: (controller) { + return Container( + child: Padding( + padding: const EdgeInsets.only( + left: 10.0, right: 10.0, top: 10, bottom: 70), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 20, + ), + firstName(context), + SizedBox( + height: 12, + ), + lastName(context), + SizedBox( + height: 12, + ), + + Container( + child: contactNo(context), + height: 55, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all(Radius.circular(7)), + ), + ), + SizedBox( + height: 12, + ), + email(context), + SizedBox( + height: 12, + ), + SizedBox( + height: 8, + ), + Container( + height: 110, + width: Get.width, + decoration: BoxDecoration( + color: Colors.white, + border: Border.all( + color: Color.fromRGBO(220, 220, 220, 0.6), + ), + borderRadius: BorderRadius.all( + Radius.circular(7), + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 10,), + Padding( + padding: const EdgeInsets.only(left: 10), + child: Text( + updateStaffController.isLocation.isTrue ?'Selected Location :':"Selected Location :", + style: TextStyle(fontSize: 18, color: Colors.grey[500]), + ), + ), + SizedBox(height: 10,), + updateStaffController.isLocation.value == true + ? Container( + height: 45, + margin: EdgeInsets.only(left: 10), + padding: EdgeInsets.symmetric(horizontal: 10), + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + + shape: BoxShape.rectangle, + border: Border.all( + color: Colors.white + ), + borderRadius: BorderRadius.all( + Radius.circular(5), + ), + ), + // width: 150, + child: Row( + mainAxisSize: MainAxisSize.min, + + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: 45, + + + child: Center( + child: Icon( + Icons.store, + color: ColorConstants.secondaryColor, + + size: 30, + ), + ), + ), + SizedBox( + width: 5, + ), + Container(width: 1,color: Colors.white,), + SizedBox( + width: 5, + ), + Text(controller.locationName??'', + textAlign: TextAlign.center, + maxLines: 2, + style: TextStyle( + fontSize: 15, + color: Colors.white, + height: 0.9, + fontWeight: FontWeight.bold + )), + ], + ), + ) + : + Expanded( + + child: ListView.builder( + padding: EdgeInsets.only(left: 0), + scrollDirection: Axis.horizontal, + physics: ScrollPhysics(), + itemCount: updateStaffController.tenantLocation?.length, + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: + const EdgeInsets.only(left: 5.0, top: 10,bottom: 12,right: 10), + child: GetX( + + builder: (controller) { + return InkWell( + onTap: () { + controller.locationId.value = controller.tenantLocation?[index].locationid??0; + controller.locationAddress = controller.tenantLocation?[index].locationaddress??''; + controller.locationSuburb = controller.tenantLocation?[index].locationsuburb??''; + controller.locationCity = controller.tenantLocation?[index].locationcity??''; + controller.locationState = controller.tenantLocation?[index].locationstate??''; + controller.locationPostcode = controller.tenantLocation?[index].locationpostcode??''; + FocusScope.of(context).unfocus(); + + print('locationAddressonTap${controller.locationAddress}'); + }, + child: Container( + height: 40, + padding: EdgeInsets.symmetric(horizontal: 5), + decoration: BoxDecoration( + color: controller.locationId.value == controller.tenantLocation?[index].locationid + ? ColorConstants.primaryColor + : Colors.white, + shape: BoxShape.rectangle, + border: Border.all( + color: controller.locationId.value == + controller.tenantLocation?[index].locationid + ? Colors.white + : Colors.grey[300]!), + borderRadius: BorderRadius.all( + Radius.circular(5), + ), + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + + Container( + child: Center( + child: Icon( + Icons.store, + color: controller.locationId.value == + controller.tenantLocation?[index].locationid + ? ColorConstants.secondaryColor + : Colors.grey[400], + size: 30, + ), + ), + ), + SizedBox( + width: 5, + + // height: 5, + ), + SizedBox( + width: 1, + child: Container(color: + controller.locationId.value == + controller.tenantLocation?[index].locationid? Colors.white:Colors.grey[300],), + // height: 5, + ), + SizedBox( + width: 5, + + // height: 5, + ), + Text( controller.tenantLocation?[index].locationname??'', + textAlign: TextAlign.center, + maxLines: 2, + style: TextStyle( + fontSize: 12, + color:controller.locationId.value == + controller.tenantLocation?[index].locationid? Colors.white: Colors.grey[600], + height: 0.9, + fontWeight: + controller.locationId.value == + controller.tenantLocation?[index].locationid + ? FontWeight.bold + : FontWeight.w500)), + ], + ), + ), + ); + } + ), + ); + }, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + ) + ], + ), + ), + bottomNavigationBar: SizedBox( + height: Get.height*0.08, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 11,top: 0), + child: RoundedButton( + onPressed: () { + updateStaffController.describeValidation(); + }, + color:ColorConstants.primaryColor, + title: 'Update', + controller: updateStaffController.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ), + )), + ], + ), + + ), + ); + } + + Widget firstName(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + keyboardType: TextInputType.text, + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'First Name', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: updateStaffController.nameController, + // focusNode: aadharNoNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget lastName(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: TextFormField( + keyboardType: TextInputType.text, + textCapitalization: TextCapitalization.sentences, + inputFormatters: [ + UpperCaseTextFormatter() + ], + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Last Name', + prefixIcon: Icon( + Icons.person, + color: ColorConstants.primaryColor, + )), + controller: updateStaffController.lastNameController, + // focusNode: aadharNoNode, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ); + } + + Widget contactNo(context) { + return TextFormField( + keyboardType: + TextInputType.numberWithOptions(signed: true, decimal: true), + maxLength: 10, + controller: updateStaffController.phoneNoController, + buildCounter: (BuildContext context, + {int? currentLength, int? maxLength, bool? isFocused}) => + null, + onChanged: (contactNo) { + if (contactNo.length == 10) { + FocusScope.of(context).unfocus(); + } + }, + decoration: InputDecoration( + labelText: 'Contact no', + labelStyle: TextStyle(color: Colors.grey), + prefixIcon:Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: Get.width * 0.2, + height: Get.height * 0.04, + child: Row( + children: [ + Spacer(flex: 1,), + Flexible( + child: Icon( + Icons.phone_android_outlined, + color: ColorConstants.primaryColor, + ), + ), + Spacer(flex: 1,), + Flexible(flex: 3,child: Text("+91",style: TextStyle(color: ColorConstants.primaryColor,fontWeight: FontWeight.bold))), + ], + ), + ), + ], + ), + + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: Color.fromRGBO(220, 220, 220, 0.6), + width: 2.0, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(7.0), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + width: 1.0, + ), + ), + + ), + ); + } + + Widget email(context) { + return Container( + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + ), + child: Form( + autovalidateMode: AutovalidateMode.always, + child: TextFormField( + validator: validateEmail, + decoration: CustomDecoration.textFieldStyle( + labelTextStr: 'Email', + prefixIcon: Icon( + Icons.mail_outline, + color: ColorConstants.primaryColor, + )), + controller: updateStaffController.emailController, + onEditingComplete: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + ), + ), + ); + } + + String? validateEmail(String? value) { + const pattern = r"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'" + r'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-' + r'\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*' + r'[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4]' + r'[0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9]' + r'[0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\' + r'x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])'; + final regex = RegExp(pattern); + + return value!.isNotEmpty && !regex.hasMatch(value) + ? 'Enter a valid email address' + : null; + } + +} + +class UpperCaseTextFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) { + return TextEditingValue( + text: capitalize(newValue.text), + selection: newValue.selection, + ); + } +} +String capitalize(String value) { + if(value.trim().isEmpty) return ""; + return "${value[0].toUpperCase()}${value.substring(1)}"; +} \ No newline at end of file diff --git a/lib/View/Orders/Deliverydetails/Deliverydetailsview.dart b/lib/View/Orders/Deliverydetails/Deliverydetailsview.dart new file mode 100644 index 0000000..00b1232 --- /dev/null +++ b/lib/View/Orders/Deliverydetails/Deliverydetailsview.dart @@ -0,0 +1,951 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:get/get.dart'; +import 'package:get/get_core/src/get_main.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:intl/intl.dart'; +import 'package:url_launcher/url_launcher.dart'; +import '../../../Controller/map_controller.dart'; +import '../../../Globalwidgets/textwidget.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/utility.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; + + + +class MapWithBottomSheetPage extends StatelessWidget { + + final DeliveriesDetails data; + + MapWithBottomSheetPage({super.key, required this.data}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Stack( + children: [ + MapWithPolylines( + endLatLng: LatLng( + double.tryParse(data.deliverylat ?? '') ?? 0.0, + double.tryParse(data.deliverylong ?? '') ?? 0.0, + ), + startLatLng: LatLng( + double.tryParse(data.pickuplat ?? '') ?? 0.0, + double.tryParse(data.pickuplon ?? '') ?? 0.0, + ), + ), + DraggableScrollableSheet( + initialChildSize: 0.22, + minChildSize: 0.12, + maxChildSize: 0.65, + builder: (context, scrollController) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.vertical(top: Radius.circular(18)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 10, + spreadRadius: 2, + ), + ], + ), + child: SingleChildScrollView( + controller: scrollController, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 40, + height: 5, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(12), + ), + ), + SizedBox(height: 12), + Row( + children: [ + CircleAvatar( + backgroundColor: ColorConstants.primaryColor, + radius: 30, + child: TextWidget( + text: data.ridername?[0] ?? '', + fontWeight: FontWeight.w700, + fontSize: 20, + color: ColorConstants.secondaryColor, + ), + ), + SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + data.ridername ?? '', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18), + ), + Text("Order ID: ${data.orderid}"), + Text("Status: ${data.orderstatus}", style: TextStyle(color: Colors.green)), + ], + ), + ), + IconButton( + icon: Icon(Icons.phone, color: ColorConstants.primaryColor), + onPressed: () {}, + ), + ], + ), + SizedBox(height: 20), + Divider(), + ListTile( + title: Text("Pickup Location"), + subtitle: Text(data.pickupaddress ?? ''), + leading: Icon(Icons.location_on, color: Colors.red), + ), + SizedBox(height: 10,), + ListTile( + title: Text("Drop-off Location"), + subtitle: Text(data.deliveryaddress ?? ''), + leading: Icon(Icons.flag, color: Colors.green), + ), + SizedBox(height: 18), + Divider( + height: 1, + color: Colors.grey, + ), + SizedBox(height: 18), + TextWidget( + text: 'Order Details', + fontWeight: FontWeight.w500, + fontSize: 14, + ), + SizedBox(height: 10,), + Row( + children: [ + TextWidget( + text: 'Delivery Charges', + fontWeight: FontWeight.w700, + ), + Spacer(), + TextWidget( + text: data.deliverycharges.toString(), + fontWeight: FontWeight.w700, + ) + ], + ), + SizedBox(height: 10,), + Row( + children: [ + TextWidget( + text: 'Total Amount', + fontWeight: FontWeight.w700, + ), + Spacer(), + TextWidget( + text: data.deliveryamt.toString(), + fontWeight: FontWeight.w700, + ) + ], + ), + SizedBox(height: 18), + Divider( + height: 1, + color: Colors.grey, + ), + SizedBox(height: 18), + TextWidget( + text: 'Payment Details', + fontWeight: FontWeight.w500, + fontSize: 14, + ), + SizedBox(height: 10,), + Row( + children: [ + TextWidget( + text: data.deliverycustomer ?? '', + fontWeight: FontWeight.w700, + ), + Spacer(), + TextWidget( + text: data.deliverycontactno.toString(), + fontWeight: FontWeight.w700, + ) + ], + ), + SizedBox(height: 18), + Divider( + height: 1, + color: Colors.grey, + ), + SizedBox(height: 18), + TextWidget( + text: 'Payment method', + fontWeight: FontWeight.w500, + fontSize: 14, + ), + SizedBox(height: 10,), + TextWidget( + text: 'Cash on delivery', + fontWeight: FontWeight.w700, + ), + ], + ), + ), + ), + ); + }, + ), + ], + ), + ); + } +} + +// class SummaryDetailsView extends StatelessWidget { +// final DeliveriesDetails data; +// +// const SummaryDetailsView({super.key, required this.data}); +// +// @override +// Widget build(BuildContext context) { +// return Scaffold( +// appBar: _buildAppBar(), +// backgroundColor: Colors.grey[100], +// body: _buildBody(context), +// ); +// } +// +// /// Builds the app bar with a back button and title. +// AppBar _buildAppBar() { +// return AppBar( +// leading: InkWell( +// onTap: Get.back, +// child: Icon( +// Icons.arrow_back, +// color: ColorConstants.blackColor, +// size: 28, +// ), +// ), +// title: TextWidget( +// text: 'Delivery Details', +// fontSize: 20, +// fontWeight: FontWeight.w700, +// ), +// backgroundColor: ColorConstants.secondaryColor, +// ); +// } +// +// /// Builds the scrollable body with delivery details and map. +// Widget _buildBody(BuildContext context) { +// return SingleChildScrollView( +// padding: const EdgeInsets.all(0.0), +// child: Column( +// children: [ +// Padding( +// padding: const EdgeInsets.only(left: 0,right: 0), +// child: SizedBox( +// height: Get.height * 0.60, +// child: MapWithPolylines( +// endLatLng: LatLng( +// double.tryParse(data.deliverylat ?? '') ?? 0.0, +// double.tryParse(data.deliverylong ?? '') ?? 0.0, +// ), +// startLatLng: LatLng( +// double.tryParse(data.pickuplat ?? '') ?? 0.0, +// double.tryParse(data.pickuplon ?? '') ?? 0.0, +// ), +// ) +// ), +// ), +// const SizedBox(height: 10), +// DeliveryCard(data: data, isFromSummary: true,), +// const SizedBox(height: 20,) +// ], +// ), +// ); +// } +// } + +/// A reusable card widget displaying delivery header information (date, tenant, order). +class DeliveryHeaderCard extends StatelessWidget { + final DeliveriesDetails data; + + const DeliveryHeaderCard({super.key, required this.data}); + + @override + Widget build(BuildContext context) { + return Container( + color: ColorConstants.secondaryColor, + margin: const EdgeInsets.symmetric(horizontal: 5), + height: 95, + child: Row( + children: [ + _buildDateSection(), + const SizedBox(width: 12), + Expanded( + flex: 3, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + IconTextRow( + icon: Icons.person, + text: data.tenantname ?? '', + textStyle: _textStyle(15, Colors.grey[500]), + ), + IconTextRow( + icon: Icons.receipt, + text: data.orderid ?? '', + textStyle: _textStyle(13, Colors.black54), + ), + IconTextRow( + icon: Icons.phone, + text: data.tenantcontactno ?? '', + textStyle: _textStyle(13, Colors.black54), + onTap: () => _launchPhone(data.tenantcontactno), + ), + ], + ), + ), + ], + ), + ); + } + + /// Builds the date section with day, month, and time. + Widget _buildDateSection() { + final date = DateFormat("yyyy-MM-dd", "en_US").parse(data.deliverydate ?? DateTime.now().toString()); + return Container( + width: 75, + decoration: BoxDecoration( + color: ColorConstants.primaryColor1, + shape: BoxShape.rectangle, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), + decoration: BoxDecoration( + color: Colors.white70, + borderRadius: BorderRadius.circular(5), + ), + child: Column( + children: [ + Text( + DateFormat("dd").format(date), + style: _textStyle(14, Colors.grey[700]), + ), + const SizedBox(height: 4), + Text( + DateFormat("MMM").format(date), + style: _textStyle(14, Colors.grey[700], height: 1), + ), + ], + ), + ), + const SizedBox(height: 6), + Text( + DateFormat("hh.mm a").format(date), + style: _textStyle(11, Colors.grey[700]), + ), + ], + ), + ); + } + + /// Helper method to create consistent text styles. + TextStyle _textStyle(double fontSize, Color? color, {double? height}) { + return TextStyle( + fontSize: fontSize, + color: color, + fontWeight: FontWeight.w600, + height: height, + ); + } + + /// Launches phone dialer with the provided number. + void _launchPhone(String? number) { + if (number != null && number.isNotEmpty) { + launch('tel://$number'); + } + } +} + +/// A reusable card widget for displaying pickup or delivery location details. +class DeliveryLocationCard extends StatelessWidget { + final String title; + final String address; + final String contact; + final double lat; + final double lon; + final Color iconColor; + final bool isPickup; + + const DeliveryLocationCard({ + super.key, + required this.title, + required this.address, + required this.contact, + required this.lat, + required this.lon, + required this.iconColor, + required this.isPickup, + }); + + @override + Widget build(BuildContext context) { + return Card( + color: Colors.red[100]!.withAlpha(100), + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(13)), + child: SizedBox( + height: 150, + width: MediaQuery.of(context).size.width, + child: Row( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + const SizedBox(height: 15), + _buildMarkerIcon(), + const Spacer(), + _buildNavigationIcon(), + const SizedBox(height: 10), + ], + ), + ), + Expanded( + flex: 14, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Card( + elevation: 0, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + child: Padding( + padding: const EdgeInsets.only(left: 10), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 15), + IconTextRow( + icon: isPickup ? Icons.business : Icons.person, + text: title, + textStyle: const TextStyle(color: Colors.black87, fontSize: 15), + ), + const SizedBox(height: 10), + IconTextRow( + icon: Icons.location_on_rounded, + text: address, + textStyle: const TextStyle( + color: Colors.black87, + fontSize: 13, + overflow: TextOverflow.ellipsis, + ), + maxLines: 2, + ), + const SizedBox(height: 15), + IconTextRow( + icon: Icons.phone, + text: contact, + textStyle: const TextStyle(color: Colors.black87, fontSize: 13), + onTap: () => Utility.openPhoneCallApp(contact), + ), + ], + ), + ), + ), + ), + ), + ], + ), + ), + ); + } + + /// Builds the marker icon for the location. + Widget _buildMarkerIcon() { + return Container( + height: 40, + width: 40, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child: FaIcon( + FontAwesomeIcons.mapMarkerAlt, + size: 22, + color: iconColor, + ), + ); + } + + /// Builds the navigation icon with a tap action to open the map. + Widget _buildNavigationIcon() { + return InkWell( + onTap: () => Utility.openMap(lat, lon), + child: Container( + height: 40, + width: 40, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child: const Icon( + Icons.assistant_direction_rounded, + size: 30, + color: ColorConstants.primaryColor, + ), + ), + ); + } +} + +/// A reusable widget for displaying an icon and text with an optional tap action. +class IconTextRow extends StatelessWidget { + final IconData icon; + final String text; + final TextStyle textStyle; + final int? maxLines; + final VoidCallback? onTap; + + const IconTextRow({ + super.key, + required this.icon, + required this.text, + required this.textStyle, + this.maxLines, + this.onTap, + }); + + @override + Widget build(BuildContext context) { + return InkWell( + onTap: onTap, + child: Row( + children: [ + Icon(icon, size: 14, color: Colors.black38), + const SizedBox(width: 4), + Flexible( + child: Text( + text, + style: textStyle, + maxLines: maxLines, + overflow: maxLines != null ? TextOverflow.ellipsis : null, + ), + ), + if (maxLines != null) const SizedBox(width: 5), + ], + ), + ); + } +} + +/// Map with polyLines +class MapWithPolylines extends StatelessWidget { + final LatLng startLatLng; + final LatLng endLatLng; + + MapWithPolylines({ + required this.startLatLng, + required this.endLatLng, + Key? key, + }) : super(key: key); + + final mapController = Get.put(MapController()); + + Set _createPolylines() { + return { + Polyline( + polylineId: const PolylineId('route1'), + visible: true, + points: [startLatLng, endLatLng], + color: Colors.blue, + width: 5, + ), + }; + } + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Obx(() => GoogleMap( + initialCameraPosition: CameraPosition( + target: startLatLng, + zoom: mapController.zoom.value, + ), + polylines: _createPolylines(), + markers: { + Marker(markerId: const MarkerId("start"), position: startLatLng), + Marker(markerId: const MarkerId("end"), position: endLatLng), + }, + onMapCreated: (controller) { + mapController.setController(controller); + }, + )), + Positioned( + top: 20, + right: 10, + child: Column( + children: [ + FloatingActionButton( + mini: true, + backgroundColor: Colors.white, + onPressed: mapController.zoomIn, + child: const Icon(Icons.add, color: Colors.black), + ), + const SizedBox(height: 8), + FloatingActionButton( + mini: true, + backgroundColor: Colors.white, + onPressed: mapController.zoomOut, + child: const Icon(Icons.remove, color: Colors.black), + ), + ], + ), + ), + Positioned( + top: 20, + left: 10, + child: FloatingActionButton( + mini: true, + backgroundColor: Colors.white, + child: Icon(Icons.arrow_back, color: Colors.black), + onPressed: () { + Get.back(); + } + ) + ), + ], + ); + } +} + + +class DeliveryInfoCard extends StatelessWidget { + final String deliveryDate; + final String tenantName; + final String orderId; + final String contactNumber; + final VoidCallback onPhoneTap; + final Color primaryColor; + + const DeliveryInfoCard({ + super.key, + required this.deliveryDate, + required this.tenantName, + required this.orderId, + required this.contactNumber, + required this.onPhoneTap, + required this.primaryColor, + }); + + @override + Widget build(BuildContext context) { + final date = DateFormat("yyyy-MM-dd").parse(deliveryDate); + final dateTime = DateFormat("yyyy-MM-ddTHH:mm:ss").parse(deliveryDate); + + return Container( + margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 8), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: const [ + BoxShadow( + color: Colors.black12, + blurRadius: 6, + offset: Offset(0, 2), + ), + ], + ), + child: SizedBox( + height: 100, + child: Row( + children: [ + /// LEFT SIDE: DATE + Container( + width: 80, + decoration: BoxDecoration( + color: primaryColor, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(12), + bottomLeft: Radius.circular(12), + ), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + ), + child: Column( + children: [ + Text( + DateFormat("dd").format(date), + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + const SizedBox(height: 2), + Text( + DateFormat("MMM").format(date), + style: TextStyle( + fontSize: 14, + color: Colors.grey[600], + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + const SizedBox(height: 6), + Text( + DateFormat("hh:mm a").format(dateTime), + style: const TextStyle( + fontSize: 12, + color: Colors.white, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + + const SizedBox(width: 12), + + /// RIGHT SIDE: DETAILS + Expanded( + flex: 3, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildIconText(Icons.person, tenantName, 15), + _buildIconText(Icons.receipt, orderId, 13), + InkWell( + onTap: onPhoneTap, + child: _buildIconText(Icons.phone, contactNumber, 13, isLink: true), + ), + ], + ), + ), + ), + ], + ), + ), + ); + } + + Widget _buildIconText(IconData icon, String text, double fontSize, {bool isLink = false}) { + return Row( + children: [ + Icon(icon, color: Colors.black45, size: 18), + const SizedBox(width: 6), + Expanded( + child: Text( + text, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: fontSize, + color: isLink ? Colors.blue : Colors.black87, + fontWeight: FontWeight.w500, + decoration: isLink ? TextDecoration.underline : TextDecoration.none, + ), + ), + ), + ], + ); + } +} + + +class DeliveryCard extends StatelessWidget { + final dynamic data; + final bool isFromSummary; + + const DeliveryCard({super.key, required this.data, this.isFromSummary = false}); + + @override + Widget build(BuildContext context) { + return Card( + margin: const EdgeInsets.all(12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), + elevation: 0, + child: Padding( + padding: const EdgeInsets.all(12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + /// Timeline: Pickup icon, dotted line, Drop icon + SizedBox( + height: 190, // <-- match the combined height of your content + child: Column( + children: [ + _circleIcon(FontAwesomeIcons.mapMarkerAlt as IconData, isFromSummary ? Colors.red : Colors.green), + Expanded(child: _verticalDottedLine()), + _circleIcon((isFromSummary ? FontAwesomeIcons.checkCircle : FontAwesomeIcons.mapMarkerAlt) as IconData, isFromSummary ? Colors.green : Colors.red), + ], + ), + ), + const SizedBox(width: 12), + + /// Content Block + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildInfoBlock( + label: "Pickup", + name: data?.pickupcustomer ?? '', + address: data?.pickupaddress ?? '', + contact: data?.pickupcontactno ?? '', + lat: data?.pickuplat, + lon: data?.pickuplon, + isPickup: true, + ), + const SizedBox(height: 20), + _buildInfoBlock( + label: isFromSummary ? "Delivered" : "Drop", + name: data?.deliverycustomer ?? '', + address: data?.deliveryaddress ?? '', + contact: data?.deliverycontactno ?? '', + lat: data?.droplat, + lon: data?.droplon, + isPickup: false, + ), + ], + ), + ), + ], + ), + ), + ); + } + + + Widget _circleIcon(IconData icon, Color color) { + return Container( + height: 38, + width: 38, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [BoxShadow(color: Colors.black12, blurRadius: 3)], + ), + child: FaIcon(icon as FaIconData?, color: color, size: 20), + ); + } + + Widget _verticalDottedLine({double height = 60}) { + return SizedBox( + height: height, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: List.generate( + (height ~/ 6), + (index) => Container( + width: 1, + height: 4, + color: Colors.grey[400], + ), + ), + ), + ); + } + + Widget _buildInfoBlock({ + required String label, + required String name, + required String address, + required String contact, + required String? lat, + required String? lon, + required bool isPickup, + }) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + const SizedBox(height: 6), + _infoRow(Icons.person, name), + const SizedBox(height: 4), + _infoRow(Icons.location_on, address, maxLines: 2), + const SizedBox(height: 4), + InkWell( + onTap: () => Utility.openPhoneCallApp(contact), + child: _infoRow(Icons.phone, contact), + ), + const SizedBox(height: 6), + InkWell( + onTap: () { + Utility.openMap( + double.tryParse(lat ?? '0') ?? 0, + double.tryParse(lon ?? '0') ?? 0, + ); + }, + child: const Row( + children: [ + Icon(Icons.assistant_direction_rounded, + color: ColorConstants.primaryColor, size: 20), + SizedBox(width: 6), + Text( + "Navigate", + style: TextStyle( + color: ColorConstants.primaryColor, + fontWeight: FontWeight.w500, + ), + ) + ], + ), + ), + ], + ); + } + + Widget _infoRow(IconData icon, String text, {int maxLines = 1}) { + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon(icon, size: 16, color: Colors.black45), + const SizedBox(width: 6), + Expanded( + child: Text( + text, + maxLines: maxLines, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + color: Colors.black87, + fontSize: 13, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/View/Orders/Deliverydetails/delivery_detail_view.dart b/lib/View/Orders/Deliverydetails/delivery_detail_view.dart new file mode 100644 index 0000000..8453b0b --- /dev/null +++ b/lib/View/Orders/Deliverydetails/delivery_detail_view.dart @@ -0,0 +1,431 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:get/get_core/src/get_main.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:intl/intl.dart'; + +import '../../../Globalwidgets/textwidget.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Model/Response/Summary/Getsummarysresponse.dart'; +import '../../../Model/Response/products/product_info.dart'; +import '../orderDetails.dart'; + +class OrderDetailsPage extends StatelessWidget { + final DeliveriesDetails orderDetails; + final List productDetails; + + const OrderDetailsPage({ + super.key, + required this.productDetails, + required this.orderDetails, + }); + + // to replace "null" with empty text + String safe(String? v) { + if (v == null || v == "null") return ""; + return v; + } + + // to avoid crash when parsing date + DateTime safeParseDate(String? date) { + if (date == null || date.isEmpty || date == "null") { + return DateTime.now(); + } + try { + return DateTime.parse(date); + } catch (e) { + print("Invalid date received: $date"); + return DateTime.now(); + } + } + + bool isValidLatLng(double lat, double lng) { + return lat != 0.0 && lng != 0.0; + } + + @override + Widget build(BuildContext context) { + double totalAmount = 0; + double totalTax = 0; + + for (var product in productDetails) { + totalAmount += product.productsumprice ?? 0.0; + totalTax += product.taxamount ?? 0.0; + } + + final totalWithTax = totalAmount + totalTax; + + final DateTime dateTime = safeParseDate(orderDetails.deliverydate); + final String formattedDate = DateFormat('dd-MM-yy').format(dateTime); + final String formattedTime = DateFormat('hh:mm a').format(dateTime); + + final pickupLat = double.tryParse(safe(orderDetails.pickuplat)) ?? 0.0; + final pickupLng = double.tryParse(safe(orderDetails.pickuplon)) ?? 0.0; + final deliveryLat = double.tryParse(safe(orderDetails.deliverylat)) ?? 0.0; + final deliveryLng = double.tryParse(safe(orderDetails.deliverylong)) ?? 0.0; + + final bool showMap = isValidLatLng(pickupLat, pickupLng) && + isValidLatLng(deliveryLat, deliveryLng); + + return SafeArea( + top: false, + child: Scaffold( + appBar: AppBar( + automaticallyImplyLeading: true, + title: TextWidget( + text: 'Order Details', + fontSize: 20, + fontWeight: FontWeight.w700, + ), + backgroundColor: ColorConstants.secondaryColor, + leading: InkWell( + onTap: () { + Get.back(); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.blackColor, + )), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionCard( + icon: Icons.receipt_long, + title: "Order Info", + children: [ + _infoRow("Order ID", safe(orderDetails.orderid)), + _infoRow("Date", formattedDate), + _infoRow("Time", formattedTime), + ], + ), + const SizedBox(height: 12), + _sectionCard( + icon: Icons.shopping_cart, + title: "Products", + children: [ + ...productDetails.map((product) => Padding( + padding: const EdgeInsets.symmetric(vertical: 6), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + "${safe(product.productname)} x${product.orderqty}")), + Text( + "₹${((product.price ?? 0) * (product.orderqty ?? 0)).toStringAsFixed(0)}", + style: const TextStyle(fontSize: 16), + ), + ], + ), + )), + const Divider(height: 24), + _infoRow("Amount", "₹${totalAmount.toStringAsFixed(2)}", + isForProducts: true), + _infoRow("Tax", "₹${totalTax.toStringAsFixed(2)}", + isForProducts: true), + _infoRow("Total", "₹${totalWithTax.toStringAsFixed(2)}", + isForProducts: true), + ], + ), + const SizedBox(height: 12), + _sectionCard( + icon: Icons.person, + title: "Customer", + children: [ + _infoRow("Name", safe(orderDetails.deliverycustomer)), + _infoRow("Address", safe(orderDetails.deliveryaddress)), + _infoRow("Phone", safe(orderDetails.deliverycontactno)), + ], + ), + const SizedBox(height: 12), + Visibility( + visible: safe(orderDetails.ridername).isNotEmpty, + child: _sectionCard( + icon: Icons.delivery_dining, + title: "Rider", + children: [ + _infoRow("Name", safe(orderDetails.ridername)), + _infoRow("Phone", safe(orderDetails.ridercontact)), + ], + ), + ), + const SizedBox(height: 12), + SizedBox( + height: 200, + child: OrderStatusTimeline( + stages: [ + Stage( + label: "Accepted", + icon: Icons.check, + completed: safe(orderDetails.starttime).isNotEmpty, + time: convertTo12HourFormat(safe(orderDetails.starttime)), + ), + Stage( + label: "Arrived", + icon: Icons.location_on, + completed: safe(orderDetails.arrivaltime).isNotEmpty, + time: convertTo12HourFormat(safe(orderDetails.arrivaltime)), + ), + Stage( + label: "Picked", + icon: Icons.shopping_bag, + completed: safe(orderDetails.pickuptime).isNotEmpty, + time: convertTo12HourFormat(safe(orderDetails.pickuptime)), + ), + Stage( + label: "Delivered", + icon: Icons.delivery_dining, + completed: safe(orderDetails.deliverytime).isNotEmpty, + time: convertTo12HourFormat(safe(orderDetails.deliverytime)), + ), + ], + ), + ), + const SizedBox(height: 12), + + // Only show map if lat/lng are valid (not 0.0) + if (showMap) + SizedBox( + height: 300, + child: MapWithPolyLines( + startLatLng: LatLng(pickupLat, pickupLng), + endLatLng: LatLng(deliveryLat, deliveryLng), + ), + ) + else + Container( + height: 80, + alignment: Alignment.center, + child: Text("Map not available"), + ), + ], + ), + ), + ), + ); + } + + Widget _sectionCard({ + required IconData icon, + required String title, + String? Amount, + String? TaxAmount, + String? Total, + required List children, + }) { + return Container( + width: double.infinity, + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(12), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(icon, size: 20, color: ColorConstants.primaryColor), + const SizedBox(width: 8), + Text(title, + style: const TextStyle( + fontWeight: FontWeight.w600, fontSize: 16)), + ], + ), + const Divider(), + ...children, + ], + ), + ); + } + + Widget _infoRow(String label, String value, {bool? isForProducts}) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 100, + child: Text( + label, + style: const TextStyle(color: Colors.black54), + ), + ), + (isForProducts ?? false) ? Spacer() : const SizedBox(width: 8), + (isForProducts ?? false) + ? Text( + value, + style: const TextStyle(fontWeight: FontWeight.w500), + maxLines: 3, + overflow: TextOverflow.ellipsis, + ) + : Expanded( + child: Text( + value, + style: const TextStyle(fontWeight: FontWeight.w500), + maxLines: 3, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ); + } + + showBottomSheet(BuildContext context, {required VoidCallback onAccept}) { + showModalBottomSheet( + context: context, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(16.0)), + ), + builder: (BuildContext context) { + return Container( + padding: EdgeInsets.all(16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Center( + child: Container( + width: 40, + height: 5, + margin: EdgeInsets.symmetric(vertical: 8.0), + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2.5), + ), + ), + ), + SizedBox(height: 16.0), + Text( + 'Confirm Order', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + SizedBox(height: 16.0), + Text( + 'Accept this order and assign a rider?', + style: TextStyle(fontSize: 16), + textAlign: TextAlign.center, + ), + SizedBox(height: 24.0), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: ElevatedButton( + onPressed: () { + Navigator.pop(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.grey[300], + foregroundColor: Colors.black, + padding: EdgeInsets.symmetric(vertical: 16.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + ), + child: TextWidget(text: 'Cancel'), + ), + ), + SizedBox(width: 16.0), + Expanded( + child: ElevatedButton( + onPressed: () { + onAccept(); + }, + style: ElevatedButton.styleFrom( + backgroundColor: ColorConstants.primaryColor, + padding: EdgeInsets.symmetric(vertical: 16.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + ), + child: TextWidget( + text: 'Accept', + color: ColorConstants.secondaryColor, + ), + ), + ), + ], + ), + SizedBox(height: 16.0), + ], + ), + ); + }); + } +} + +// ────────────────────────────────────────────────────────── +// MAP WITH POLYLINES — SAFE (NO CRASH) +// ────────────────────────────────────────────────────────── + +class MapWithPolyLines extends StatelessWidget { + final LatLng startLatLng; + final LatLng endLatLng; + + const MapWithPolyLines({ + super.key, + required this.startLatLng, + required this.endLatLng, + }); + + Set _createPolylines() { + final polylineCoordinates = [ + startLatLng, + endLatLng, + ]; + + return { + Polyline( + polylineId: const PolylineId('route1'), + visible: true, + points: polylineCoordinates, + color: Colors.blue, + width: 5, + ), + }; + } + + @override + Widget build(BuildContext context) { + return Container( + width: double.infinity, + padding: const EdgeInsets.all(4), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(12), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: GoogleMap( + initialCameraPosition: CameraPosition( + target: startLatLng, + zoom: 13.0, + ), + onMapCreated: (GoogleMapController controller) {}, + polylines: _createPolylines(), + markers: { + Marker( + markerId: const MarkerId("start"), + position: startLatLng, + ), + Marker( + markerId: const MarkerId("end"), + position: endLatLng, + ), + }, + ), + ), + ); + } +} diff --git a/lib/View/Orders/Orderspage.dart b/lib/View/Orders/Orderspage.dart new file mode 100644 index 0000000..5f4c656 --- /dev/null +++ b/lib/View/Orders/Orderspage.dart @@ -0,0 +1,330 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../Controller/products/product_controller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/AssetConstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Model/Response/products/product_response.dart'; +import '../Dashboard/Dashboardview.dart'; + +class ProductView extends StatelessWidget { + ProductView({super.key}); + + final ProductController controller = Get.put(ProductController()); + final FocusNode searchFocusNode = FocusNode(); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_) { + controller.getProducts(); + }, + builder: (controller) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + title: AnimatedSwitcher( + duration: const Duration(milliseconds: 300), + transitionBuilder: (Widget child, Animation animation) { + return SizeTransition( + sizeFactor: animation, + axis: Axis.horizontal, + child: FadeTransition(opacity: animation, child: child), + ); + }, + child: controller.isSearchModeEnable.value + ? TextField( + key: const ValueKey('searchField'), + focusNode: searchFocusNode, + controller: controller.productSearchController, + cursorColor: ColorConstants.primaryColor, + decoration: const InputDecoration( + hintText: 'Search Products', + border: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.white), + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.white), + ), + focusedBorder: UnderlineInputBorder( + borderSide: + BorderSide(color: Colors.white, width: 2), + ), + isDense: false, + contentPadding: EdgeInsets.zero, + ), + style: const TextStyle(color: Colors.black), + + // 🔥 FIXED HERE — USE LOCAL SEARCH + onChanged: (value) { + controller.applySearch(value); + }, + + autofocus: true, + ) + : TextWidget( + key: const ValueKey('titleText'), + text: 'Products', + fontWeight: FontWeight.w700, + fontSize: 20, + ), + ), + actions: [ + Padding( + padding: const EdgeInsets.only(right: 12), + child: InkWell( + onTap: () { + if (controller.isSearchModeEnable.value) { + controller.productSearchController.clear(); + searchFocusNode.unfocus(); + + // 🔥 FIXED HERE — RESTORE LIST + controller.applySearch(''); + } else { + Future.delayed(const Duration(milliseconds: 100), () { + searchFocusNode.requestFocus(); + }); + } + + controller.isSearchModeEnable.value = + !controller.isSearchModeEnable.value; + controller.update(); + }, + child: Icon( + controller.isSearchModeEnable.value + ? Icons.cancel + : Icons.search, + color: ColorConstants.primaryColor, + ), + ), + ), + ], + ), + + body: Obx(() { + if (controller.isProductLoading.value) { + return const Center( + child: Padding( + padding: EdgeInsets.only(top: 10), + child: ShimmerListView(height: 100), + ), + ); + } + + if (controller.product.isEmpty) { + return emptyProductsWidget(); + } + + return ListView.builder( + cacheExtent: 1000, + itemCount: controller.product.length, + itemBuilder: (context, index) { + final product = controller.product[index]; + return ProductCard( + key: ValueKey(product.productid), + product: product, + index: index, + controller: controller, + isLoading: controller.loadingIndices.contains(index), + ); + }, + ); + }), + ); + }, + ); + } +} + +/// Product Card Widget +class ProductCard extends StatelessWidget { + final ProductData product; + final int index; + final ProductController controller; + final bool isLoading; + + const ProductCard({ + super.key, + required this.product, + required this.index, + required this.controller, + required this.isLoading, + }); + + @override + Widget build(BuildContext context) { + final isAvailable = product.status == 'Active'; + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 0), + child: Padding( + padding: const EdgeInsets.only(top: 5), + child: Card( + elevation: 0, + shadowColor: Colors.grey.shade100, + color: Colors.white, + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: Padding( + padding: const EdgeInsets.only(top: 12, left: 10, right: 10), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(12), + child: CachedNetworkImage( + imageUrl: product.productimage ?? '', + width: 80, + height: 80, + fit: BoxFit.cover, + memCacheHeight: 160, + memCacheWidth: 160, + maxHeightDiskCache: 160, + maxWidthDiskCache: 160, + placeholder: (context, url) => Container( + width: 80, + height: 80, + color: Colors.grey.shade100, + child: Icon(Icons.image, + color: Colors.grey.shade400, size: 40), + ), + errorWidget: (context, url, error) => Container( + width: 80, + height: 80, + color: Colors.grey.shade100, + child: Icon(Icons.broken_image_outlined, + color: Colors.grey.shade400, size: 40), + ), + ), + ), + const SizedBox(width: 12), + + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget( + text: product.productname ?? 'Unknown', + maxLines: 1, + fontSize: 15, + fontWeight: FontWeight.w700, + color: isAvailable + ? Colors.black87 + : Colors.grey.shade600, + ), + const SizedBox(height: 8), + Row( + children: [ + Icon( + Icons.inventory_2_outlined, + size: 16, + color: Colors.grey.shade500, + ), + const SizedBox(width: 4), + Text( + "Qty: ${product.productstock ?? 0}", + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + fontWeight: FontWeight.w500, + ), + ), + const Spacer(), + Text( + product.productcost != null + ? '₹${product.productcost!.toStringAsFixed(2)}' + : 'N/A', + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + const SizedBox(height: 8), + Row( + children: [ + Container( + padding: const EdgeInsets.symmetric( + horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: isAvailable + ? Colors.green.shade500 + : Colors.red.shade400, + borderRadius: BorderRadius.circular(10), + ), + child: Text( + isAvailable ? "Active" : "Out of Stock", + style: const TextStyle( + fontSize: 11, + color: Colors.white, + fontWeight: FontWeight.w600, + ), + ), + ), + const Spacer(), + AnimatedOpacity( + opacity: isLoading ? 0.6 : 1.0, + duration: const Duration(milliseconds: 300), + child: Switch.adaptive( + value: isAvailable, + activeColor: Colors.green.shade500, + inactiveThumbColor: Colors.grey.shade400, + inactiveTrackColor: Colors.grey.shade200, + onChanged: isLoading + ? null + : (_) => controller.toggleAvailability(index), + ), + ), + ], + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } +} + +Widget emptyProductsWidget() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 10), + Image.asset( + AssetConstants.noProductsFound, + height: 200, + width: 200, + fit: BoxFit.fill, + ), + TextWidget( + text: 'No Products Found!', + color: ColorConstants.blackColor, + fontSize: 18, + fontWeight: FontWeight.w700, + maxLines: 2, + textAlign: TextAlign.center, + ), + const SizedBox(height: 10), + TextWidget( + text: 'You haven’t added any products yet.', + color: ColorConstants.blackColor, + fontSize: 14, + fontWeight: FontWeight.normal, + maxLines: 2, + textAlign: TextAlign.center, + ), + ], + ), + ); +} diff --git a/lib/View/Orders/Tabs/Month.dart b/lib/View/Orders/Tabs/Month.dart new file mode 100644 index 0000000..e620283 --- /dev/null +++ b/lib/View/Orders/Tabs/Month.dart @@ -0,0 +1,883 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../../Controller/Orders/Tabs/Monthcontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../Deliverydetails/Deliverydetailsview.dart'; + +class MonthOrderView extends StatelessWidget { + MonthOrderView({super.key}); + MonthOrderController monthOrderController = Get.put(MonthOrderController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_){ + monthOrderController.shimmer.value = true; + monthOrderController.getOrders(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: Colors.grey[100], + body: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10, top: 5), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 5, right: 10), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.94, + child: TextField( + // textAlign: TextAlign.center, + controller: controller.searchController, + // style: TextStyle(fontSize: 15), + onChanged: (data) { + controller.search(data); + controller.update(); + }, + decoration: InputDecoration( + contentPadding: EdgeInsets.only( + bottom: 10, + right: 45, + // left: 10 + ), + border: OutlineInputBorder( + borderRadius: + BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + )), + enabledBorder: OutlineInputBorder( + borderRadius: + BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + )), + focusedBorder: OutlineInputBorder( + borderRadius: + BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + )), + prefixIcon: Icon( + Icons.search, + color: ColorConstants.primaryColor, + ), + // suffixIcon: popUp(), + hintText: 'Name'), + ), + ), + ], + ), + ), + ], + ), + ), + + Expanded( + child:monthOrderController.orderAllList.length == 0&& !monthOrderController.shimmer.value + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 92, + ), + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + + Text( + "No orders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + )) + : controller.shimmer.value + ? orderShimmerCard(context): ListView.builder( + itemCount: controller.orderAllList.length, + itemBuilder: (BuildContext context, int index) { + return Container( + // height: Get.height * 0.21, + // width: Get.width * 0.9, + margin: + EdgeInsets.only(left: 10, right: 10, top: 5), + padding: EdgeInsets.only( + left: 10, right: 10, top: 10, bottom: 10), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(10)), + child: InkWell( + onTap: (){ + // Get.to(()=> DeliveryDetailsView(data: controller.orderAllList[index])); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4), + child: Column( + children: [ + Row( + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + controller.orderAllList[index].deliverydate == "" ? Text(''): + Text( + '${DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + controller.orderAllList[index].deliverydate == "" ? Text(''): + + Text( + '${DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + width: 7, + ), + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor!)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Icon( + Icons.delivery_dining, + size: 25, + color: ColorConstants + .primaryColor, + ), + controller.orderAllList[index].kms==null?Text( + '0.0', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 12, + ), + ):Text( + '${controller.orderAllList[index].kms?.toString()}Km', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 12, + ), + ), + ], + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Container( + height: Get.height * 0.05, + width: Get.width * 0.28, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular(5), + border: Border.all( + color: Colors.grey[400]!)), + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox(width: 10,), + CircleAvatar( + radius: 10, + backgroundColor: ColorConstants.primaryColor1, + child: controller.orderAllList[index].paymenttype==42?Icon(Icons.mobile_friendly,color: ColorConstants.primaryColor,size: 12,):controller.orderAllList[index].paymenttype==43?Icon(Icons.money,color: ColorConstants.primaryColor,size: 12,):Icon(Icons.wallet,color: ColorConstants.primaryColor,size: 12,)), + SizedBox(width: 07,), + Text( + "₹ ${controller.orderAllList[index].deliverycharges}", + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + height: 9, + ), + controller.orderAllList[index].orderstatus =='cancelled'?Container( + height: Get.height*0.04, + width: Get.width*0.3, + decoration: BoxDecoration(color:Colors.red,borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5,), + Icon(Icons.cancel, + color: ColorConstants.secondaryColor, size: 18), + SizedBox(width: 6,), + Text( + '${controller.orderAllList[index].orderstatus }', + style: TextStyle( + color: ColorConstants.secondaryColor, + fontWeight: FontWeight.bold, + fontSize: 15)), + ], + ), + ):Container( + height: Get.height*0.04, + width: Get.width*0.3, + decoration: BoxDecoration(color:controller.orderAllList[index].orderstatus =='completed'?Colors.green: Colors.grey[100],borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5,), + CircleAvatar( + backgroundColor:controller.orderAllList[index].orderstatus =='completed'? + ColorConstants.secondaryColor: + ColorConstants.primaryColor1, + radius: 10, + child: Icon(Icons.check, + color: Colors.grey, size: 15), + ), + SizedBox(width: 6,), + Text( + '${controller.orderAllList[index].orderstatus }', + style: TextStyle( + color:controller.orderAllList[index].orderstatus =='completed'? + ColorConstants.secondaryColor: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 15)), + ], + ), + ), + + ], + ), + ), + SizedBox( + width: 10, + ), + Padding( + padding: const EdgeInsets.only(top: 7), + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.person, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Container( + width: Get.width*0.35, + child: Text( + '${controller.orderAllList[index].pickupcustomer}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + + ), + maxLines: 2, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + // Row( + // mainAxisAlignment: + // MainAxisAlignment.start, + // crossAxisAlignment: + // CrossAxisAlignment.start, + // children: [ + // Icon( + // Icons.location_on, + // color: Colors.grey[500], + // size: 22, + // ), + // SizedBox( + // width: 4, + // ), + // Padding( + // padding: const EdgeInsets.only( + // top: 2), + // child: Container( + // width: Get.width*0.35, + // child: Text( + // '${controller.orderAllList[index].delivceryaddress}', + // style: TextStyle( + // color: Colors.black87, + // fontWeight: + // FontWeight.normal, + // fontSize: 14, + // + // ), + // maxLines: 2, + // ), + // ), + // ), + // ], + // ), + // SizedBox( + // height: 10, + // ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.phone, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '${controller.orderAllList[index].pickupcontactno}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.confirmation_num, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '${controller.orderAllList[index].orderid}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.business_rounded, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '${controller.orderAllList[index].tenantname}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + + ], + ), + ), + Spacer(), + Column( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + shape: BoxShape.rectangle, + borderRadius: BorderRadius.all( + Radius.circular(12.0)), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 3.0, horizontal: 5), + child: Text( + '${DateFormat("hh.mm a").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + fontSize: 10.5, + color: Colors.white)), + )), + ], + ), + ], + ), + ], + ), + ), + ); + }) + ) + ], + ), + ); + } + ); + } + + orderShimmerCard(BuildContext context) { + return ListView.builder( + itemCount: 6, + itemBuilder: (BuildContext context, int index) { + return Container( + height: Get.height * 0.21, + width: Get.width * 0.9, + margin: + EdgeInsets.only(left: 10, right: 10, top: 5), + padding: EdgeInsets.only( + left: 10, right: 10, top: 10, bottom: 10), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(10)), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4), + child: Column( + children: [ + Row( + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor!)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + width: 7, + ), + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor!)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Icon( + Icons.delivery_dining, + size: 25, + color: ColorConstants + .primaryColor, + ), + Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 12, + ), + ), + ], + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Container( + height: Get.height * 0.05, + width: Get.width * 0.28, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular(5), + border: Border.all( + color: Colors.grey[400]!)), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + height: 6, + ), + Container( + height: Get.height*0.04, + width: Get.width*0.3, + decoration: BoxDecoration(color:Colors.grey[100],borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5,), + CircleAvatar( + backgroundColor:Colors.grey[100], + radius: 10, + child: Icon(Icons.check, + color: Colors.grey, size: 15), + ), + SizedBox(width: 6,), + Text( + '', + style: TextStyle( + color:Colors.grey[100], + fontWeight: FontWeight.bold, + fontSize: 15)), + ], + ), + ), + ], + ), + ), + SizedBox( + width: 10, + ), + Padding( + padding: const EdgeInsets.only(top: 7), + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.person, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.phone, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.confirmation_num, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.business, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + + + ], + ), + ), + Spacer(), + Column( + children: [ + Container( + height: Get.height*0.02, + width: Get.width*0.1, + decoration: BoxDecoration( + color: Colors.grey[100], + shape: BoxShape.rectangle, + borderRadius: BorderRadius.all( + Radius.circular(12.0)), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 3.0, horizontal: 5), + child: Text( + '', + style: TextStyle( + fontSize: 10.5, + color: Colors.white)), + )), + SizedBox(height: 80,), + Icon(Icons.cancel,size: 30,color: Colors.grey[100],) + + ], + ), + + ], + ), + + ], + ), + ), + + ); + }); + } +} diff --git a/lib/View/Orders/Tabs/Summary.dart b/lib/View/Orders/Tabs/Summary.dart new file mode 100644 index 0000000..4c1b8bb --- /dev/null +++ b/lib/View/Orders/Tabs/Summary.dart @@ -0,0 +1,206 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../Controller/Orders/Tabs/Summarycontroller.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; + +class OrderSummary extends StatelessWidget { + OrderSummary({super.key}); + OrderSummaryController orderSummaryController = Get.put(OrderSummaryController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor : Colors.grey[100], + body: GetBuilder( + initState: (_){ + orderSummaryController.shimmer.value = true; + orderSummaryController.getOrdersSummary(); + }, + builder: (controller) { + return controller.shimmer.value + ? Center(child: CircularProgressIndicator(color: ColorConstants.primaryColor,)) + :ListView( + scrollDirection: Axis.vertical, + children: [ + Padding( + padding: const EdgeInsets.only(top: 10,left: 10,right: 10), + child: Column( + children: [ + Container( + height: Get.height*0.10, + width: Get.width*0.94, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.2), + spreadRadius: 1, + blurRadius: 3, + offset: const Offset(0, 3), + ), + ], + ), + child: Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Center(child: Icon(Icons.pending, size: 54, color:ColorConstants.primaryColor1)), + const SizedBox(width: 5,), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 2,), + Text('Pending',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16,color: Colors.grey[600]),), + const SizedBox(height: 4,), + Text('${controller.getOrderSummary.pending}',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 20,color: Colors.grey[600]),), + ], + ), + ], + ), + ), + ), + const SizedBox(height: 15,), + Container( + height: Get.height*0.10, + width: Get.width*0.94, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.2), + spreadRadius: 1, + blurRadius: 3, + offset: const Offset(0, 3), + ), + ], + ), + child: Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Center(child: Icon(Icons.check_circle, size: 46, color:ColorConstants.primaryColor1)), + const SizedBox(width: 10,), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 4,), + Text('Completed',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16,color: Colors.grey[600]),), + const SizedBox(height: 4,), + Row( + children: [ + Text('${controller.getOrderSummary.delivered}',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 20,color: Colors.grey[600]),), + ], + ), + ], + ), + ], + ), + ), + ), + const SizedBox(height: 15,), + Container( + height: Get.height*0.10, + width: Get.width*0.94, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.2), + spreadRadius: 1, + blurRadius: 3, + offset: const Offset(0, 3), + ), + ], + ), + child: Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Center(child: Icon(Icons.cancel, size: 48, color:ColorConstants.primaryColor1)), + const SizedBox(width: 10,), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 4,), + Text('Cancelled',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16,color: Colors.grey[600]),), + const SizedBox(height: 4,), + Row( + children: [ + Text('${controller.getOrderSummary.cancelled}',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 20,color: Colors.grey[600]),), + ], + ), + ], + ), + ], + ), + ), + ), + + const SizedBox(height: 15,), + Container( + height: Get.height*0.10, + width: Get.width*0.94, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.2), + spreadRadius: 1, + blurRadius: 3, + offset: const Offset(0, 3), + ), + ], + ), + child: Container( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Center(child: Icon(Icons.location_city, size: 46, color:ColorConstants.primaryColor1)), + const SizedBox(width: 10,), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 4,), + Text('Amount',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 16,color: Colors.grey[600]),), + const SizedBox(height: 4,), + Row( + children: [ + Icon(Icons.currency_rupee_sharp,color: Colors.grey[600],size: 20), + Text('0.00',style: TextStyle(fontWeight: FontWeight.bold,fontSize: 20,color: Colors.grey[600]),), + ], + ), + ], + ), + ], + ), + ), + ), + + ], + ), + ), + ] + ); + } + ) + + ); + } +} diff --git a/lib/View/Orders/Tabs/Today.dart b/lib/View/Orders/Tabs/Today.dart new file mode 100644 index 0000000..25fd049 --- /dev/null +++ b/lib/View/Orders/Tabs/Today.dart @@ -0,0 +1,612 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../../Controller/Orders/Tabs/Todaycontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../../../Helper/toast.dart'; + +class TodayOrderView extends StatefulWidget { + const TodayOrderView({super.key}); + + @override + State createState() => _TodayOrderViewState(); +} + +class _TodayOrderViewState extends State { + late TodayOrderController todayOrderController; + Timer? _refreshTimer; + final TodayOrderController controller = Get.put(TodayOrderController()); + + @override + void initState() { + super.initState(); + + todayOrderController.shimmer.value = true; + + // Fetch once + todayOrderController.getOrders(); + + // Then refresh every 3 seconds + _refreshTimer = Timer.periodic(const Duration(seconds: 3), (timer) { + print('hi'); + todayOrderController.getOrders(); + }); + } + + @override + void dispose() { + _refreshTimer?.cancel(); + super.dispose(); + } + + + + + @override + Widget build(BuildContext context) { + return GetBuilder( + builder: (controller) { + return Scaffold( + backgroundColor: Colors.grey[100], + body: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10, top: 5), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 5, right: 10), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.94, + child: TextField( + controller: controller.searchController, + onChanged: (data) { + controller.search(data); + controller.update(); + }, + decoration: InputDecoration( + contentPadding: EdgeInsets.only( + bottom: 10, + right: 45, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + ), + ), + prefixIcon: Icon( + Icons.search, + color: ColorConstants.primaryColor, + ), + hintText: 'Name', + ), + ), + ), + ], + ), + ), + ], + ), + ), + + Expanded( + child: controller.orderAllList.isEmpty && !controller.shimmer.value + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: 92), + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + Text( + "No orders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + ), + ) + : controller.shimmer.value + ? orderShimmerCard(context) + : ListView.builder( + itemCount: controller.orderAllList.length, + itemBuilder: (BuildContext context, int index) { + return Container( + margin: EdgeInsets.only(left: 10, right: 10, top: 5), + padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(10), + ), + child: InkWell( + onTap: () { + // Get.to(() => DeliveryDetailsView(data: controller.orderAllList[index])); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4), + child: Column( + children: [ + Row( + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: ColorConstants.primaryColor), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + controller.orderAllList[index].deliverydate == "" + ? Text('') + : Text( + '${DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + controller.orderAllList[index].deliverydate == "" + ? Text('') + : Text( + '${DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox(width: 7), + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: ColorConstants.primaryColor), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + Icons.delivery_dining, + size: 25, + color: ColorConstants.primaryColor, + ), + controller.orderAllList[index].kms == null + ? Text( + '0.0', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 12, + ), + ) + : Text( + '${controller.orderAllList[index].kms?.toString()}Km', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 12, + ), + ), + ], + ), + ), + ], + ), + SizedBox(height: 10), + Container( + height: Get.height * 0.05, + width: Get.width * 0.28, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: Colors.grey[400]!), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 10), + CircleAvatar( + radius: 10, + backgroundColor: ColorConstants.primaryColor1, + child: controller.orderAllList[index].paymenttype == 42 + ? Icon(Icons.mobile_friendly, color: ColorConstants.primaryColor, size: 12) + : controller.orderAllList[index].paymenttype == 43 + ? Icon(Icons.money, color: ColorConstants.primaryColor, size: 12) + : Icon(Icons.wallet, color: ColorConstants.primaryColor, size: 12), + ), + SizedBox(width: 7), + Text( + "₹ ${controller.orderAllList[index].deliverycharges}", + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox(height: 9), + controller.orderAllList[index].orderstatus == 'cancelled' + ? Container( + height: Get.height * 0.04, + width: Get.width * 0.3, + decoration: BoxDecoration(color: Colors.red, borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5), + Icon(Icons.cancel, color: ColorConstants.secondaryColor, size: 18), + SizedBox(width: 6), + Text( + '${controller.orderAllList[index].orderstatus}', + style: TextStyle( + color: ColorConstants.secondaryColor, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ) + : Container( + height: Get.height * 0.04, + width: Get.width * 0.3, + decoration: BoxDecoration( + color: controller.orderAllList[index].orderstatus == 'completed' ? Colors.green : Colors.grey[100], + borderRadius: BorderRadius.circular(10), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5), + CircleAvatar( + backgroundColor: controller.orderAllList[index].orderstatus == 'completed' + ? ColorConstants.secondaryColor + : ColorConstants.primaryColor1, + radius: 10, + child: Icon(Icons.check, color: Colors.grey, size: 15), + ), + SizedBox(width: 6), + Text( + '${controller.orderAllList[index].orderstatus}', + style: TextStyle( + color: controller.orderAllList[index].orderstatus == 'completed' + ? ColorConstants.secondaryColor + : ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + ], + ), + ), + SizedBox(width: 10), + Padding( + padding: const EdgeInsets.only(top: 7), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.person, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Container( + width: Get.width * 0.35, + child: Text( + '${controller.orderAllList[index].pickupcustomer}', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.normal, + fontSize: 14, + ), + maxLines: 2, + ), + ), + ], + ), + SizedBox(height: 10), + Row( + children: [ + Icon(Icons.phone, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text( + '${controller.orderAllList[index].pickupcontactno}', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.normal, + fontSize: 14, + ), + ), + ], + ), + SizedBox(height: 10), + Row( + children: [ + Icon(Icons.confirmation_num, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text( + '${controller.orderAllList[index].orderid}', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.normal, + fontSize: 14, + ), + ), + ], + ), + SizedBox(height: 10), + Row( + children: [ + Icon(Icons.business_rounded, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text( + '${controller.orderAllList[index].tenantname}', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.normal, + fontSize: 14, + ), + ), + ], + ), + ], + ), + ), + Spacer(), + Column( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 3.0, horizontal: 5), + child: Text( + '${DateFormat("hh.mm a").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle(fontSize: 10.5, color: Colors.white), + ), + ), + ), + ], + ), + ], + ), + ], + ), + ), + ); + }, + ), + ), + ], + ), + ); + }, + ); + } + + Widget orderShimmerCard(BuildContext context) { + return ListView.builder( + itemCount: 6, + itemBuilder: (BuildContext context, int index) { + return Container( + height: Get.height * 0.21, + width: Get.width * 0.9, + margin: EdgeInsets.only(left: 10, right: 10, top: 5), + padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(10), + ), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4), + child: Column( + children: [ + Row( + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: ColorConstants.primaryColor!), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15)), + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15)), + ], + ), + ), + SizedBox(width: 7), + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: ColorConstants.primaryColor!), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon(Icons.delivery_dining, size: 25, color: ColorConstants.primaryColor), + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 12)), + ], + ), + ), + ], + ), + SizedBox(height: 10), + Container( + height: Get.height * 0.05, + width: Get.width * 0.28, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + border: Border.all(color: Colors.grey[400]!), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("", style: TextStyle(color: Colors.black87, fontWeight: FontWeight.bold, fontSize: 15)), + ], + ), + ), + SizedBox(height: 6), + Container( + height: Get.height * 0.04, + width: Get.width * 0.3, + decoration: BoxDecoration(color: Colors.grey[100], borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5), + CircleAvatar(backgroundColor: Colors.grey[100], radius: 10, child: Icon(Icons.check, color: Colors.grey, size: 15)), + SizedBox(width: 6), + Text('', style: TextStyle(color: Colors.grey[100], fontWeight: FontWeight.bold, fontSize: 15)), + ], + ), + ), + ], + ), + ), + SizedBox(width: 10), + Padding( + padding: const EdgeInsets.only(top: 7), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(Icons.person, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14)), + ], + ), + SizedBox(height: 10), + Row( + children: [ + Icon(Icons.phone, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14)), + ], + ), + SizedBox(height: 10), + Row( + children: [ + Icon(Icons.confirmation_num, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14)), + ], + ), + SizedBox(height: 10), + Row( + children: [ + Icon(Icons.business, color: Colors.grey[500], size: 22), + SizedBox(width: 4), + Text('', style: TextStyle(color: Colors.black87, fontWeight: FontWeight.normal, fontSize: 14)), + ], + ), + ], + ), + ), + Spacer(), + Column( + children: [ + Container( + height: Get.height * 0.02, + width: Get.width * 0.1, + decoration: BoxDecoration( + color: Colors.grey[100], + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 3.0, horizontal: 5), + child: Text('', style: TextStyle(fontSize: 10.5, color: Colors.white)), + ), + ), + SizedBox(height: 80), + Icon(Icons.cancel, size: 30, color: Colors.grey[100]), + ], + ), + ], + ), + ], + ), + ), + ); + }, + ); + } +} \ No newline at end of file diff --git a/lib/View/Orders/Tabs/Week.dart b/lib/View/Orders/Tabs/Week.dart new file mode 100644 index 0000000..c8ea3e5 --- /dev/null +++ b/lib/View/Orders/Tabs/Week.dart @@ -0,0 +1,883 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; +import 'package:shimmer/shimmer.dart'; +import '../../../Controller/Orders/Tabs/Weekcontroller.dart'; +import '../../../Helper/Constants/Assetconstants.dart'; +import '../../../Helper/Constants/Colorconstants.dart'; +import '../Deliverydetails/Deliverydetailsview.dart'; + +class WeekOrderView extends StatelessWidget { + WeekOrderView({super.key}); + WeekOrderController weekOrderController = Get.put(WeekOrderController()); + + @override + Widget build(BuildContext context) { + return GetBuilder( + initState: (_){ + weekOrderController.shimmer.value = true; + weekOrderController.getOrders(); + }, + builder: (controller) { + return Scaffold( + backgroundColor: Colors.grey[100], + body: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10, top: 5), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 5, right: 10), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.94, + child: TextField( + // textAlign: TextAlign.center, + controller: controller.searchController, + // style: TextStyle(fontSize: 15), + onChanged: (data) { + controller.search(data); + controller.update(); + }, + decoration: InputDecoration( + contentPadding: EdgeInsets.only( + bottom: 10, + right: 45, + // left: 10 + ), + border: OutlineInputBorder( + borderRadius: + BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + )), + enabledBorder: OutlineInputBorder( + borderRadius: + BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + )), + focusedBorder: OutlineInputBorder( + borderRadius: + BorderRadius.circular(30), + borderSide: BorderSide( + color: ColorConstants.primaryColor, + )), + prefixIcon: Icon( + Icons.search, + color: ColorConstants.primaryColor, + ), + // suffixIcon: popUp(), + hintText: 'Name'), + ), + ), + ], + ), + ), + ], + ), + ), + + Expanded( + child:weekOrderController.orderAllList.length == 0&& !weekOrderController.shimmer.value + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 92, + ), + Image( + height: 160, + width: 160, + image: AssetImage(AssetConstants.NoRecords), + ), + + Text( + "No orders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + )) + : controller.shimmer.value + ? orderShimmerCard(context): ListView.builder( + itemCount: controller.orderAllList.length, + itemBuilder: (BuildContext context, int index) { + return Container( + // height: Get.height * 0.21, + // width: Get.width * 0.9, + margin: + EdgeInsets.only(left: 10, right: 10, top: 5), + padding: EdgeInsets.only( + left: 10, right: 10, top: 10, bottom: 10), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(10)), + child: InkWell( + onTap: (){ + // Get.to(()=> DeliveryDetailsView(data: controller.orderAllList[index])); + }, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4), + child: Column( + children: [ + Row( + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + controller.orderAllList[index].deliverydate == "" ? Text(''): + Text( + '${DateFormat("dd").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + controller.orderAllList[index].deliverydate == "" ? Text(''): + + Text( + '${DateFormat("MMM").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + width: 7, + ), + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor!)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Icon( + Icons.delivery_dining, + size: 25, + color: ColorConstants + .primaryColor, + ), + controller.orderAllList[index].kms==null?Text( + '0.0', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 12, + ), + ):Text( + '${controller.orderAllList[index].kms?.toString()}Km', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 12, + ), + ), + ], + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Container( + height: Get.height * 0.05, + width: Get.width * 0.28, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular(5), + border: Border.all( + color: Colors.grey[400]!)), + child: Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + SizedBox(width: 10,), + CircleAvatar( + radius: 10, + backgroundColor: ColorConstants.primaryColor1, + child: controller.orderAllList[index].paymenttype==42?Icon(Icons.mobile_friendly,color: ColorConstants.primaryColor,size: 12,):controller.orderAllList[index].paymenttype==43?Icon(Icons.money,color: ColorConstants.primaryColor,size: 12,):Icon(Icons.wallet,color: ColorConstants.primaryColor,size: 12,)), + SizedBox(width: 07,), + Text( + "₹ ${controller.orderAllList[index].deliverycharges}", + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + height: 9, + ), + controller.orderAllList[index].orderstatus =='cancelled'?Container( + height: Get.height*0.04, + width: Get.width*0.3, + decoration: BoxDecoration(color:Colors.red,borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5,), + Icon(Icons.cancel, + color: ColorConstants.secondaryColor, size: 18), + SizedBox(width: 6,), + Text( + '${controller.orderAllList[index].orderstatus }', + style: TextStyle( + color: ColorConstants.secondaryColor, + fontWeight: FontWeight.bold, + fontSize: 15)), + ], + ), + ):Container( + height: Get.height*0.04, + width: Get.width*0.3, + decoration: BoxDecoration(color:controller.orderAllList[index].orderstatus =='completed'?Colors.green: Colors.grey[100],borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5,), + CircleAvatar( + backgroundColor:controller.orderAllList[index].orderstatus =='completed'? + ColorConstants.secondaryColor: + ColorConstants.primaryColor1, + radius: 10, + child: Icon(Icons.check, + color: Colors.grey, size: 15), + ), + SizedBox(width: 6,), + Text( + '${controller.orderAllList[index].orderstatus }', + style: TextStyle( + color:controller.orderAllList[index].orderstatus =='completed'? + ColorConstants.secondaryColor: ColorConstants.primaryColor, + fontWeight: FontWeight.bold, + fontSize: 15)), + ], + ), + ), + + ], + ), + ), + SizedBox( + width: 10, + ), + Padding( + padding: const EdgeInsets.only(top: 7), + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.person, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Container( + width: Get.width*0.35, + child: Text( + '${controller.orderAllList[index].pickupcustomer}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + + ), + maxLines: 2, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + // Row( + // mainAxisAlignment: + // MainAxisAlignment.start, + // crossAxisAlignment: + // CrossAxisAlignment.start, + // children: [ + // Icon( + // Icons.location_on, + // color: Colors.grey[500], + // size: 22, + // ), + // SizedBox( + // width: 4, + // ), + // Padding( + // padding: const EdgeInsets.only( + // top: 2), + // child: Container( + // width: Get.width*0.35, + // child: Text( + // '${controller.orderAllList[index].delivceryaddress}', + // style: TextStyle( + // color: Colors.black87, + // fontWeight: + // FontWeight.normal, + // fontSize: 14, + // + // ), + // maxLines: 2, + // ), + // ), + // ), + // ], + // ), + // SizedBox( + // height: 10, + // ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.phone, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '${controller.orderAllList[index].pickupcontactno}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.confirmation_num, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '${controller.orderAllList[index].orderid}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.business_rounded, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '${controller.orderAllList[index].tenantname}', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + + ], + ), + ), + Spacer(), + Column( + children: [ + Container( + decoration: BoxDecoration( + color: ColorConstants.primaryColor, + shape: BoxShape.rectangle, + borderRadius: BorderRadius.all( + Radius.circular(12.0)), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 3.0, horizontal: 5), + child: Text( + '${DateFormat("hh.mm a").format(DateFormat("yyyy-MM-dd'T'HH:mm:ss", "en_US").parse(controller.orderAllList[index].deliverydate!))}', + style: TextStyle( + fontSize: 10.5, + color: Colors.white)), + )), + ], + ), + ], + ), + ], + ), + ), + ); + }) + ) + ], + ), + ); + } + ); + } + orderShimmerCard(BuildContext context) { + return ListView.builder( + itemCount: 6, + itemBuilder: (BuildContext context, int index) { + return Container( + height: Get.height * 0.21, + width: Get.width * 0.9, + margin: + EdgeInsets.only(left: 10, right: 10, top: 5), + padding: EdgeInsets.only( + left: 10, right: 10, top: 10, bottom: 10), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(10)), + child: Shimmer.fromColors( + enabled: true, + highlightColor: ColorConstants.lightGreyBg!, + baseColor: Colors.grey[300]!, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(top: 4), + child: Column( + children: [ + Row( + children: [ + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor!)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + width: 7, + ), + Container( + height: Get.height * 0.06, + width: Get.width * 0.13, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular( + 5), + border: Border.all( + color: ColorConstants + .primaryColor!)), + child: Column( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Icon( + Icons.delivery_dining, + size: 25, + color: ColorConstants + .primaryColor, + ), + Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.bold, + fontSize: 12, + ), + ), + ], + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Container( + height: Get.height * 0.05, + width: Get.width * 0.28, + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular(5), + border: Border.all( + color: Colors.grey[400]!)), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Text( + "", + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ], + ), + ), + SizedBox( + height: 6, + ), + Container( + height: Get.height*0.04, + width: Get.width*0.3, + decoration: BoxDecoration(color:Colors.grey[100],borderRadius: BorderRadius.circular(10)), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(width: 5,), + CircleAvatar( + backgroundColor:Colors.grey[100], + radius: 10, + child: Icon(Icons.check, + color: Colors.grey, size: 15), + ), + SizedBox(width: 6,), + Text( + '', + style: TextStyle( + color:Colors.grey[100], + fontWeight: FontWeight.bold, + fontSize: 15)), + ], + ), + ), + ], + ), + ), + SizedBox( + width: 10, + ), + Padding( + padding: const EdgeInsets.only(top: 7), + child: Column( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.person, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.phone, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.confirmation_num, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Icon( + Icons.business, + color: Colors.grey[500], + size: 22, + ), + SizedBox( + width: 4, + ), + Padding( + padding: const EdgeInsets.only( + top: 2), + child: Text( + '', + style: TextStyle( + color: Colors.black87, + fontWeight: + FontWeight.normal, + fontSize: 14, + ), + ), + ), + ], + ), + + + ], + ), + ), + Spacer(), + Column( + children: [ + Container( + height: Get.height*0.02, + width: Get.width*0.1, + decoration: BoxDecoration( + color: Colors.grey[100], + shape: BoxShape.rectangle, + borderRadius: BorderRadius.all( + Radius.circular(12.0)), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 3.0, horizontal: 5), + child: Text( + '', + style: TextStyle( + fontSize: 10.5, + color: Colors.white)), + )), + SizedBox(height: 80,), + Icon(Icons.cancel,size: 30,color: Colors.grey[100],) + + ], + ), + + ], + ), + + ], + ), + ), + + ); + }); + } + +} diff --git a/lib/View/Orders/orderDetails.dart b/lib/View/Orders/orderDetails.dart new file mode 100644 index 0000000..f3c3c0e --- /dev/null +++ b/lib/View/Orders/orderDetails.dart @@ -0,0 +1,618 @@ +import 'package:country_currency_pickers/currency_picker_cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:intl/intl.dart'; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import 'package:timeline_tile/timeline_tile.dart'; +import '../../Controller/Dashboard/Tabs/Ordercontroller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Model/Response/Orders/Getorderresponse.dart'; +import '../../Model/Response/products/product_info.dart'; +import '../Rider/rider_assign.dart'; + +class OrderDetailsPage extends StatelessWidget { + + final OrderDetails orderDetails; + final List productDetails; + final CurrentOrderController controller; + + + const OrderDetailsPage({ + super.key, + required this.productDetails, + required this.orderDetails, + required this.controller, + }); + + @override + Widget build(BuildContext context) { + double totalAmount = 0; + double totalTax = 0; + + for (var product in productDetails) { + totalAmount = product.productsumprice ?? 0.0; + totalTax += product.taxamount ?? 0.0; + } + + final totalWithTax = totalAmount + totalTax; + + final DateTime dateTime = DateTime.parse(orderDetails.orderdate ?? ''); + + final String formattedDate = DateFormat('dd-MM-yy').format(dateTime); + final String formattedTime = DateFormat('hh:mm a').format(dateTime); + + logger.i('Order Status : ${orderDetails.orderstatus}'); + + return SafeArea( + top: false, + child: Scaffold( + appBar: AppBar( + automaticallyImplyLeading: true, + title: TextWidget( + text: 'Order Details', + fontSize: 20, + fontWeight: FontWeight.w700, + ), + backgroundColor: ColorConstants.secondaryColor, + leading: InkWell( + onTap: () { + Get.back(); + }, + child: Icon( + Icons.arrow_back, + color: ColorConstants.blackColor, + ) + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionCard( + icon: Icons.receipt_long, + title: "Order Info", + children: [ + _infoRow("Order ID", orderDetails.orderid ?? ''), + _infoRow("Date", "${formattedDate}"), + _infoRow("Time", "${formattedTime}"), + + ], + ), + const SizedBox(height: 12), + _sectionCard( + icon: Icons.shopping_cart, + title: "Products", + children: [ + // List of products + ...productDetails.map((product) => Padding( + padding: const EdgeInsets.symmetric(vertical: 6), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded(child: Text("${product.productname} x${product.orderqty}")), + Text( + "₹${((product.price ?? 0.0) * (product.orderqty ?? 1)).toStringAsFixed(2)}", + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + ], + ), + )), + + const Divider(height: 24), + + // Additional totals + _infoRow("Amount", "₹${totalAmount.toStringAsFixed(2)}", isForProducts: true), + _infoRow("Tax", "₹${totalTax.toStringAsFixed(2)}", isForProducts: true), + _infoRow( + "Total", + "₹${totalWithTax.toStringAsFixed(2)}", + isForProducts: true + ), + ], + ), + const SizedBox(height: 12), + _sectionCard( + icon: Icons.person, + title: "Customer", + children: [ + _infoRow("Name", orderDetails.deliverycustomer ?? ''), + _infoRow("Address", orderDetails.deliveryaddress ?? ''), + _infoRow("Phone", orderDetails.deliverycontactno ?? ''), + ], + ), + + const SizedBox(height: 12), + Visibility( + visible: orderDetails.rider?.isNotEmpty ?? false, + child: _sectionCard( + icon: Icons.delivery_dining, + title: "Rider", + children: [ + _infoRow("Name", orderDetails.rider ?? ''), + _infoRow("Phone", orderDetails.ridercontactno ?? ''), + ], + ), + ), + const SizedBox(height: 12), + SizedBox( + height: 200, + child: OrderStatusTimeline( + stages: [ + Stage( + label: "Accepted", + icon: Icons.check, + completed: orderDetails.starttime?.isNotEmpty ?? false, + time: convertTo12HourFormat(orderDetails.starttime ?? '', + ), + ), + Stage( + label: "Arrived", + icon: Icons.location_on, + completed: orderDetails.arrivaltime?.isNotEmpty ?? false, + time: convertTo12HourFormat(orderDetails.arrivaltime ?? '', + ), + ), + Stage( + label: "Picked", + icon: Icons.shopping_bag, + completed: orderDetails.pickuptime?.isNotEmpty ?? false, + time: convertTo12HourFormat(orderDetails.pickuptime ?? '') + ), + Stage( + label: "Delivered", + icon: Icons.delivery_dining, + completed:orderDetails.deliverytime?.isNotEmpty ?? false, + time: convertTo12HourFormat(orderDetails.deliverytime ?? '') + ), + ], + ), + ), + const SizedBox(height: 12), + + ], + ), + ), + bottomNavigationBar: orderDetails.orderstatus == 'cancelled' || orderDetails.orderstatus == 'delivered' ? + SizedBox() : + SafeArea( + child: SizedBox( + height: 80, + child: Padding( + padding: const EdgeInsets.only(left: 14,right: 14), + child: Row( + children: [ + Visibility( + visible: (orderDetails.orderstatus == 'pending' || orderDetails.orderstatus == 'created') , + child: Expanded( + child: RoundedLoadingButton( + controller: controller.cancelOrderButton, + color: Colors.red, + onPressed: () { + showCancelOrderDialog( + context, + () { + controller.declineOrder( + orderDetails.orderheaderid, + orderDetails.orderid, + orderDetails.customertoken, + orderDetails.ridertoken, + ); + }, + ); + }, + child: TextWidget( + text: 'Cancel', + fontSize: 15, + fontWeight: FontWeight.w700, + color: ColorConstants.secondaryColor, + ) + ) + ), + ), + const SizedBox(width: 16), + Visibility( + visible: orderDetails.orderstatus == 'created', + child: Expanded( + child: RoundedLoadingButton( + controller: controller.acceptOrderButton, + color: Colors.green, + onPressed: () { + Get.to(() => ReassignRidersView(deliveryDetails: orderDetails)); + controller.acceptOrderButton.reset(); + + }, + child: TextWidget( + text: 'Accept', + fontSize: 15, + fontWeight: FontWeight.w700, + color: ColorConstants.secondaryColor, + ), + ), + ), + ), + ], + ), + ), + ), + ), + ), + ); + } + + + + /// Alert dialog for the Cancel Order + void showCancelOrderDialog(BuildContext context, VoidCallback onConfirm) { + controller.cancelOrderButton.reset(); + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + title: const TextWidget( + text: 'Cancel Order', + fontWeight: FontWeight.w700, + fontSize: 18, + ), + content: const TextWidget(text: 'Would you like to cancel this order?', fontSize: 14,), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const TextWidget(text: 'No'), + ), + ElevatedButton( + style: ButtonStyle( + backgroundColor: WidgetStateProperty.all(Colors.red), + foregroundColor: WidgetStateProperty.all(ColorConstants.secondaryColor), + ), + onPressed: () { + Navigator.of(context).pop(); + onConfirm(); + }, + child: TextWidget( + text: 'Yes, Cancel' , + color: ColorConstants.secondaryColor, + fontWeight: FontWeight.w700, + ), + ), + ], + ); + }, + ); + } + + + Widget _sectionCard({ + required IconData icon, + required String title, + String? Amount, + String? TaxAmount, + String? Total, + required List children, + }) { + return Container( + width: double.infinity, + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(12), + // boxShadow: const [BoxShadow(color: Colors.black12, blurRadius: 4)], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(icon, size: 20, color: ColorConstants.primaryColor), + const SizedBox(width: 8), + Text(title, style: const TextStyle(fontWeight: FontWeight.w600, fontSize: 16)), + ], + ), + const Divider(), + ...children, + ], + ), + ); + } + + Widget _infoRow(String label, String value, {bool? isForProducts}) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 100, // fixed width for label + child: Text( + label, + style: const TextStyle(color: Colors.black54), + ), + ), + (isForProducts ?? false) ? + Spacer() : + const SizedBox(width: 8), + (isForProducts ?? false) ? + Text( + value, + style: const TextStyle(fontWeight: FontWeight.w500), + maxLines: 3, // Allow wrapping for address + overflow: TextOverflow.ellipsis, + ) : + Expanded( + child: Text( + value, + style: const TextStyle(fontWeight: FontWeight.w500), + maxLines: 3, // Allow wrapping for address + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ); + } + + showBottomSheet(BuildContext context, {required VoidCallback onAccept}) { + showModalBottomSheet( + context: context, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(16.0)), + ), + builder: (BuildContext context) { + return Container( + padding: EdgeInsets.all(16.0), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Optional: Add a handle or title + Center( + child: Container( + width: 40, + height: 5, + margin: EdgeInsets.symmetric(vertical: 8.0), + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2.5), + ), + ), + ), + SizedBox(height: 16.0), + Text( + 'Confirm Order', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + SizedBox(height: 16.0), + Text( + 'Accept this order and assign a rider?', + style: TextStyle(fontSize: 16), + textAlign: TextAlign.center, + ), + SizedBox(height: 24.0), + // Buttons + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: ElevatedButton( + onPressed: () { + // Handle Cancel action + Navigator.pop(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.grey[300], + foregroundColor: Colors.black, + padding: EdgeInsets.symmetric(vertical: 16.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + ), + child: TextWidget( + text: 'Cancel' + ), + ), + ), + SizedBox(width: 16.0), + Expanded( + child: ElevatedButton( + onPressed: () { + // Handle Accept action + onAccept(); + // Add your accept logic here + }, + style: ElevatedButton.styleFrom( + backgroundColor: ColorConstants.primaryColor, + padding: EdgeInsets.symmetric(vertical: 16.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + ), + child: TextWidget( + text: 'Accept', + color: ColorConstants.secondaryColor, + + ), + ), + ), + ], + ), + SizedBox(height: 16.0), + ], + ), + ); + }); + } +} + + + +class OrderStatusTimeline extends StatelessWidget { + final List stages; + + const OrderStatusTimeline({super.key, required this.stages}); + + @override + Widget build(BuildContext context) { + return Container( + width: double.infinity, + padding: const EdgeInsets.all(5), + decoration: BoxDecoration( + color: ColorConstants.secondaryColor, + borderRadius: BorderRadius.circular(12), + // boxShadow: const [BoxShadow(color: Colors.black12, blurRadius: 4)], + ), + + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Title + const Padding( + padding: EdgeInsets.only(left: 12, bottom: 8), + child: Text( + 'Order Status', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ), + const Divider(), + // Horizontal Timeline + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: SizedBox( + height: 100, + child: Row( + children: List.generate(stages.length, (index) { + final isFirst = index == 0; + final isLast = index == stages.length - 1; + final stage = stages[index]; + + return TimelineTile( + axis: TimelineAxis.horizontal, + alignment: TimelineAlign.center, + isFirst: isFirst, + isLast: isLast, + beforeLineStyle: LineStyle( + color: stage.completed ? Colors.green : Colors.grey.shade400, + thickness: 2, + ), + afterLineStyle: LineStyle( + color: stage.completed ? Colors.green : Colors.grey.shade400, + thickness: 2, + ), + indicatorStyle: IndicatorStyle( + width: 30, + height: 30, + indicator: Container( + decoration: BoxDecoration( + color: stage.completed ? Colors.green : Colors.grey.shade400, + shape: BoxShape.circle, + ), + child: Icon( + stage.icon, + color: Colors.white, + size: 16, + ), + ), + ), + endChild: Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 8), + + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: Text( + stage.label, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + color: stage.completed ? Colors.black : Colors.grey, + ), + textAlign: TextAlign.center, + ), + ), + if (stage.time != null) + Expanded( + child: Text( + stage.time!, + style: const TextStyle( + fontSize: 11, + color: Colors.black54, + ), + textAlign: TextAlign.center, + ), + ), + ], + ), + ), + ); + }), + ), + ), + ), + ], + ), + ), + ); + } +} + + +class Stage { + final String label; + final IconData icon; + final bool completed; + final String? time; + + Stage({ + required this.label, + required this.icon, + this.completed = false, + this.time, + }); +} + +String convertTo12HourFormat(String dateTimeString) { + logger.i('Convert This into 12 : ${dateTimeString}'); + + // Check if input is empty + if (dateTimeString.isEmpty) { + return ''; + } + + // Parse the input string to DateTime + DateTime dateTime = DateTime.parse(dateTimeString); + + // Get hour and minute + int hour = dateTime.hour; + int minute = dateTime.minute; + + // Determine AM/PM + String period = hour >= 12 ? 'PM' : 'AM'; + + // Convert to 12-hour format + hour = hour % 12; + if (hour == 0) hour = 12; + + // Format minute to always show two digits + String minuteStr = minute.toString().padLeft(2, '0'); + + return '$hour:$minuteStr $period'; +} + diff --git a/lib/View/Rider/rider_assign.dart b/lib/View/Rider/rider_assign.dart new file mode 100644 index 0000000..c881ad9 --- /dev/null +++ b/lib/View/Rider/rider_assign.dart @@ -0,0 +1,210 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:get/get_core/src/get_main.dart'; + +import 'package:rounded_loading_button_plus/rounded_loading_button.dart'; +import '../../Controller/Rider_assign/rider_assign_controller.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/AssetConstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; +import '../../Helper/toast.dart'; +import '../../Helper/utility.dart'; +import '../../Model/Response/Orders/Getorderresponse.dart'; + +class ReassignRidersView extends StatelessWidget { + final OrderDetails deliveryDetails; + + ReassignRidersView({Key? key, required this.deliveryDetails}) : super(key: key); + + final RiderAssignController reassignRidersController = Get.put(RiderAssignController()); + + @override + Widget build(BuildContext context) { + return SafeArea( + top: false, + child: Scaffold( + backgroundColor: Colors.grey[100], + appBar: AppBar( + leading: BackButton(color: Colors.black), + title: TextWidget( + text: 'Assign Rider', + fontSize: 20, + fontWeight: FontWeight.w700, + ), + backgroundColor: ColorConstants.secondaryColor, + elevation: 2, + ), + body: GetBuilder( + initState: (_) { + reassignRidersController.shimmer.value = true; + reassignRidersController.getRiders(deliveryDetails.applocationid); + logger.i('RiderDetails : ${deliveryDetails.pickupaddress}'); + logger.i('RiderDetails : ${deliveryDetails.pickupcustomer}'); + logger.i('RiderDetails : ${deliveryDetails.pickupaddress}'); + logger.i('RiderDetails : ${deliveryDetails.pickupcustomer}'); + }, + builder: (controller) { + if (controller.shimmer.value) { + return const Center(child: CircularProgressIndicator()); + } + + if (controller.riderDetails.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + AssetConstants.NoRecords, + height: 160, + width: 160, + ), + const SizedBox(height: 12), + Text( + "No riders at this moment", + style: TextStyle(color: Colors.grey[600], fontSize: 18), + ), + ], + ), + ); + } + + return ListView.separated( + itemCount: controller.riderDetails.length, + padding: const EdgeInsets.all(12), + separatorBuilder: (_, __) => const SizedBox(height: 8), + itemBuilder: (context, index) { + final rider = controller.riderDetails[index]; + final isSelected = controller.riderFcmToken.contains(rider.userfcmtoken); + final status = rider.status ?? ''; + final isIdle = status.toLowerCase() == 'idle'; + + return GestureDetector( + onTap: () { + if (isSelected) { + controller.riderFcmToken.remove(rider.userfcmtoken); + controller.riderUserIdList = 0; + } else if (rider.userfcmtoken == null || rider.userfcmtoken!.isEmpty) { + Toast.showToast("Rider token not available"); + } else { + controller + ..isIdle = false + ..isSelectAll = false + ..riderFcmToken.clear() + ..riderFcmToken.add(rider.userfcmtoken!) + ..riderUserIdList = rider.userid ?? 0 + ..partnerId = rider.partnerid ?? 0 + ..shiftId = rider.shiftid ?? 0 + ..riderStatus = status; + } + + controller.update(); + }, + child: Card( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + elevation: 0, + child: Padding( + padding: const EdgeInsets.all(12), + child: Row( + children: [ + CircleAvatar( + radius: 26, + backgroundColor: Utility.getLightColors(rider.firstname?[0] ?? '').withAlpha(160), + child: TextWidget( + text: rider.firstname?[0].toUpperCase() ?? '', + fontWeight: FontWeight.bold, + fontSize: 18, + ) + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '${rider.firstname} ${rider.lastname}', + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + const SizedBox(height: 4), + Text( + '+91 ${rider.contactno}', + style: TextStyle(color: Colors.grey[700], fontSize: 14), + ), + const SizedBox(height: 4), + Chip( + label: Text( + status, + style: TextStyle( + color: isIdle ? Colors.green : Colors.green, + fontWeight: FontWeight.w500, + ), + ), + backgroundColor: isIdle + ? Colors.green[50] + : Colors.green[50], + visualDensity: VisualDensity.compact, + ), + ], + ), + ), + Icon( + Icons.check_circle, + color: isSelected ? Colors.green : Colors.grey, + size: 28, + ), + ], + ), + ), + ), + ); + }, + ); + }, + ), + bottomNavigationBar: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + child: Row( + children: [ + Expanded( + child: ElevatedButton.icon( + onPressed: () => Navigator.pop(context), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.grey[600], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + padding: const EdgeInsets.symmetric(vertical: 14), + ), + icon: const Icon(Icons.arrow_back, size: 18), + label: const Text('Back'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: RoundedLoadingButton( + color: Colors.green, + controller: reassignRidersController.btnNotifyRiderController, + onPressed: () { + if (reassignRidersController.riderUserIdList != 0 && + reassignRidersController.riderFcmToken.isNotEmpty) { + reassignRidersController.createDelivery([deliveryDetails]); + } else { + Toast.showToast("Please select a rider"); + reassignRidersController.btnNotifyRiderController.reset(); + } + }, + child: TextWidget( + text: 'Notify', + fontWeight: FontWeight.w700, + color: ColorConstants.secondaryColor, + ) + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/View/Success/Successview.dart b/lib/View/Success/Successview.dart new file mode 100644 index 0000000..790fb5a --- /dev/null +++ b/lib/View/Success/Successview.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import 'package:lottie/lottie.dart'; + +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../Home/Homeview.dart'; + +class AccountCreatedScreen extends StatelessWidget { + const AccountCreatedScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Lottie.asset( + 'assets/success.json', + width: 200, + height: 200, + repeat: false, + ), + const SizedBox(height: 30), + const TextWidget( + text: "Account Created Successfully!", + fontSize: 22, + fontWeight: FontWeight.w700, + textAlign: TextAlign.center, + ), + const SizedBox(height: 20), + const TextWidget( + text: "You can now start using the app.", + fontSize: 16, + textAlign: TextAlign.center, + ), + const SizedBox(height: 40), + ElevatedButton( + onPressed: () { + Get.off(() => HomeView( + key: UniqueKey(), + selectedIndex: 0, + )); + }, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 40, vertical: 12), + backgroundColor: ColorConstants.primaryColor, + ), + child: const Text( + "Continue", + style: TextStyle(fontSize: 16), + ), + ) + ], + ), + ), + ), + ); + } +} + diff --git a/lib/View/Tenantlocation/Tenantlocationview.dart b/lib/View/Tenantlocation/Tenantlocationview.dart new file mode 100644 index 0000000..25315f6 --- /dev/null +++ b/lib/View/Tenantlocation/Tenantlocationview.dart @@ -0,0 +1,292 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../Controller/Tenantlocation/Tenantlocationcontroller.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/custombutton.dart'; +import '../../Helper/toast.dart'; +import '../../Helper/utility.dart'; +import '../../Model/Response/Customers/GetCustomerById/GetCustomerByTenantId.dart'; +import '../Createorder/Createorderview.dart'; + +class TenantLocations extends StatelessWidget { + final GetCustomerByTenantIdDetails data; + + TenantLocations({super.key, required this.data}); + + TenantLocationController tenantLocationController = Get.put(TenantLocationController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: ColorConstants.primaryColor, + elevation: 0.3, + leading: Padding( + padding: const EdgeInsets.all(5.0), + child:InkWell( + onTap: (){ + Get.back(); + }, + child: Icon(Icons.reply,size: 30,color: ColorConstants.secondaryColor,)), + ), + title: Text('Locations'), + titleSpacing: 0, + ), + backgroundColor: Colors.grey[100], + body: GetBuilder( + initState: (_){ + tenantLocationController.getTenantLocation(); + }, + builder: (controller) { + return Column( + children: [ + Container( + height: Get.height*0.8, + child: ListView.builder( + padding: EdgeInsets.only(bottom: 70), + itemCount: controller.getLocations.length, + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: const EdgeInsets.only(top: 8,left: 10,right: 10), + child: InkWell( + onTap: (){ + controller.selectedAddressIndex = index; + controller.locationId = controller.getLocations[index].locationid!; + controller.latitude = controller.getLocations[index].locationlatitude!; + controller.longitude = controller.getLocations[index].locationlong!; + controller.address = controller.getLocations[index].locationaddress!; + print('tenatlocationid${controller.locationId}'); + print('tenatlongitude${controller.latitude}'); + print('tenatlongitude${controller.longitude}'); + print('tenataddress${controller.address}'); + controller.update(); + }, + child: Card( + // color: Colors.grey[150], + elevation: 0.6, + child: Container( + height: Get.height*0.15, + child: Row( + children: [ + Expanded( + flex: 2, + child: Container( + decoration: BoxDecoration( + color: UtilityPromotion.getLightColors( + controller.getLocations[index].locationname![0] ?? + 'A'.toString().trimLeft()) + .withAlpha(200), + borderRadius: BorderRadius.circular(5), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Stack( + children: [ + Container( + padding: EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white70, + shape: BoxShape.circle), + child: Icon( + Icons.storefront, + color: ColorConstants.primaryColor, + size: 50, + )), + ], + ) + ], + ), + ), + ), + SizedBox( + width: 10, + ), + Expanded( + flex: 4, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + // SizedBox( + // height: 3, + // ), + Row( + children: [ + Icon( + Icons.location_on, + color: Colors.black45, + size: 17, + ), + SizedBox( + width: 5, + ), + Flexible( + flex: 3, + child: Text( + '${controller.getLocations[index].locationname}', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 18, + color: Colors.black54, + fontWeight: FontWeight.w600), + ), + ), + SizedBox( + width: 3, + ), + ], + ), + + Row( + children: [ + Icon( + Icons.phone_android_sharp, + color: Colors.black45, + size: 16, + ), + SizedBox( + width: 5, + ), + Text( + '${controller.getLocations[index].locationcontact}', + style: TextStyle( + fontSize: 15, + color: Colors.black87, + fontWeight: FontWeight.w400), + ), + ], + ), + + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon( + Icons.location_on_outlined, + size: 16, + color: Colors.black45, + ), + SizedBox( + width: 4, + ), + Flexible( + child: Text( + '${controller.getLocations[index].locationsuburb}', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 15, color: Colors.black87 +// fontWeight: FontWeight.w600 + ), + ), + ), + ], + ), + +// Row( +// crossAxisAlignment: CrossAxisAlignment.center, +// mainAxisAlignment: MainAxisAlignment.start, +// children: [ +// Icon( +// Icons.location_on_outlined, +// size: 16, +// color: Colors.black45, +// ), +// SizedBox( +// width: 4, +// ), +// Container( +// width: Get.width*0.44, +// child: Text( +// '${controller.getLocations[index].address}', +// overflow: TextOverflow.ellipsis, +// style: TextStyle( +// fontSize: 15, color: Colors.black87 +// // fontWeight: FontWeight.w600 +// ), +// ), +// ), +// ], +// ) + ], + ), + ), + SizedBox( + width: 10, + ), + Expanded( + flex: 1, + child: InkWell( + onTap: (){ + controller.selectedAddressIndex = index; + controller.locationId = controller.getLocations[index].locationid!; + controller.latitude = controller.getLocations[index].locationlatitude!; + controller.longitude = controller.getLocations[index].locationlong!; + controller.address = controller.getLocations[index].locationaddress!; + controller.update(); + }, + child: CircleAvatar( + radius: 12, + backgroundColor:controller.selectedAddressIndex==index?Colors.green:Colors.grey[300], + child: Icon(Icons.check,color: ColorConstants.secondaryColor,size: 20), + ), + ), + ) + + + + ], + ), + ) + ), + ), + ); + }, + ), + ), + Spacer(), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 11,top: 0), + child: Center( + child: RoundedButton( + onPressed: () { + + if(controller.selectedAddressIndex!=-1){ + Get.to(CreateOrderView(isDashboard: false,)); + controller.btnController.reset(); + } + else{ + controller.btnController.reset(); + Toast.showToast('Please Select location address'); + } + + }, + color:ColorConstants.primaryColor, + title: 'Continue', + controller: controller.btnController, + textStyle: const TextStyle( + fontSize: 18, + fontFamily: "Lato", + color: Colors.white, + fontWeight: FontWeight.bold), + height: Get.height*0.06, + width: Get.width*0.8, + ) + ), + + + )), + ], + ), + ], + ); + } + ), + ); + } +} diff --git a/lib/View/Update/Updateview.dart b/lib/View/Update/Updateview.dart new file mode 100644 index 0000000..6c04f7e --- /dev/null +++ b/lib/View/Update/Updateview.dart @@ -0,0 +1,182 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get/get.dart'; +import 'package:lottie/lottie.dart'; +import 'dart:io'; +import 'package:url_launcher/url_launcher.dart'; +import '../../Globalwidgets/textwidget.dart'; +import '../../Helper/Constants/AssetConstants.dart'; +import '../../Helper/Constants/Colorconstants.dart'; +import '../../Helper/Logger.dart'; + + +class UpdateAppPage extends StatelessWidget { + final bool mIsForceUpdate; + final String mCurrentVersion; + final String mUpdateVersion; + + const UpdateAppPage( + {super.key, this.mIsForceUpdate = true, required this.mCurrentVersion, required this.mUpdateVersion,}); + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: () async { + SystemNavigator.pop(); + return false; + }, + child: Scaffold( + backgroundColor: ColorConstants.secondaryColor, + body: ListView( + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.only(left: 10, right: 10), + child: Lottie.asset('' + 'assets/Update.json', + ), + ), + const SizedBox(height: 50,), + const Text( + "It's Time to Update", + style: TextStyle( + fontFamily: 'Lato', + fontSize: 18, + fontWeight: FontWeight.bold + ), + ), + const SizedBox(height: 5,), + Text( + 'Version $mUpdateVersion', + style: const TextStyle( + fontFamily: 'Lato', + fontSize: 22, + fontWeight: FontWeight.bold),), + const SizedBox(height: 10,), + SizedBox( + width: Get.width * 0.80, + child: const Text( + 'We added lots of new features and fix some bugs to make your experience as smooth as possible', + style: TextStyle( + fontFamily: "Lato", + fontSize: 16, + fontWeight: FontWeight.normal,), + textAlign: TextAlign.center, + ), + ), + ], + ) + ], + ), + bottomNavigationBar: SizedBox( + height: Get.height * 0.10, + child: btnDownload(), + ), + ), + ); + } + + Widget nearleLogoImg() { + return Hero( + tag: 'hero', + child: Image.asset( + AssetConstants.nearleDarkLogo, + height: 200, + width: 250, + ), + ); + } + + Widget textContents() { + return Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + children: [ + Center( + child: TextWidget( + text: 'You are using an older version of Nearle Deals Business Application.', + fontSize: 20, + maxLines: 2, + textAlign: TextAlign.center, + ) + ), + const SizedBox(height: 20,), + Center( + child: + TextWidget( + text: 'Available version', + fontSize: 20, + ) + ), + const SizedBox(height: 9,), + Center( + child: TextWidget( + text: mUpdateVersion, + textAlign: TextAlign.center, + fontSize: 18, + fontWeight: FontWeight.bold, + ) + ) + ], + ), + ); + } + + Widget btnDownload() { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 12.0), + child: Container(margin: const EdgeInsets.only(left: 20, right: 20), + child: Row(mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: ElevatedButton( + style: ButtonStyle( + backgroundColor: WidgetStateProperty.all( + ColorConstants.primaryColor), + foregroundColor: WidgetStateProperty.all(Colors.white), + shape: WidgetStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + 5), // Adjust radius + ), + ), + ), + onPressed: () { + downloadActions(); + }, + child: TextWidget( + text: 'Update', + fontSize: 16, + color: ColorConstants.secondaryColor, + ) + )) + ], + ),), + ); + } + + skipAction() { + Get.back(); + } + + void downloadActions() async { + String url; + var s = Platform.isAndroid ? "Android" : "Ios"; + if (s == "Android") { + // appInfo = await Utility.getApplicationInfo(); + + url = 'https://play.google.com/store/apps/details?id=com.nearle.bond'; + } else { + url = 'https://apps.apple.com/us/app/gear/id1596895375ls=1'; + } + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not launch App'; + } + } +} diff --git a/lib/View/ex.dart b/lib/View/ex.dart new file mode 100644 index 0000000..179204e --- /dev/null +++ b/lib/View/ex.dart @@ -0,0 +1,26 @@ +// distance_service.dart +import 'dart:convert'; +import 'package:http/http.dart' as http; + + + + +class DistanceService { + Future getDistance(double pickupLat, double pickupLong, double dropLat, double dropLong) async { + final apiKey = 'AIzaSyDQ2c_pOSOFYSjxGMwkFvCVWKjYOM9siow'; + final url = + 'https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=$pickupLat,$pickupLong&destinations=$dropLat,$dropLong&key=$apiKey'; + + final response = await http.get(Uri.parse(url)); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + final distanceText = data['rows'][0]['elements'][0]['distance']['text']; + final distanceValue = data['rows'][0]['elements'][0]['distance']['value'] / 1000; // Convert meters to kilometers + print('Distance: $distanceText'); + return distanceValue; + } else { + throw Exception('Failed to load distance'); + } + } +} diff --git a/lib/View/ex1.dart b/lib/View/ex1.dart new file mode 100644 index 0000000..8a5f08c --- /dev/null +++ b/lib/View/ex1.dart @@ -0,0 +1,66 @@ +// distance_controller.dart +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import 'ex.dart'; + +class DistanceController extends GetxController { + final DistanceService _distanceService = DistanceService(); + RxDouble distance = 0.0.obs; + + void calculateDistance(double pickupLat, double pickupLong, double dropLat, double dropLong) async { + try { + final distanceValue = await _distanceService.getDistance(pickupLat, pickupLong, dropLat, dropLong); + distance(distanceValue); + } catch (e) { + print(e); + } + } +} + + +class MyDistanceCalculate extends StatelessWidget { + final DistanceController distanceController = Get.put(DistanceController()); + + final lat1 = 11.0043693; + final lon1 = 77.00916169999999; + + final lat2 = 11.0195965; + final lon2 = 76.9727256; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Distance Calculator'), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ElevatedButton( + onPressed: () { + final pickupLat = double.tryParse(lat1.toString()); + final pickupLong = double.tryParse(lon1.toString()); + final dropLat = double.tryParse(lat2.toString()); + final dropLong = double.tryParse(lon2.toString()); + if (pickupLat != null && pickupLong != null && dropLat != null && dropLong != null) { + distanceController.calculateDistance(pickupLat, pickupLong, dropLat, dropLong); + } else { + // Handle invalid input + print('Invalid input'); + } + }, + child: Text('Calculate Distance'), + ), + Obx(() => Text('Distance: ${distanceController.distance.toStringAsFixed(2)} kms')), + ], + ), + ), + + + + + ); + } +} \ No newline at end of file diff --git a/lib/View/test.dart b/lib/View/test.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/maindev.dart b/lib/maindev.dart new file mode 100644 index 0000000..48bcb95 --- /dev/null +++ b/lib/maindev.dart @@ -0,0 +1,245 @@ + +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:http/http.dart' as http; //for making request +import 'package:get/get.dart'; +import 'dart:async'; //for asynchronous features +import 'package:shared_preferences/shared_preferences.dart'; +import 'dart:convert'; + +import 'Helper/Constants/Apiconstants.dart'; +import 'View/Home/Homeview.dart'; + + +const AndroidNotificationChannel channel = AndroidNotificationChannel( + 'Nearlexpress Business', // id + 'Nearlexpress Business Notifications', // title + importance: Importance.high, + playSound: true); + bool? canUpadteNew; + +final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = +FlutterLocalNotificationsPlugin(); + + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + + await Firebase.initializeApp(); + // FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); + + // SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(statusBarColor: Colors.white,)); + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + ]); + ApiConstants.describeUrl = ApiConstants.describeUrlDev; + ApiConstants.login = ApiConstants.loginDev; + ApiConstants.configUrl = ApiConstants.configUrlDev; + ApiConstants.user = ApiConstants.userDev; + ApiConstants.getCustomerByTenantId = ApiConstants.getCustomerByTenantIdDev; + ApiConstants.getDeliveries = ApiConstants.getDeliveriesDev; + ApiConstants.notifyUrl = ApiConstants.notifyUrlDev; + ApiConstants.updateOrderStatus = ApiConstants.updateOrderStatusDev; + ApiConstants.getOrderSummary = ApiConstants.getOrderSummaryDev; + ApiConstants.getTenantInfo = ApiConstants.getTenantInfoDev; + ApiConstants.appLocations = ApiConstants.appLocationsDev; + ApiConstants.getPartnerInfo = ApiConstants.getPartnerInfoDev; + ApiConstants.appCategory = ApiConstants.appCategoryDev; + ApiConstants.createTenantUser = ApiConstants.createTenantUserDev; + ApiConstants.createCustomer = ApiConstants.createCustomerDev; + ApiConstants.createDeliveryAddress = ApiConstants.createDeliveryAddressDev; + ApiConstants.getCustomerAddress = ApiConstants.getCustomerAddressDev; + ApiConstants.getTenantLocationById = ApiConstants.getTenantLocationByIdDev; + ApiConstants.getLocationsById = ApiConstants.getLocationsByIdDev; + ApiConstants.adminToken = ApiConstants.adminTokenDev; + ApiConstants.getTenantPricing = ApiConstants.getTenantPricingDev; + ApiConstants.createOrder = ApiConstants.createOrderDev; + ApiConstants.getOrders = ApiConstants.getOrdersDev; + ApiConstants.getLocationById = ApiConstants.getLocationByIdDev; + ApiConstants.updateLocation = ApiConstants.updateLocationDev; + ApiConstants.createLocation = ApiConstants.createLocationDev; + ApiConstants.getStaffs = ApiConstants.getStaffsDev; + ApiConstants.createStaff = ApiConstants.createStaffDev; + ApiConstants.updateStaff = ApiConstants.updateStaffDev; + ApiConstants.userUpdate = ApiConstants.userUpdateDev; + ApiConstants.getCustomerSearchByTenantId = ApiConstants.getCustomerSearchByTenantIdDev; + ApiConstants.createDelivery = ApiConstants.createDeliveryLive; + + runApp(MyApp()); +} + + + +// Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { + +// print("Handling a background message: ${message.messageId}"); +// } +class MyApp extends StatelessWidget { + static final GlobalKey mNavigationState = + GlobalKey(); + + @override + Widget build(BuildContext context) { + return GetMaterialApp( + title: 'Nearlexpress Business', + debugShowCheckedModeBanner: false, + color: Colors.white, + navigatorKey: mNavigationState, + + theme: ThemeData( + // scaffoldBackgroundColor: Colors.white, + // accentColor: primaryColor, + fontFamily: 'Lato', + primarySwatch: Colors.blue, + visualDensity: VisualDensity.adaptivePlatformDensity, + ), + home: + // Container() + MyHomePageOne()); + } +} + +class MyHomePageOne extends StatefulWidget { + const MyHomePageOne({Key? key}) : super(key: key); + + @override + MyHomePageOneState createState() => MyHomePageOneState(); +} + +class MyHomePageOneState extends State { + // FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance; + String notificationOrderId = ''; + // RemoteMessage? messageNotification; + late StreamSubscription internetSubscription; + // final status = AppVersionChecker(); + + @override + void initState() { + getLocal(); + // fcmToken(); + checkToken(); + print('LocalNotificationService before'); + // LocalNotificationService.initialize(context); + print('LocalNotificationService after'); + super.initState(); + //checkVersion(); + + // firebaseMethod(); + + } + // checkVersion() async { + // status.checkUpdate().then((value) { + // print(value.canUpdate); //return true if update is available + // print(value.currentVersion); //return current app version + // print(value.newVersion); //return the new app version + // print(value.appURL); //return the app url + // print(value.errorMessage); + // List? versionParts = value.currentVersion.split('.'); + // int majorVersion = int.parse(versionParts[0]); + // int minorVersion = int.parse(versionParts[1]); + // print('majorVersionappversion $majorVersion'); + // print('minorVersionappversion $minorVersion'); + // if(value.canUpdate){ + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (BuildContext context) => UpdateAppPage(mCurrentVersion: value.currentVersion.toString(),mUpdateVersion: value.newVersion.toString(), minorVersion: minorVersion, majorVersion: majorVersion,))); + // }//return error message if found else it will return null + // }); + // } + // + // fcmToken() async { + // + // SharedPreferences prefs = await SharedPreferences.getInstance(); + // // firebaseMessaging.getToken().then((token) { + // print("firebase token======$token"); + // + // prefs.setString('fcmToken', token!); + // + // }); + // } + + @override + void dispose() { + internetSubscription.cancel(); + super.dispose(); + } + + bool hasInterNetConnection = false; + + + String? country; + String? country2; + + getLocal() async { + var url = Uri.http('ip-api.com', 'json'); + try { + http.get(url).then((value) async { + print('country Code'); + print(json.decode(value.body)['countryCode'].toString()); + print('City'); + print(json.decode(value.body)['city'].toString()); + country = json.decode(value.body)['countryCode'].toString(); + print("fcountry$country"); + SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.clear(); + prefs.setString('location_Country', country!); + prefs.setString('MainCity', json.decode(value.body)['city'].toString()); + prefs.setString('location_CountryCode', country!); + + country2 = prefs.getString('location_Country'); + + }); + } catch (err) { + //handleError + print('erroe in getLocal'); + } + } + + bool noConnection = false; + // FirebaseMessaging firebaseMessaging = FirebaseMessaging(); + String? token; + String? tenantEmail; + String? tenantContact; + int? moduleId; + int? tenantId; + List moduleResult = []; + List locationResult = []; + + checkToken() async { + SharedPreferences prefs = await SharedPreferences.getInstance(); + + setState(() { + token = prefs.getString('token')!; + moduleId = prefs.getInt('moduleId')!; + tenantId = prefs.getInt('tenantId')!; + tenantEmail = prefs.getString('tenantEmail')??''; + tenantContact = prefs.getString('tenantContact'); + + if (token != null && tenantId != 0) { + + final listq = json.decode(prefs.getString('mylocation')!); + locationResult.addAll(listq); + prefs.setInt('locationId', locationResult[0]['locationid']); + prefs.setString('locationName', locationResult[0]['locationname']); + + } + + // moduleResult = json.decode(prefs.getString('mymodules')); + }); + print(tenantId); + } + + @override + Widget build(BuildContext context) { + + return HomeView( + selectedIndex: 0, + ); + } +} + + diff --git a/lib/mainlive.dart b/lib/mainlive.dart new file mode 100644 index 0000000..161acf4 --- /dev/null +++ b/lib/mainlive.dart @@ -0,0 +1,426 @@ + +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:get/get.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:package_info_plus/package_info_plus.dart'; +import 'package:new_version_plus/new_version_plus.dart'; +import 'package:http/http.dart' as http; + +import 'Controller/Internetcheck/check_internet.dart'; +import 'Globalwidgets/Localnotificationservice.dart'; +import 'Globalwidgets/binding.dart'; +import 'Helper/Constants/Apiconstants.dart'; +import 'Helper/Constants/Colorconstants.dart'; +import 'Helper/Constants/api_config.dart'; +import 'Helper/Logger.dart'; +import 'Helper/Locationservice/app_config_service.dart'; +import 'View/Home/Homeview.dart'; +import 'View/Introscreen/Introscreenview.dart'; +import 'View/Update/Updateview.dart'; + +/// --------------------------------------------------------------------------- +/// 1. GLOBAL NOTIFICATION OBJECTS +/// --------------------------------------------------------------------------- +final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = +FlutterLocalNotificationsPlugin(); + +final AndroidNotificationChannel channel = AndroidNotificationChannel( + 'Nearlexpress Business', // id + 'Nearlexpress Business Notifications', // name + description: 'Nearlexpress Business', + importance: Importance.high, + sound: const RawResourceAndroidNotificationSound('ring'), // raw/ring.mp3 + enableLights: true, + enableVibration: true, + playSound: true, + showBadge: true, + vibrationPattern: Int64List.fromList(const [500, 1000, 500]), +); + +/// --------------------------------------------------------------------------- +/// 2. BACKGROUND MESSAGE HANDLER (must be top-level) +/// --------------------------------------------------------------------------- +@pragma('vm:entry-point') +Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { + await Firebase.initializeApp(); + + // Initialize local notifications in background isolate + const AndroidInitializationSettings initializationSettingsAndroid = + AndroidInitializationSettings('@mipmap/ic_launcher'); + + const DarwinInitializationSettings initializationSettingsIOS = + DarwinInitializationSettings(); + + const InitializationSettings initializationSettings = InitializationSettings( + android: initializationSettingsAndroid, + iOS: initializationSettingsIOS, + ); + + await flutterLocalNotificationsPlugin.initialize(initializationSettings); + + // Create notification channel + final AndroidNotificationChannel channel = AndroidNotificationChannel( + 'Nearlexpress Business', + 'Nearlexpress Business Notifications', + description: 'Nearlexpress Business', + importance: Importance.high, + sound: const RawResourceAndroidNotificationSound('ring'), + playSound: true, + enableVibration: true, + vibrationPattern: Int64List.fromList(const [500, 1000, 500]), + ); + + final androidPlugin = flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation(); + await androidPlugin?.createNotificationChannel(channel); + + // === LOAD LOGO FROM ASSETS IN BACKGROUND === + final ByteData logoData = await rootBundle.load('assets/images/nearlebusiness.png'); + final Uint8List logoBytes = logoData.buffer.asUint8List(); + + // Show notification if it has title/body + if (message.notification != null) { + await flutterLocalNotificationsPlugin.show( + message.hashCode, + message.notification!.title, + message.notification!.body, + NotificationDetails( + android: AndroidNotificationDetails( + channel.id, + channel.name, + channelDescription: channel.description, + importance: Importance.high, + priority: Priority.high, + icon: '@mipmap/ic_launcher', + sound: const RawResourceAndroidNotificationSound('ring'), + enableVibration: true, + vibrationPattern: Int64List.fromList([500, 1000, 500]), + playSound: true, + color: const Color(0xFF662582), + largeIcon: ByteArrayAndroidBitmap(logoBytes), // LOGO ON RIGHT + styleInformation: BigPictureStyleInformation( + ByteArrayAndroidBitmap(logoBytes), + largeIcon: ByteArrayAndroidBitmap(logoBytes), + contentTitle: message.notification!.title, + htmlFormatContentTitle: true, + ), + ), + iOS: const DarwinNotificationDetails( + sound: 'ring.wav', + ), + ), + payload: jsonEncode(message.data.isNotEmpty ? message.data : { + "type": message.notification?.android?.tag ?? "" + }), + ); + } +} + +/// --------------------------------------------------------------------------- +/// 3. LOCAL NOTIFICATION HELPER (foreground + background) +/// --------------------------------------------------------------------------- +Future _showLocalNotification(RemoteMessage message) async { + final notification = message.notification; + if (notification == null) return; + + // === LOAD LOGO FROM ASSETS === + final ByteData logoData = await rootBundle.load('assets/images/nearle_logo.jpeg'); + final Uint8List logoBytes = logoData.buffer.asUint8List(); + + final AndroidNotificationDetails androidDetails = AndroidNotificationDetails( + channel.id, + channel.name, + channelDescription: channel.description, + importance: channel.importance, + priority: Priority.high, + sound: channel.sound, + enableVibration: channel.enableVibration, + vibrationPattern: channel.vibrationPattern, + playSound: channel.playSound, + enableLights: channel.enableLights, + icon: '@mipmap/ic_launcher', + color: const Color(0xFF662582), + largeIcon: ByteArrayAndroidBitmap(logoBytes), // LOGO ON RIGHT + styleInformation: BigPictureStyleInformation( + ByteArrayAndroidBitmap(logoBytes), + largeIcon: ByteArrayAndroidBitmap(logoBytes), + contentTitle: notification.title, + summaryText: notification.body, + htmlFormatContentTitle: true, + htmlFormatSummaryText: true, + ), + ); + + const DarwinNotificationDetails iOSDetails = DarwinNotificationDetails( + sound: 'ring.mp3', + presentAlert: true, + presentBadge: true, + presentSound: true, + ); + + final NotificationDetails platformDetails = + NotificationDetails(android: androidDetails, iOS: iOSDetails); + + await flutterLocalNotificationsPlugin.show( + notification.hashCode, + notification.title, + notification.body, + platformDetails, + payload: jsonEncode(message.data.isNotEmpty ? message.data : { + "type": message.notification?.android?.tag ?? "" + }), + ); +} + +/// --------------------------------------------------------------------------- +/// 4. NOTIFICATION TAP HANDLER +/// --------------------------------------------------------------------------- +void _handleNotificationTap(Map data) { + final type = data['type']?.toString(); + print('Notification tapped – type: $type'); + + if (type == 'tojoin') { + Get.toNamed('/join'); + } +} + +/// --------------------------------------------------------------------------- +/// 5. HTTP OVERRIDE (dev only – remove in production) +/// --------------------------------------------------------------------------- +class MyHttpOverrides extends HttpOverrides { + @override + HttpClient createHttpClient(SecurityContext? context) { + return super.createHttpClient(context) + ..badCertificateCallback = (cert, host, port) => true; + } +} + +/// --------------------------------------------------------------------------- +/// 6. MAIN +/// --------------------------------------------------------------------------- +Future main() async { + WidgetsFlutterBinding.ensureInitialized(); + + + SystemChrome.setSystemUIOverlayStyle( + const SystemUiOverlayStyle( + statusBarColor: Colors.transparent, // or your color + statusBarIconBrightness: Brightness.dark, // Android icons + statusBarBrightness: Brightness.light, // iOS icons + ), + ); + + + // Allow self-signed certs (dev only) + HttpOverrides.global = MyHttpOverrides(); + + await Firebase.initializeApp(); + + // ---------- LOCAL NOTIFICATIONS INITIALISATION ---------- + const AndroidInitializationSettings androidInit = + AndroidInitializationSettings('@mipmap/ic_launcher'); + + const DarwinInitializationSettings iOSInit = DarwinInitializationSettings( + requestAlertPermission: true, + requestBadgePermission: true, + requestSoundPermission: true, + ); + + const InitializationSettings initSettings = + InitializationSettings(android: androidInit, iOS: iOSInit); + + await flutterLocalNotificationsPlugin.initialize( + initSettings, + ); + + // Create Android channel (mandatory for Android 8+) + final androidPlugin = flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin>(); + await androidPlugin?.createNotificationChannel(channel); + + // ---------- FCM ---------- + FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); + + await FirebaseMessaging.instance + .setForegroundNotificationPresentationOptions( + alert: true, + badge: true, + sound: true, + ); + + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + ]); + + ApiConfig.setLive(); // 👈 clean call + // Dependency injection + Get.put(ConnectivityController()); + + runApp(const MyApp()); +} + +/// --------------------------------------------------------------------------- +/// 7. APP WIDGET +/// --------------------------------------------------------------------------- +class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return GetMaterialApp( + title: 'Nearlexpress Business', + debugShowCheckedModeBanner: false, + initialBinding: GlobalBinding(), + navigatorKey: MyHomePageOne.mNavigationState, + theme: ThemeData( + primaryColor: ColorConstants.primaryColor, + useMaterial3: false, + scaffoldBackgroundColor: Colors.grey.shade200, + appBarTheme: AppBarTheme( + iconTheme: + IconThemeData(color: ColorConstants.secondaryColor), + color: ColorConstants.secondaryColor, + elevation: 0, + titleTextStyle: TextStyle( + color: ColorConstants.secondaryColor, + fontSize: 18, + ), + ), + fontFamily: 'Lato', + visualDensity: VisualDensity.adaptivePlatformDensity, + ), + home: const SafeArea(top: false, child: MyHomePageOne()), + ); + } +} + +/// --------------------------------------------------------------------------- +/// 8. HOME PAGE (FCM + UI logic) +/// --------------------------------------------------------------------------- +class MyHomePageOne extends StatefulWidget { + static final GlobalKey mNavigationState = + GlobalKey(); + const MyHomePageOne({Key? key}) : super(key: key); + + @override + State createState() => _MyHomePageOneState(); +} + +class _MyHomePageOneState extends State { + final AppConfigurationService _appConfig = AppConfigurationService(); + + String? _tenantFcmToken; + String? _tenantContact; + int? _moduleId; + int? _tenantId; + + @override + void initState() { + super.initState(); + _initApp(); + } + + Future _initApp() async { + await _loadPrefs(); + await _setupFCM(); + await _getAppVersion(); + _checkForUpdate(context); + _fetchLocation(); + _appConfig.getAppConfig("${ApiConstants.configUrl}?configid=1"); + LocalNotificationService.initialize(context); + } + + Future _loadPrefs() async { + final prefs = await SharedPreferences.getInstance(); + setState(() { + _tenantFcmToken = prefs.getString('tenantFcmToken'); + _tenantContact = prefs.getString('tenantContactNo'); + _moduleId = prefs.getInt('moduleId'); + _tenantId = prefs.getInt('tenantId'); + }); + } + + Future _setupFCM() async { + final settings = await FirebaseMessaging.instance.requestPermission( + alert: true, + badge: true, + sound: true, + ); + print('FCM permission: ${settings.authorizationStatus}'); + + final token = await FirebaseMessaging.instance.getToken(); + print('=== FCM TOKEN ===\n$token\n================='); + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('fcmToken', token!); + + FirebaseMessaging.onMessage.listen((RemoteMessage msg) async { + print('FOREGROUND: ${msg.notification?.title}'); + await _showLocalNotification(msg); + }); + + FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage msg) { + print('OPENED FROM NOTIFICATION'); + _handleNotificationTap(msg.data); + }); + } + + String currentVersion = ''; + Future _getAppVersion() async { + final packageInfo = await PackageInfo.fromPlatform(); + currentVersion = packageInfo.version; + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('CurrentVersion', currentVersion); + logger.i('Current version: $currentVersion'); + } + + Future _checkForUpdate(BuildContext context) async { + final newVersion = NewVersionPlus( + iOSId: '284882215', + androidId: "com.nearle.bond", + ); + final status = await newVersion.getVersionStatus(); + if (status != null && status.canUpdate) { + Get.to(() => UpdateAppPage( + mCurrentVersion: status.localVersion, + mUpdateVersion: status.storeVersion, + )); + } + } + + Future _fetchLocation() async { + final url = Uri.http('ip-api.com', '/json'); + try { + final response = await http.get(url); + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + final country = data['countryCode'].toString(); + final city = data['city'].toString(); + + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('location_Country', country); + await prefs.setString('MainCity', city); + await prefs.setString('location_CountryCode', country); + } + } catch (e) { + print('Location error: $e'); + } + } + + @override + Widget build(BuildContext context) { + return (_tenantFcmToken == null && _tenantContact == null) + ? IntroScreenView() + : HomeView(selectedIndex: 0); + } +} + diff --git a/lib/widgets/product_bottom_sheet.dart b/lib/widgets/product_bottom_sheet.dart new file mode 100644 index 0000000..9d6a417 --- /dev/null +++ b/lib/widgets/product_bottom_sheet.dart @@ -0,0 +1,330 @@ +import 'package:flutter/material.dart'; +import 'package:shimmer/shimmer.dart'; + +import '../Model/Response/products/product_info.dart'; + + + +class ProductBottomSheet { + static void show(BuildContext context, List productDetails, {bool? isAmountReceived}) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + builder: (context) { + double totalAmount = 0; + double totalTax = 0; + double sub = 0; + double totalDiscount = 0; // ⭐ ADD THIS + double otherCharges = 0; // ⭐ ADD THIS + + for (var product in productDetails) { + totalAmount = product.productsumprice ?? 0.0; + sub = (product.price ?? 0.0) * (product.orderqty ?? 1); + totalTax = product.totaltaxamount ?? 0.0; + totalDiscount = product.discountamount ?? 0.0; + otherCharges = product.othercharges ?? 0.0; + + } + + final totalWithTax = totalAmount + totalTax; + + + // Calculate dynamic height + const itemHeight = 112.0; + final maxContentHeight = MediaQuery.of(context).size.height * 0.7; + final calculatedHeight = (productDetails.length * itemHeight) + 200; + + return SafeArea( + child: Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + child: ConstrainedBox( + constraints: BoxConstraints( + maxHeight: calculatedHeight > maxContentHeight ? maxContentHeight : calculatedHeight, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Grab handle + Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(top: 12, bottom: 10), + decoration: BoxDecoration( + color: Colors.grey[400], + borderRadius: BorderRadius.circular(8), + ), + ), + + // Title row + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Row( + children: [ + const Expanded( + child: Text( + 'Product Details', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ), + IconButton( + icon: const Icon(Icons.cancel), + onPressed: () => Navigator.of(context).pop(), + ), + ], + ), + ), + + const SizedBox(height: 4), + + // Product List + if (productDetails.isEmpty) + const Padding( + padding: EdgeInsets.all(20), + child: Center( + child: Text( + "Looks like this order doesn't have any products.", + style: TextStyle(fontSize: 16, color: Colors.grey, fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), + ), + ) + else + Flexible( + child: ListView.builder( + padding: const EdgeInsets.symmetric(horizontal: 16), + shrinkWrap: true, + itemCount: productDetails.length, + itemBuilder: (context, index) { + final product = productDetails[index]; + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + product.productimage ?? '', + width: 80, + height: 80, + fit: BoxFit.cover, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return Shimmer.fromColors( + baseColor: Colors.grey[300]!, + highlightColor: Colors.grey[100]!, + child: Container( + width: 80, + height: 80, + color: Colors.white, + ), + ); + }, + errorBuilder: (context, error, stackTrace) => Container( + width: 80, + height: 80, + color: Colors.grey[200], + child: const Icon(Icons.image, color: Colors.grey), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Expanded( + child: Text( + product.productname ?? '', + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + ), + const SizedBox(width: 8), + Text( + "₹${((product.price ?? 0) * (product.orderqty ?? 1) + (product.taxamount ?? 0)).toStringAsFixed(2)}", + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + ], + ), + const SizedBox(height: 4), + Text( + "${product.orderqty} ${product.unitname}", + style: const TextStyle(color: Colors.grey), + ), + const SizedBox(height: 4), + // Text( + // "Tax: ₹${product.taxamount?.toStringAsFixed(2) ?? '0.00'}", + // style: const TextStyle(color: Colors.grey), + // ), + ], + ), + ), + ], + ), + ); + }, + ), + ), + + // Bottom Summary + Visibility( + visible: productDetails.isNotEmpty, + child: Container( + width: double.infinity, + padding: const EdgeInsets.all(16), + decoration: const BoxDecoration( + border: Border(top: BorderSide(color: Colors.grey, width: 0.3)), + color: Colors.white, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Amount", style: TextStyle(fontSize: 16)), + Text("₹${totalAmount.toStringAsFixed(2)}"), + ], + ), + const SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Tax", style: TextStyle(fontSize: 16)), + Text("₹${totalTax.toStringAsFixed(2)}"), + ], + ), + const SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("OtherCharges", style: TextStyle(fontSize: 16)), + Text("₹${otherCharges.toStringAsFixed(2)}"), + ], + ), + const SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Discount", style: TextStyle(fontSize: 16)), + Text("₹${totalDiscount.toStringAsFixed(2)}"), + ], + ), + const SizedBox(height: 5), + const DottedLine2(), + const SizedBox(height: 5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Total", style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + Text("₹${totalWithTax.toStringAsFixed(2)}", style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ], + ), + const SizedBox(height: 10), + Visibility( + visible: isAmountReceived ?? false, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Row( + children: [ + Icon(Icons.check_circle, color: Colors.green,), + SizedBox(width: 4,), + Text("Amount Received", style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500)), + ], + ), + Text("₹${totalWithTax.toStringAsFixed(2)}", style: const TextStyle(fontSize: 16)), + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + + +class DottedLine extends StatelessWidget { + final double height; + final double dotSize; + final Color color; + + const DottedLine({ + super.key, + this.height = 40, + this.dotSize = 4, + this.color = Colors.grey, + }); + + @override + Widget build(BuildContext context) { + int count = (height / (dotSize * 2)).floor(); + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(count, (index) { + return Container( + width: 1.5, + height: dotSize, + margin: EdgeInsets.symmetric(vertical: dotSize / 2), + color: color, + ); + }), + ); + } +} + + +class DottedLine2 extends StatelessWidget { + final double width; + final double dotSize; + final Color color; + + const DottedLine2({ + super.key, + this.width = double.infinity, + this.dotSize = 4, + this.color = Colors.grey, + }); + + @override + Widget build(BuildContext context) { + // If width is infinite, get screen width + final screenWidth = MediaQuery.of(context).size.width; + final actualWidth = width == double.infinity ? screenWidth : width; + + int count = (actualWidth / (dotSize * 2)).floor(); + + return SizedBox( + width: actualWidth, + height: dotSize, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: List.generate(count, (_) { + return Container( + width: dotSize, + height: 1, + color: color, + ); + }), + ), + ); + } +} \ No newline at end of file diff --git a/lib/widgets/ui/bottom_sheets.dart b/lib/widgets/ui/bottom_sheets.dart new file mode 100644 index 0000000..3103f6e --- /dev/null +++ b/lib/widgets/ui/bottom_sheets.dart @@ -0,0 +1,74 @@ +import 'package:flutter/material.dart'; + +class AppBottomSheets { + static void showConfirmation( + BuildContext context, { + required VoidCallback onAccept, + VoidCallback? onCancel, + String title = "Confirmation", + String message = "Are you sure you want to continue?", + }) { + showModalBottomSheet( + context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + backgroundColor: Colors.white, + builder: (context) { + return Padding( + padding: const EdgeInsets.fromLTRB(20, 20, 20, 30), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + + /// 🔹 Title + Text( + title, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ), + + const SizedBox(height: 12), + + /// 🔹 Message + Text( + message, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 15, color: Colors.grey[700]), + ), + + const SizedBox(height: 24), + + /// 🔹 Buttons + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: () { + Navigator.pop(context); + Future.microtask(() => onCancel?.call()); + }, + child: const Text('Cancel'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: ElevatedButton( + onPressed: () { + Navigator.pop(context); + Future.microtask(() => onAccept()); + }, + child: const Text('Accept'), + ), + ), + ], + ), + ], + ), + ); + }, + ); + } +} \ No newline at end of file diff --git a/lib/widgets/ui/dialogs.dart b/lib/widgets/ui/dialogs.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/widgets/ui/snackbars.dart b/lib/widgets/ui/snackbars.dart new file mode 100644 index 0000000..e69de29 diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100755 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..eec3cc3 --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,128 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "businessv1") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.businessv1") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100755 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..162b638 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,27 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) rive_native_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "RiveNativePlugin"); + rive_native_plugin_register_with_registrar(rive_native_registrar); + g_autoptr(FlPluginRegistrar) smart_auth_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "SmartAuthPlugin"); + smart_auth_plugin_register_with_registrar(smart_auth_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..553c497 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,27 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux + rive_native + smart_auth + url_launcher_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/linux/runner/CMakeLists.txt b/linux/runner/CMakeLists.txt new file mode 100755 index 0000000..e97dabc --- /dev/null +++ b/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/linux/runner/main.cc b/linux/runner/main.cc new file mode 100755 index 0000000..e7c5c54 --- /dev/null +++ b/linux/runner/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/runner/my_application.cc b/linux/runner/my_application.cc new file mode 100644 index 0000000..b1677d6 --- /dev/null +++ b/linux/runner/my_application.cc @@ -0,0 +1,130 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "businessv1"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "businessv1"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/runner/my_application.h b/linux/runner/my_application.h new file mode 100755 index 0000000..72271d5 --- /dev/null +++ b/linux/runner/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100755 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100755 index 0000000..4b81f9b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100755 index 0000000..5caa9d1 --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..24ea71b --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,42 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import connectivity_plus +import file_selector_macos +import firebase_auth +import firebase_core +import firebase_messaging +import flutter_local_notifications +import geolocator_apple +import location +import package_info_plus +import path_provider_foundation +import rive_native +import shared_preferences_foundation +import smart_auth +import sqflite_darwin +import url_launcher_macos +import webview_flutter_wkwebview + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) + FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) + GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) + LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin")) + FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + RiveNativePlugin.register(with: registry.registrar(forPlugin: "RiveNativePlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + SmartAuthPlugin.register(with: registry.registrar(forPlugin: "SmartAuthPlugin")) + SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + WebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "WebViewFlutterPlugin")) +} diff --git a/macos/Podfile b/macos/Podfile new file mode 100755 index 0000000..ff5ddb3 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.15' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..aeddd7a --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,230 @@ +PODS: + - connectivity_plus (0.0.1): + - FlutterMacOS + - file_selector_macos (0.0.1): + - FlutterMacOS + - Firebase/Auth (11.15.0): + - Firebase/CoreOnly + - FirebaseAuth (~> 11.15.0) + - Firebase/CoreOnly (11.15.0): + - FirebaseCore (~> 11.15.0) + - Firebase/Messaging (11.15.0): + - Firebase/CoreOnly + - FirebaseMessaging (~> 11.15.0) + - firebase_auth (5.7.0): + - Firebase/Auth (~> 11.15.0) + - Firebase/CoreOnly (~> 11.15.0) + - firebase_core + - FlutterMacOS + - firebase_core (3.15.2): + - Firebase/CoreOnly (~> 11.15.0) + - FlutterMacOS + - firebase_messaging (15.2.10): + - Firebase/CoreOnly (~> 11.15.0) + - Firebase/Messaging (~> 11.15.0) + - firebase_core + - FlutterMacOS + - FirebaseAppCheckInterop (11.15.0) + - FirebaseAuth (11.15.0): + - FirebaseAppCheckInterop (~> 11.0) + - FirebaseAuthInterop (~> 11.0) + - FirebaseCore (~> 11.15.0) + - FirebaseCoreExtension (~> 11.15.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GTMSessionFetcher/Core (< 5.0, >= 3.4) + - RecaptchaInterop (~> 101.0) + - FirebaseAuthInterop (11.15.0) + - FirebaseCore (11.15.0): + - FirebaseCoreInternal (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Logger (~> 8.1) + - FirebaseCoreExtension (11.15.0): + - FirebaseCore (~> 11.15.0) + - FirebaseCoreInternal (11.15.0): + - "GoogleUtilities/NSData+zlib (~> 8.1)" + - FirebaseInstallations (11.15.0): + - FirebaseCore (~> 11.15.0) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) + - PromisesObjC (~> 2.4) + - FirebaseMessaging (11.15.0): + - FirebaseCore (~> 11.15.0) + - FirebaseInstallations (~> 11.0) + - GoogleDataTransport (~> 10.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.1) + - GoogleUtilities/Environment (~> 8.1) + - GoogleUtilities/Reachability (~> 8.1) + - GoogleUtilities/UserDefaults (~> 8.1) + - nanopb (~> 3.30910.0) + - flutter_local_notifications (0.0.1): + - FlutterMacOS + - FlutterMacOS (1.0.0) + - geolocator_apple (1.2.0): + - Flutter + - FlutterMacOS + - GoogleDataTransport (10.1.0): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleUtilities/AppDelegateSwizzler (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (8.1.0): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.1.0): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Network (8.1.0): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (8.1.0)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/Reachability (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (8.1.0): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMSessionFetcher/Core (4.5.0) + - location (0.0.1): + - FlutterMacOS + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) + - package_info_plus (0.0.1): + - FlutterMacOS + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - PromisesObjC (2.4.0) + - rive_native (0.0.1): + - FlutterMacOS + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - smart_auth (0.0.1): + - FlutterMacOS + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - url_launcher_macos (0.0.1): + - FlutterMacOS + - webview_flutter_wkwebview (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`) + - file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`) + - firebase_auth (from `Flutter/ephemeral/.symlinks/plugins/firebase_auth/macos`) + - firebase_core (from `Flutter/ephemeral/.symlinks/plugins/firebase_core/macos`) + - firebase_messaging (from `Flutter/ephemeral/.symlinks/plugins/firebase_messaging/macos`) + - flutter_local_notifications (from `Flutter/ephemeral/.symlinks/plugins/flutter_local_notifications/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + - geolocator_apple (from `Flutter/ephemeral/.symlinks/plugins/geolocator_apple/darwin`) + - location (from `Flutter/ephemeral/.symlinks/plugins/location/macos`) + - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) + - rive_native (from `Flutter/ephemeral/.symlinks/plugins/rive_native/macos`) + - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) + - smart_auth (from `Flutter/ephemeral/.symlinks/plugins/smart_auth/macos`) + - sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) + - webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`) + +SPEC REPOS: + trunk: + - Firebase + - FirebaseAppCheckInterop + - FirebaseAuth + - FirebaseAuthInterop + - FirebaseCore + - FirebaseCoreExtension + - FirebaseCoreInternal + - FirebaseInstallations + - FirebaseMessaging + - GoogleDataTransport + - GoogleUtilities + - GTMSessionFetcher + - nanopb + - PromisesObjC + +EXTERNAL SOURCES: + connectivity_plus: + :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos + file_selector_macos: + :path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos + firebase_auth: + :path: Flutter/ephemeral/.symlinks/plugins/firebase_auth/macos + firebase_core: + :path: Flutter/ephemeral/.symlinks/plugins/firebase_core/macos + firebase_messaging: + :path: Flutter/ephemeral/.symlinks/plugins/firebase_messaging/macos + flutter_local_notifications: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_local_notifications/macos + FlutterMacOS: + :path: Flutter/ephemeral + geolocator_apple: + :path: Flutter/ephemeral/.symlinks/plugins/geolocator_apple/darwin + location: + :path: Flutter/ephemeral/.symlinks/plugins/location/macos + package_info_plus: + :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos + path_provider_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin + rive_native: + :path: Flutter/ephemeral/.symlinks/plugins/rive_native/macos + shared_preferences_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin + smart_auth: + :path: Flutter/ephemeral/.symlinks/plugins/smart_auth/macos + sqflite_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos + webview_flutter_wkwebview: + :path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin + +SPEC CHECKSUMS: + connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e + file_selector_macos: 6280b52b459ae6c590af5d78fc35c7267a3c4b31 + Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e + firebase_auth: 693f1e1ef2bb11a241d4478e63f1f47676af0538 + firebase_core: 7667f880631ae8ad10e3d6567ab7582fe0682326 + firebase_messaging: df39858bcbbcce792c9e4f1ca51b41123d6181fd + FirebaseAppCheckInterop: 06fe5a3799278ae4667e6c432edd86b1030fa3df + FirebaseAuth: a6575e5fbf46b046c58dc211a28a5fbdd8d4c83b + FirebaseAuthInterop: 7087d7a4ee4bc4de019b2d0c240974ed5d89e2fd + FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e + FirebaseCoreExtension: edbd30474b5ccf04e5f001470bdf6ea616af2435 + FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4 + FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843 + FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09 + flutter_local_notifications: 4bf37a31afde695b56091b4ae3e4d9c7a7e6cda0 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 + geolocator_apple: ab36aa0e8b7d7a2d7639b3b4e48308394e8cef5e + GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 + GTMSessionFetcher: fc75fc972958dceedee61cb662ae1da7a83a91cf + location: c002b64375c0739e7afa30cbd0b675554830d208 + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 + package_info_plus: f0052d280d17aa382b932f399edf32507174e870 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + rive_native: 8a1f7b191cd1cfb55301e8d5028880e4ae788d56 + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + smart_auth: e10f1d22af5d9e1a51964fb1826cb177f993a7e1 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673 + webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 + +PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009 + +COCOAPODS: 1.16.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..adaf75b --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,819 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 713E9BED1FFD8AA6513D9C4E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A07D1CDC9BE663DCC8D9A5A /* Pods_Runner.framework */; }; + 901B656DE4A72FB1B6158E62 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FC34B2D159F4756192D7AB7B /* Pods_RunnerTests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 18652E5809F5CD239C7F62D8 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* businessv1.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = businessv1.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 415380DD8306ADA8EE64288C /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 6A07D1CDC9BE663DCC8D9A5A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + B9FD58417C1CA4950A2FA292 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + C960A7531BBC73016914650F /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + E9224EED9FFF02B79A7C35C8 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + EA08D116D8A82F585504771C /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + FC34B2D159F4756192D7AB7B /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 901B656DE4A72FB1B6158E62 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 713E9BED1FFD8AA6513D9C4E /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + 8D795D5093575B8FA379500A /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* businessv1.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + 8D795D5093575B8FA379500A /* Pods */ = { + isa = PBXGroup; + children = ( + 415380DD8306ADA8EE64288C /* Pods-Runner.debug.xcconfig */, + EA08D116D8A82F585504771C /* Pods-Runner.release.xcconfig */, + E9224EED9FFF02B79A7C35C8 /* Pods-Runner.profile.xcconfig */, + C960A7531BBC73016914650F /* Pods-RunnerTests.debug.xcconfig */, + B9FD58417C1CA4950A2FA292 /* Pods-RunnerTests.release.xcconfig */, + 18652E5809F5CD239C7F62D8 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6A07D1CDC9BE663DCC8D9A5A /* Pods_Runner.framework */, + FC34B2D159F4756192D7AB7B /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 88DC56B03908DF28D42B9C89 /* [CP] Check Pods Manifest.lock */, + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + ABFE157D4F7D72DEF641BC06 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + BDA282071E4813F6E0C4A545 /* [CP] Embed Pods Frameworks */, + A2F09FA929B4220F241B13A9 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* businessv1.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; + 88DC56B03908DF28D42B9C89 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + A2F09FA929B4220F241B13A9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + ABFE157D4F7D72DEF641BC06 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + BDA282071E4813F6E0C4A545 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C960A7531BBC73016914650F /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/businessv1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/businessv1"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B9FD58417C1CA4950A2FA292 /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/businessv1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/businessv1"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 18652E5809F5CD239C7F62D8 /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/businessv1.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/businessv1"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100755 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e8dfe77 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000..21a3cc1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100755 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100755 index 0000000..b3c1761 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..a2ec33f --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000..82b6f9d Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000..13b35eb Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000..0a3f5fa Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000..bdb5722 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000..f083318 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png new file mode 100644 index 0000000..326c0e7 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000..2f1632c Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png differ diff --git a/macos/Runner/Base.lproj/MainMenu.xib b/macos/Runner/Base.lproj/MainMenu.xib new file mode 100755 index 0000000..80e867a --- /dev/null +++ b/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..4ae3d74 --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = businessv1 + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.businessv1 + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2025 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100755 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100755 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100755 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100755 index 0000000..dddb8a3 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100755 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100755 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100755 index 0000000..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..dfd3a6f --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1975 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: ff0a84a2734d9e1089f8aedd5c0af0061b82fb94e95260d943404e0ef2134b11 + url: "https://pub.dev" + source: hosted + version: "1.3.59" + adobe_xd: + dependency: "direct main" + description: + name: adobe_xd + sha256: "5d84fef3ded20dc0f4efe34e8bd4c0462d2d1539b5826a18f4247ddbf915ad44" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + alp_animated_splashscreen: + dependency: "direct main" + description: + name: alp_animated_splashscreen + sha256: b39c655e4de1248028d7cfaffdcd9dced6cb20d6e9465eb42d1a567f8197e5ce + url: "https://pub.dev" + source: hosted + version: "0.0.6" + alphabet_scroll_view: + dependency: "direct main" + description: + name: alphabet_scroll_view + sha256: f8192b043bcae855566ed471c4bc61c98bec761fb5091ed79d4bdbfcc5846e3b + url: "https://pub.dev" + source: hosted + version: "0.3.2" + alphabet_search_view: + dependency: "direct main" + description: + name: alphabet_search_view + sha256: "6890a0a8ccd330d1884e6bcb02739889923d927e0a9197d5d607274c54ceb062" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + amazon_cognito_identity_dart_2: + dependency: transitive + description: + name: amazon_cognito_identity_dart_2 + sha256: ad550b054e19c1879f729f9f1b612f91f21f2c595623942a283564f9218ca6c8 + url: "https://pub.dev" + source: hosted + version: "1.0.5" + animated_splash_screen: + dependency: "direct main" + description: + name: animated_splash_screen + sha256: f45634db6ec4e8cf034c53e03f3bd83898a16fe3c9286bf5510b6831dfcf2124 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + archive: + dependency: transitive + description: + name: archive + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + url: "https://pub.dev" + source: hosted + version: "3.6.1" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + url: "https://pub.dev" + source: hosted + version: "2.13.0" + avatar_glow: + dependency: "direct main" + description: + name: avatar_glow + sha256: "3627f6f97d1f10d3c1996ae108d3488eabaf68c0cf0c3eac7e7c746a3812881d" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + awesome_dialog: + dependency: "direct main" + description: + name: awesome_dialog + sha256: "4c5821a0a637ceee022084e78c1b8237dd4b8bfca4dd24ac2484662a56707338" + url: "https://pub.dev" + source: hosted + version: "3.3.0" + awesome_snackbar_content: + dependency: "direct main" + description: + name: awesome_snackbar_content + sha256: "1aac8861d567ba0f8a5dc8e79e525b50f70d6feedf4cbe99e08efb29fce6039d" + url: "https://pub.dev" + source: hosted + version: "0.1.8" + aws_s3_upload: + dependency: "direct main" + description: + name: aws_s3_upload + sha256: "20683fa0de19c75d1f4c4f48d3a7ac7fa8e0cdfd370003c59b4234fb4aa4257b" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + badges: + dependency: "direct main" + description: + name: badges + sha256: a7b6bbd60dce418df0db3058b53f9d083c22cdb5132a052145dc267494df0b84 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + bubble_tab_indicator: + dependency: "direct main" + description: + name: bubble_tab_indicator + sha256: "0aa37980a00e3374d917f9da8e83acd7f59ba872a3d05c306220063f28f945aa" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + buffer: + dependency: transitive + description: + name: buffer + sha256: "389da2ec2c16283c8787e0adaede82b1842102f8c8aae2f49003a766c5c6b3d1" + url: "https://pub.dev" + source: hosted + version: "1.2.3" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + characters: + dependency: transitive + description: + name: characters + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + url: "https://pub.dev" + source: hosted + version: "1.4.1" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + confetti: + dependency: "direct main" + description: + name: confetti + sha256: "979aafde2428c53947892c95eb244466c109c129b7eee9011f0a66caaca52267" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + connectivity_plus: + dependency: "direct main" + description: + name: connectivity_plus + sha256: b5e72753cf63becce2c61fd04dfe0f1c430cc5278b53a1342dc5ad839eab29ec + url: "https://pub.dev" + source: hosted + version: "6.1.5" + connectivity_plus_platform_interface: + dependency: transitive + description: + name: connectivity_plus_platform_interface + sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + country_currency_pickers: + dependency: "direct main" + description: + name: country_currency_pickers + sha256: eacbca5af8d4c8c51bffedbe6c88320f1deba5f286b9ccba8d1fc19f02f12e96 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + url: "https://pub.dev" + source: hosted + version: "0.3.4+2" + crypto: + dependency: "direct main" + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + day_night_time_picker: + dependency: "direct main" + description: + name: day_night_time_picker + sha256: "085563dee6f64961c47abb1d444dbb923fda2f6fed0df452fcc221ae38a58898" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + dbus: + dependency: transitive + description: + name: dbus + sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" + url: "https://pub.dev" + source: hosted + version: "0.7.11" + dio: + dependency: "direct main" + description: + name: dio + sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8" + url: "https://pub.dev" + source: hosted + version: "4.0.6" + dlibphonenumber: + dependency: transitive + description: + name: dlibphonenumber + sha256: "0691c8e9040574252b54217309cb4464b8cda5333dacb230afe5a2b4c847db92" + url: "https://pub.dev" + source: hosted + version: "1.1.50" + dots_indicator: + dependency: transitive + description: + name: dots_indicator + sha256: c070af5058a084ba7b354df4b4c26c719595d70a3531eea6edd8af8716684ba3 + url: "https://pub.dev" + source: hosted + version: "4.0.1" + dotted_line: + dependency: "direct main" + description: + name: dotted_line + sha256: "41e3d655939559815daa1370fc1e07673a205fa628cf40ce3af45d90029a77b6" + url: "https://pub.dev" + source: hosted + version: "3.2.3" + dropdown_button2: + dependency: "direct main" + description: + name: dropdown_button2 + sha256: b0fe8d49a030315e9eef6c7ac84ca964250155a6224d491c1365061bc974a9e1 + url: "https://pub.dev" + source: hosted + version: "2.3.9" + equatable: + dependency: transitive + description: + name: equatable + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + expandable: + dependency: "direct main" + description: + name: expandable + sha256: "9604d612d4d1146dafa96c6d8eec9c2ff0994658d6d09fed720ab788c7f5afc2" + url: "https://pub.dev" + source: hosted + version: "5.0.1" + extended_nested_scroll_view: + dependency: "direct main" + description: + name: extended_nested_scroll_view + sha256: "835580d40c2c62b448bd14adecd316acba469ba61f1510ef559d17668a85e777" + url: "https://pub.dev" + source: hosted + version: "6.2.1" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c" + url: "https://pub.dev" + source: hosted + version: "0.9.4+4" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + url: "https://pub.dev" + source: hosted + version: "2.6.2" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" + url: "https://pub.dev" + source: hosted + version: "0.9.3+4" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: "0fed2133bee1369ee1118c1fef27b2ce0d84c54b7819a2b17dada5cfec3b03ff" + url: "https://pub.dev" + source: hosted + version: "5.7.0" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: "871c9df4ec9a754d1a793f7eb42fa3b94249d464cfb19152ba93e14a5966b386" + url: "https://pub.dev" + source: hosted + version: "7.7.3" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: d9ada769c43261fd1b18decf113186e915c921a811bd5014f5ea08f4cf4bc57e + url: "https://pub.dev" + source: hosted + version: "5.15.3" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: "7be63a3f841fc9663342f7f3a011a42aef6a61066943c90b1c434d79d5c995c5" + url: "https://pub.dev" + source: hosted + version: "3.15.2" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: cccb4f572325dc14904c02fcc7db6323ad62ba02536833dddb5c02cac7341c64 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "0ed0dc292e8f9ac50992e2394e9d336a0275b6ae400d64163fdf0a8a8b556c37" + url: "https://pub.dev" + source: hosted + version: "2.24.1" + firebase_in_app_messaging: + dependency: "direct main" + description: + name: firebase_in_app_messaging + sha256: e00ab205abcc7b75793dd748e34220d47338c49d16822ddcde2ff549538af9fb + url: "https://pub.dev" + source: hosted + version: "0.8.1+10" + firebase_in_app_messaging_platform_interface: + dependency: transitive + description: + name: firebase_in_app_messaging_platform_interface + sha256: "092552b101994edf9ed8e0e602774c73ec9d5c3e4690ea886cd21426b7d8b5e3" + url: "https://pub.dev" + source: hosted + version: "0.2.5+10" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + sha256: "60be38574f8b5658e2f22b7e311ff2064bea835c248424a383783464e8e02fcc" + url: "https://pub.dev" + source: hosted + version: "15.2.10" + firebase_messaging_platform_interface: + dependency: transitive + description: + name: firebase_messaging_platform_interface + sha256: "685e1771b3d1f9c8502771ccc9f91485b376ffe16d553533f335b9183ea99754" + url: "https://pub.dev" + source: hosted + version: "4.6.10" + firebase_messaging_web: + dependency: transitive + description: + name: firebase_messaging_web + sha256: "0d1be17bc89ed3ff5001789c92df678b2e963a51b6fa2bdb467532cc9dbed390" + url: "https://pub.dev" + source: hosted + version: "3.10.10" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: "155556c4aba56c8474308d51b4e5446b80a07db9ab66a3cb74aff05c110df982" + url: "https://pub.dev" + source: hosted + version: "0.60.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_animate: + dependency: transitive + description: + name: flutter_animate + sha256: "7befe2d3252728afb77aecaaea1dec88a89d35b9b1d2eea6d04479e8af9117b5" + url: "https://pub.dev" + source: hosted + version: "4.5.2" + flutter_cache_manager: + dependency: "direct main" + description: + name: flutter_cache_manager + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + flutter_credit_card: + dependency: "direct main" + description: + name: flutter_credit_card + sha256: "95522e85b7bccaf4829218890549dd70e2d82e78c7eb8ab6b03e2e7ce733934c" + url: "https://pub.dev" + source: hosted + version: "3.0.7" + flutter_expanded_tile: + dependency: "direct main" + description: + name: flutter_expanded_tile + sha256: "106e992ca20e168adc18ffeac8fbbc7ee84db62b670cc288d67132153114e035" + url: "https://pub.dev" + source: hosted + version: "0.3.7" + flutter_keyboard_visibility: + dependency: transitive + description: + name: flutter_keyboard_visibility + sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_keyboard_visibility_linux: + dependency: transitive + description: + name: flutter_keyboard_visibility_linux + sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_keyboard_visibility_macos: + dependency: transitive + description: + name: flutter_keyboard_visibility_macos + sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_keyboard_visibility_platform_interface: + dependency: transitive + description: + name: flutter_keyboard_visibility_platform_interface + sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_keyboard_visibility_web: + dependency: transitive + description: + name: flutter_keyboard_visibility_web + sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_keyboard_visibility_windows: + dependency: transitive + description: + name: flutter_keyboard_visibility_windows + sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + sha256: "19ffb0a8bb7407875555e5e98d7343a633bb73707bae6c6a5f37c90014077875" + url: "https://pub.dev" + source: hosted + version: "19.5.0" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: e3c277b2daab8e36ac5a6820536668d07e83851aeeb79c446e525a70710770a5 + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "277d25d960c15674ce78ca97f57d0bae2ee401c844b6ac80fcd972a9c99d09fe" + url: "https://pub.dev" + source: hosted + version: "9.1.0" + flutter_local_notifications_windows: + dependency: transitive + description: + name: flutter_local_notifications_windows + sha256: "8d658f0d367c48bd420e7cf2d26655e2d1130147bca1eea917e576ca76668aaf" + url: "https://pub.dev" + source: hosted + version: "1.0.3" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476 + url: "https://pub.dev" + source: hosted + version: "2.0.31" + flutter_polyline_points: + dependency: "direct main" + description: + name: flutter_polyline_points + sha256: "3a1c8c30abee9fb0fbe44c70d5d1cedb10ef28ec7ea285c669f02b3e183483aa" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + flutter_shaders: + dependency: transitive + description: + name: flutter_shaders + sha256: "34794acadd8275d971e02df03afee3dee0f98dbfb8c4837082ad0034f612a3e2" + url: "https://pub.dev" + source: hosted + version: "0.1.3" + flutter_svg: + dependency: "direct overridden" + description: + name: flutter_svg + sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + flutter_switch: + dependency: "direct main" + description: + name: flutter_switch + sha256: b91477f926bba135d2d203d7b24367492662d8d9c3aa6adb960b14c1087d3c41 + url: "https://pub.dev" + source: hosted + version: "0.3.2" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + sha256: "90778fe0497fe3a09166e8cf2e0867310ff434b794526589e77ec03cf08ba8e8" + url: "https://pub.dev" + source: hosted + version: "8.2.14" + font_awesome_flutter: + dependency: "direct main" + description: + name: font_awesome_flutter + sha256: "09dcde8ab90ffae1a7d65ff2ef96fc62a17ad9d0ce7c127b317ded676b0d5935" + url: "https://pub.dev" + source: hosted + version: "11.0.0" + geocoding: + dependency: "direct main" + description: + name: geocoding + sha256: d580c801cba9386b4fac5047c4c785a4e19554f46be42f4f5e5b7deacd088a66 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + geocoding_android: + dependency: transitive + description: + name: geocoding_android + sha256: "1b13eca79b11c497c434678fed109c2be020b158cec7512c848c102bc7232603" + url: "https://pub.dev" + source: hosted + version: "3.3.1" + geocoding_ios: + dependency: transitive + description: + name: geocoding_ios + sha256: "18ab1c8369e2b0dcb3a8ccc907319334f35ee8cf4cfef4d9c8e23b13c65cb825" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + geocoding_platform_interface: + dependency: transitive + description: + name: geocoding_platform_interface + sha256: "8c2c8226e5c276594c2e18bfe88b19110ed770aeb7c1ab50ede570be8b92229b" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + geolocator: + dependency: "direct main" + description: + name: geolocator + sha256: "149876cc5207a0f5daf4fdd3bfcf0a0f27258b3fe95108fa084f527ad0568f1b" + url: "https://pub.dev" + source: hosted + version: "12.0.0" + geolocator_android: + dependency: transitive + description: + name: geolocator_android + sha256: fcb1760a50d7500deca37c9a666785c047139b5f9ee15aa5469fae7dbbe3170d + url: "https://pub.dev" + source: hosted + version: "4.6.2" + geolocator_apple: + dependency: transitive + description: + name: geolocator_apple + sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22 + url: "https://pub.dev" + source: hosted + version: "2.3.13" + geolocator_platform_interface: + dependency: transitive + description: + name: geolocator_platform_interface + sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67" + url: "https://pub.dev" + source: hosted + version: "4.2.6" + geolocator_web: + dependency: transitive + description: + name: geolocator_web + sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172 + url: "https://pub.dev" + source: hosted + version: "4.1.3" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6" + url: "https://pub.dev" + source: hosted + version: "0.2.5" + get: + dependency: "direct main" + description: + name: get + sha256: c79eeb4339f1f3deffd9ec912f8a923834bec55f7b49c9e882b8fef2c139d425 + url: "https://pub.dev" + source: hosted + version: "4.7.2" + gmaps_by_road_distance_calculator: + dependency: "direct main" + description: + name: gmaps_by_road_distance_calculator + sha256: a53d0d8d098c05be4081f6721b72579f54b080119127b3b07ad1dff9129b5b34 + url: "https://pub.dev" + source: hosted + version: "2.0.6" + google_fonts: + dependency: transitive + description: + name: google_fonts + sha256: "517b20870220c48752eafa0ba1a797a092fb22df0d89535fd9991e86ee2cdd9c" + url: "https://pub.dev" + source: hosted + version: "6.3.2" + google_maps: + dependency: transitive + description: + name: google_maps + sha256: "5d410c32112d7c6eb7858d359275b2aa04778eed3e36c745aeae905fb2fa6468" + url: "https://pub.dev" + source: hosted + version: "8.2.0" + google_maps_flutter: + dependency: "direct main" + description: + name: google_maps_flutter + sha256: c389e16fafc04b37a4105e0757ecb9d59806026cee72f408f1ba68811d01bfe6 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + google_maps_flutter_android: + dependency: transitive + description: + name: google_maps_flutter_android + sha256: "7c7ff5b883b27bfdd0d52d91d89faf00858a6c1b33aeca0dc80faca64f389983" + url: "https://pub.dev" + source: hosted + version: "2.18.3" + google_maps_flutter_ios: + dependency: transitive + description: + name: google_maps_flutter_ios + sha256: ca02463b19a9abc7d31fcaf22631d021d647107467f741b917a69fa26659fd75 + url: "https://pub.dev" + source: hosted + version: "2.15.5" + google_maps_flutter_platform_interface: + dependency: transitive + description: + name: google_maps_flutter_platform_interface + sha256: f4b9b44f7b12a1f6707ffc79d082738e0b7e194bf728ee61d2b3cdf5fdf16081 + url: "https://pub.dev" + source: hosted + version: "2.14.0" + google_maps_flutter_web: + dependency: transitive + description: + name: google_maps_flutter_web + sha256: "53e5dbf73ff04153acc55a038248706967c21d5b6ef6657a57fce2be73c2895a" + url: "https://pub.dev" + source: hosted + version: "0.5.14+2" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" + http: + dependency: "direct main" + description: + name: http + sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007 + url: "https://pub.dev" + source: hosted + version: "1.5.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d + url: "https://pub.dev" + source: hosted + version: "4.3.0" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "736eb56a911cf24d1859315ad09ddec0b66104bc41a7f8c5b96b4e2620cf5041" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "28f3987ca0ec702d346eae1d90eda59603a2101b52f1e234ded62cff1d5cfa6e" + url: "https://pub.dev" + source: hosted + version: "0.8.13+1" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "40c2a6a0da15556dc0f8e38a3246064a971a9f512386c3339b89f76db87269b6" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e + url: "https://pub.dev" + source: hosted + version: "0.8.13" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04 + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" + url: "https://pub.dev" + source: hosted + version: "2.11.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae + url: "https://pub.dev" + source: hosted + version: "0.2.2" + internet_connection_checker: + dependency: "direct main" + description: + name: internet_connection_checker + sha256: "1c683e63e89c9ac66a40748b1b20889fd9804980da732bf2b58d6d5456c8e876" + url: "https://pub.dev" + source: hosted + version: "1.0.0+1" + intl: + dependency: "direct main" + description: + name: intl + sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + url: "https://pub.dev" + source: hosted + version: "0.20.2" + intl_phone_field: + dependency: "direct main" + description: + name: intl_phone_field + sha256: "73819d3dfcb68d2c85663606f6842597c3ddf6688ac777f051b17814fe767bbf" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + intl_phone_number_input: + dependency: "direct main" + description: + name: intl_phone_number_input + sha256: "9d4d7f174cfc3a85b238e0b465ec0e7232fc0815a779e5a58fbf118dee26dfa0" + url: "https://pub.dev" + source: hosted + version: "0.7.5" + intro_slider: + dependency: "direct main" + description: + name: intro_slider + sha256: "0c458fa5231456f4cd0f6c4e0fc78e05fba607750fa4fda7d75c4d962c35022b" + url: "https://pub.dev" + source: hosted + version: "4.2.5" + introduction_screen: + dependency: "direct main" + description: + name: introduction_screen + sha256: "02c123e074ee85b0ad0a8d3cd990f1eae78d5cfb2ac4588ad3703ac2a07fb5b0" + url: "https://pub.dev" + source: hosted + version: "3.1.17" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + latlong2: + dependency: transitive + description: + name: latlong2 + sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe" + url: "https://pub.dev" + source: hosted + version: "0.9.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + location: + dependency: "direct main" + description: + name: location + sha256: "06be54f682c9073cbfec3899eb9bc8ed90faa0e17735c9d9fa7fe426f5be1dd1" + url: "https://pub.dev" + source: hosted + version: "5.0.3" + location_platform_interface: + dependency: transitive + description: + name: location_platform_interface + sha256: "8aa1d34eeecc979d7c9fe372931d84f6d2ebbd52226a54fe1620de6fdc0753b1" + url: "https://pub.dev" + source: hosted + version: "3.1.2" + location_web: + dependency: transitive + description: + name: location_web + sha256: ec484c66e8a4ff1ee5d044c203f4b6b71e3a0556a97b739a5bc9616de672412b + url: "https://pub.dev" + source: hosted + version: "4.2.0" + logger: + dependency: "direct main" + description: + name: logger + sha256: a7967e31b703831a893bbc3c3dd11db08126fe5f369b5c648a36f821979f5be3 + url: "https://pub.dev" + source: hosted + version: "2.6.2" + lottie: + dependency: "direct main" + description: + name: lottie + sha256: a93542cc2d60a7057255405f62252533f8e8956e7e06754955669fd32fb4b216 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + url: "https://pub.dev" + source: hosted + version: "0.12.19" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + url: "https://pub.dev" + source: hosted + version: "0.13.0" + material_floating_search_bar: + dependency: "direct main" + description: + name: material_floating_search_bar + sha256: "970df4bc17a1ae7cacc745012fba442701daa44224e46bc0fd459e3aff0d5362" + url: "https://pub.dev" + source: hosted + version: "0.3.7" + meta: + dependency: transitive + description: + name: meta + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" + url: "https://pub.dev" + source: hosted + version: "1.18.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + minio: + dependency: "direct main" + description: + name: minio + sha256: ee2ce47766e46c7d164f960f2f5ed6a9a82844d877f6b82574f6876ec50c56d1 + url: "https://pub.dev" + source: hosted + version: "3.5.8" + new_version_plus: + dependency: "direct main" + description: + name: new_version_plus + sha256: "13081e189d3334c45bd708ffb42a0f1043a316e8c77d458d1ccb486d5572e2c6" + url: "https://pub.dev" + source: hosted + version: "0.1.1" + nm: + dependency: transitive + description: + name: nm + sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + os_detect: + dependency: transitive + description: + name: os_detect + sha256: "7d87c0dd98c6faf110d5aa498e9a6df02ffce4bb78cc9cfc8ad02929be9bb71f" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + otp_timer_button: + dependency: "direct main" + description: + name: otp_timer_button + sha256: "2c1dae65db0147add42f52558f88ad71a4a29a612d891e81323ea01bac983dcf" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + package_info_plus: + dependency: transitive + description: + name: package_info_plus + sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968" + url: "https://pub.dev" + source: hosted + version: "8.3.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + page_transition: + dependency: transitive + description: + name: page_transition + sha256: "9d2a780d7d68b53ae82fbcc43e06a16195e6775e9aae40e55dc0cbb593460f9d" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" + url: "https://pub.dev" + source: hosted + version: "2.2.19" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + percent_indicator: + dependency: "direct main" + description: + name: percent_indicator + sha256: "157d29133bbc6ecb11f923d36e7960a96a3f28837549a20b65e5135729f0f9fd" + url: "https://pub.dev" + source: hosted + version: "4.2.5" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1 + url: "https://pub.dev" + source: hosted + version: "12.0.1" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6" + url: "https://pub.dev" + source: hosted + version: "13.0.1" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 + url: "https://pub.dev" + source: hosted + version: "9.4.7" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" + url: "https://pub.dev" + source: hosted + version: "0.1.3+5" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 + url: "https://pub.dev" + source: hosted + version: "4.3.0" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + url: "https://pub.dev" + source: hosted + version: "0.2.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1" + url: "https://pub.dev" + source: hosted + version: "7.0.1" + pin_code_fields: + dependency: "direct main" + description: + name: pin_code_fields + sha256: c8652519d14688f3fe2a8288d86910a46aa0b9046d728f292d3bf6067c31b4c7 + url: "https://pub.dev" + source: hosted + version: "7.4.0" + pin_code_text_field: + dependency: "direct main" + description: + name: pin_code_text_field + sha256: "3484c3ed4731327688734596d1fba1741f75da19366055116ecedcdffd87741a" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + pin_input_text_field: + dependency: transitive + description: + name: pin_input_text_field + sha256: f45683032283d30b670ec343781660655e3e1953438b281a0bc6e2d358486236 + url: "https://pub.dev" + source: hosted + version: "4.5.2" + pinput: + dependency: "direct main" + description: + name: pinput + sha256: "6d571e38a484f7515a52e89024ef416f11fa6171ac6f32303701374ab9890efa" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pretty_qr_code: + dependency: "direct main" + description: + name: pretty_qr_code + sha256: "2291db3f68d70a3dcd46c6bd599f30991ae4c02f27f36215fbb3f4865a609259" + url: "https://pub.dev" + source: hosted + version: "3.5.0" + progress_indicators: + dependency: "direct main" + description: + name: progress_indicators + sha256: "28cba16c2c1f37b14f3551c406e0d9b156fb2f3205d7b4e4153823b3abc9d56c" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + protobuf: + dependency: transitive + description: + name: protobuf + sha256: "826d6a306be26f29e5cd9faeb0c97aad5897270341dab6dbd7b8acd675937006" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + pull_to_refresh: + dependency: "direct main" + description: + name: pull_to_refresh + sha256: bbadd5a931837b57739cf08736bea63167e284e71fb23b218c8c9a6e042aad12 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + qr: + dependency: transitive + description: + name: qr + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + raindrop_animated_splash_screen: + dependency: "direct main" + description: + name: raindrop_animated_splash_screen + sha256: "5756e139c2ef7e395c92795ae155da43c22d20e84dddbf13e8b6a88ff7e28709" + url: "https://pub.dev" + source: hosted + version: "0.0.2" + recase: + dependency: transitive + description: + name: recase + sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 + url: "https://pub.dev" + source: hosted + version: "4.1.0" + rive: + dependency: transitive + description: + name: rive + sha256: "8c6059dfc1aa0e89d9f1107f735f3114f9d1d06dcba798f823aeac55e7584295" + url: "https://pub.dev" + source: hosted + version: "0.14.0-dev.12" + rive_native: + dependency: transitive + description: + name: rive_native + sha256: f9c258c28b65e97e442290637b87de6eb0910665584269263153af56045a0ef7 + url: "https://pub.dev" + source: hosted + version: "0.0.15" + rounded_loading_button_plus: + dependency: "direct main" + description: + name: rounded_loading_button_plus + sha256: "8baad9b66c4a81b02b597edf7691cf78f7267a999c08a68937e391af7b2da653" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + sanitize_html: + dependency: transitive + description: + name: sanitize_html + sha256: "12669c4a913688a26555323fb9cec373d8f9fbe091f2d01c40c723b33caa8989" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + scrollable_positioned_list: + dependency: transitive + description: + name: scrollable_positioned_list + sha256: "1b54d5f1329a1e263269abc9e2543d90806131aa14fe7c6062a8054d57249287" + url: "https://pub.dev" + source: hosted + version: "0.3.8" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e + url: "https://pub.dev" + source: hosted + version: "2.4.13" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shimmer: + dependency: "direct main" + description: + name: shimmer + sha256: "1f1009b5845a1f88f1c5630212279540486f97409e9fc3f63883e71070d107bf" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + smart_auth: + dependency: transitive + description: + name: smart_auth + sha256: "88aa8fe66e951c78a307f26d1c29672dce2e9eb3da2e12e853864d0e615a73ad" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + sms_autofill: + dependency: "direct main" + description: + name: sms_autofill + sha256: c65836abe9c1f62ce411bb78d5546a09ece4297558070b1bd871db1db283aaf9 + url: "https://pub.dev" + source: hosted + version: "2.4.1" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + step_progress_indicator: + dependency: "direct main" + description: + name: step_progress_indicator + sha256: b51bb1fcfc78454359f0658c5a2c21548c3825ebf76e826308e9ca10f383bbb8 + url: "https://pub.dev" + source: hosted + version: "1.0.2" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + url: "https://pub.dev" + source: hosted + version: "3.4.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" + url: "https://pub.dev" + source: hosted + version: "0.7.11" + timeline_tile: + dependency: "direct main" + description: + name: timeline_tile + sha256: "85ec2023c67137397c2812e3e848b2fb20b410b67cd9aff304bb5480c376fc0c" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + timezone: + dependency: transitive + description: + name: timezone + sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1 + url: "https://pub.dev" + source: hosted + version: "0.10.1" + toggle_switch: + dependency: "direct main" + description: + name: toggle_switch + sha256: dca04512d7c23ed320d6c5ede1211a404f177d54d353bf785b07d15546a86ce5 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + universal_platform: + dependency: transitive + description: + name: universal_platform + sha256: "64e16458a0ea9b99260ceb5467a214c1f298d647c659af1bff6d3bf82536b1ec" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + upgrader: + dependency: "direct main" + description: + name: upgrader + sha256: a28de64108db70f77e5eacf8b87c1bdfaf9374ece9cab26f9aeac26ac3403eff + url: "https://pub.dev" + source: hosted + version: "12.1.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" + url: "https://pub.dev" + source: hosted + version: "6.3.20" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 + url: "https://pub.dev" + source: hosted + version: "6.3.4" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f + url: "https://pub.dev" + source: hosted + version: "3.2.3" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + url: "https://pub.dev" + source: hosted + version: "3.1.4" + uuid: + dependency: "direct main" + description: + name: uuid + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + url: "https://pub.dev" + source: hosted + version: "4.5.1" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 + url: "https://pub.dev" + source: hosted + version: "1.1.19" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc + url: "https://pub.dev" + source: hosted + version: "1.1.19" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + url: "https://pub.dev" + source: hosted + version: "2.2.0" + version: + dependency: transitive + description: + name: version + sha256: "3d4140128e6ea10d83da32fef2fa4003fccbf6852217bb854845802f04191f94" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + visibility_detector: + dependency: transitive + description: + name: visibility_detector + sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 + url: "https://pub.dev" + source: hosted + version: "0.4.0+2" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + url: "https://pub.dev" + source: hosted + version: "15.0.0" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: "direct main" + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webview_flutter: + dependency: "direct main" + description: + name: webview_flutter + sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba + url: "https://pub.dev" + source: hosted + version: "4.13.0" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: "9a25f6b4313978ba1c2cda03a242eea17848174912cfb4d2d8ee84a556f248e3" + url: "https://pub.dev" + source: hosted + version: "4.10.1" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" + url: "https://pub.dev" + source: hosted + version: "2.14.0" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: fb46db8216131a3e55bcf44040ca808423539bc6732e7ed34fb6d8044e3d512f + url: "https://pub.dev" + source: hosted + version: "3.23.0" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: "direct overridden" + description: + name: xml + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" +sdks: + dart: ">=3.10.0-0 <4.0.0" + flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..fdeb4b7 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,149 @@ +name: NearleDailyBusiness +description: Nearle bond, a community connector app. +version: 1.2.26+126 +environment: + sdk: '>=3.1.3 <4.0.0' + +dependencies: + flutter_local_notifications: ^19.0.0 + firebase_messaging: ^15.1.0 + firebase_core: ^3.4.0 + firebase_auth: ^5.2.0 + toggle_switch: ^2.0.1 + aws_s3_upload: ^1.5.0 + minio: ^3.0.0 + uuid: ^4.2.1 + crypto: ^3.0.3 + dotted_line: ^3.1.0 + get: ^4.6.5 +# flutter_statusbarcolor_ns: ^0.5.0 + extended_nested_scroll_view: + flutter: + sdk: flutter + flutter_localizations: + sdk: flutter + intl: + cupertino_icons: ^1.0.5 + flutter_switch: ^0.3.2 + shared_preferences: ^2.0.17 + dio: ^4.0.6 + image_picker: ^1.1.2 + location: ^5.0.0 + badges: ^3.0.2 + bubble_tab_indicator: ^0.1.6 + fluttertoast: ^8.2.1 + progress_indicators: ^1.0.0 + adobe_xd: ^2.0.1 + pin_code_text_field: ^1.8.0 + +# flutter_datetime_picker_plus: ^2.0.1 + avatar_glow: ^2.0.2 + font_awesome_flutter: ^11.0.0 + shimmer: ^2.0.0 + step_progress_indicator: ^1.0.2 + flutter_credit_card: ^3.0.5 + http: ^1.4.0 + fl_chart: ^0.60.0 + otp_timer_button: ^1.1.0 + internet_connection_checker: ^1.0.0+1 + alphabet_scroll_view: ^0.3.2 + material_floating_search_bar: ^0.3.7 + geolocator: ^12.0.0 + geocoding: ^3.0.0 + pull_to_refresh: ^2.0.0 + google_maps_flutter: ^2.9.0 + rounded_loading_button_plus: ^3.0.1 + pin_code_fields: ^7.4.0 + webview_flutter: ^4.13.0 +# upi_payment_qrcode_generator: ^1.4.0 + timeline_tile: ^2.0.0 +# dospace: ^0.13.15 + day_night_time_picker: ^1.3.0+1 + country_currency_pickers: ^2.0.0 +# flutter_app_version_checker: + lottie: ^2.2.0 + awesome_snackbar_content: ^0.1.0 + alphabet_search_view: ^2.0.0 + animated_splash_screen: ^1.3.0 +# razorpay_flutter: ^1.3.4 +# device_info_plus: + url_launcher: + confetti: ^0.7.0 + firebase_in_app_messaging: ^0.8.0+5 + introduction_screen: ^3.1.8 + permission_handler: ^12.0.0+1 + awesome_dialog: ^3.1.0 + connectivity_plus: ^6.0.3 + flutter_polyline_points: ^2.1.0 + expandable: ^5.0.1 + flutter_expanded_tile: ^0.3.7 +# sms_user_consent_manager: ^1.1.2 + logger: ^2.1.0 + pinput: ^4.0.0 + intl_phone_field: ^3.2.0 + intl_phone_number_input: ^0.7.5 + web_socket_channel: ^3.0.1 + +# flutter_osm_plugin: ^0.70.4 + dropdown_button2: + gmaps_by_road_distance_calculator: ^2.0.5 + upgrader: + new_version_plus: + pretty_qr_code: + cached_network_image: + percent_indicator: ^4.2.2 + intro_slider: ^4.2.1 + flutter_cache_manager: + sms_autofill: ^2.4.1 + raindrop_animated_splash_screen: ^0.0.2 + alp_animated_splashscreen: ^0.0.6 + + + + + + +dependency_overrides: + xml: ^6.3.0 + flutter_svg: ^2.0.9 + http: ^1.4.0 + + + + + +dev_dependencies: + flutter_test: + sdk: flutter + + + flutter_launcher_icons: ^0.13.1 + + + + + +flutter_launcher_icons: + android: true + ios: true + image_path: "assets/images/nearlebusiness.png" + remove_alpha_ios: true + + +flutter_native_splash: + image: "assets/images/splash_background1.png" + color: "59b0bc" + android: true + fill: true +flutter: + assets: + - assets/ + - assets/images/ + uses-material-design: true + + fonts: + - family: Lato + fonts: + - asset: fonts/Lato-Regular.ttf + + diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..1d4144f --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,31 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For gear, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:NearleDailyBusiness/main.dart'; +import 'package:NearleDailyBusiness/maindev.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget( MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/web/favicon.png b/web/favicon.png new file mode 100755 index 0000000..8aaa46a Binary files /dev/null and b/web/favicon.png differ diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100755 index 0000000..b749bfe Binary files /dev/null and b/web/icons/Icon-192.png differ diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100755 index 0000000..88cfd48 Binary files /dev/null and b/web/icons/Icon-512.png differ diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000..eb9b4d7 Binary files /dev/null and b/web/icons/Icon-maskable-192.png differ diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000..d69c566 Binary files /dev/null and b/web/icons/Icon-maskable-512.png differ diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..b01a68d --- /dev/null +++ b/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + businessv1 + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..578991a --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "businessv1", + "short_name": "businessv1", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100755 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..ec75d9e --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(businessv1 LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "businessv1") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100755 index 0000000..903f489 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..49f3c01 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,38 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + ConnectivityPlusWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); + FirebaseAuthPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); + GeolocatorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("GeolocatorWindows")); + PermissionHandlerWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); + RiveNativePluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("RiveNativePlugin")); + SmartAuthPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SmartAuthPlugin")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..d6a6c6b --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,33 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + connectivity_plus + file_selector_windows + firebase_auth + firebase_core + geolocator_windows + permission_handler_windows + rive_native + smart_auth + url_launcher_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + flutter_local_notifications_windows +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100755 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..c595679 --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.gear" "\0" + VALUE "FileDescription", "businessv1" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "businessv1" "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.gear. All rights reserved." "\0" + VALUE "OriginalFilename", "businessv1.exe" "\0" + VALUE "ProductName", "businessv1" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100755 index 0000000..955ee30 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100755 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..b3e3698 --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"businessv1", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100755 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000..c04e20c Binary files /dev/null and b/windows/runner/resources/app_icon.ico differ diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100755 index 0000000..153653e --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + PerMonitorV2 + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100755 index 0000000..3a0b465 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100755 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100755 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100755 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_