pwa app konectar first commit

This commit is contained in:
snehalathad 2024-01-04 12:36:37 +05:30
commit 12d8df2eef
193 changed files with 22817 additions and 0 deletions

44
.gitignore vendored Normal file
View File

@ -0,0 +1,44 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
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
.packages
.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

30
.metadata Normal file
View File

@ -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: "2e9cb0aa71a386a91f73f7088d115c0d96654829"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
- platform: android
create_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
base_revision: 2e9cb0aa71a386a91f73f7088d115c0d96654829
# 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'

25
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,25 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "pwa_ios",
"request": "launch",
"type": "dart"
},
{
"name": "pwa_ios (profile mode)",
"request": "launch",
"type": "dart",
"flutterMode": "profile"
},
{
"name": "pwa_ios (release mode)",
"request": "launch",
"type": "dart",
"flutterMode": "release"
}
]
}

16
README.md Normal file
View File

@ -0,0 +1,16 @@
# pwa_ios
A new Flutter project.
## Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.

29
analysis_options.yaml Normal file
View File

@ -0,0 +1,29 @@
# 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-lang.github.io/linter/lints/index.html.
#
# 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

13
android/.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks

72
android/app/build.gradle Normal file
View File

@ -0,0 +1,72 @@
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
namespace "com.example.pwa_ios"
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.pwa_ios"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
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.debug
}
}
}
flutter {
source '../..'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

View File

@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View File

@ -0,0 +1,49 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA" />
<application
android:label="pwa_ios"
android:name="${applicationName}"
android:usesCleartextTraffic="true"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>

View File

@ -0,0 +1,6 @@
package com.example.pwa_ios
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

31
android/build.gradle Normal file
View File

@ -0,0 +1,31 @@
buildscript {
ext.kotlin_version = '1.7.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

View File

@ -0,0 +1,3 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

View File

@ -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-7.5-all.zip

11
android/settings.gradle Normal file
View File

@ -0,0 +1,11 @@
include ':app'
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"

View File

@ -0,0 +1,260 @@
{
"form-attr": [
{
"widgetId": "intlocation_1",
"data" :
[
{
"id": "1",
"name": "In office"
},
{
"id": "2",
"name": "some"
},
{
"id": "3",
"name": "Internal meetings"
},
{
"id": "4",
"name": "Internal meetings"
},
{
"id": "5",
"name": "Out of Office"
},
{
"id": "6",
"name": "Virtual"
}
]
},
{
"widgetId": "inttype_11",
"data" :
[
{
"id": "11",
"name": "Face to Face"
},
{
"id": "12",
"name": "Lecture"
},
{
"id": "13",
"name": "Mailing"
},
{
"id": "14",
"name": "Other"
},
{
"id": "15",
"name": "Phone"
}
]
},
{
"widgetId": "intcategory_21",
"data" :
[
{
"id": "21",
"name": "One to One"
},
{
"id": "22",
"name": "Group"
}
]
},
{
"widgetId": "intempname_31",
"data" :
[
{
"id": "31",
"name": "Sarepta Manager"
},
{
"id": "32",
"name": "Todd Truesdale"
}
]
},
{
"widgetId": "intcheck_121",
"data" :
[
{
"id": "121",
"name": "One to One"
},
{
"id": "122",
"name": "Group"
}
]
},
{
"widgetId": "discproduct_41",
"data" :
[
{
"id": "41",
"name": "Product1"
},
{
"id": "42",
"name": "Product2"
}
]
},
{
"widgetId": "disctype_51",
"data" :
[
{
"id": "51",
"name": "Face to Face"
},
{
"id": "52",
"name": "Lecture"
},
{
"id": "53",
"name": "Mailing"
},
{
"id": "54",
"name": "Other"
},
{
"id": "55",
"name": "Phone"
}
]
},
{
"widgetId": "disctopic_61",
"data" :
[
{
"id": "61",
"name": "Face to Face"
},
{
"id": "62",
"name": "Lecture"
},
{
"id": "63",
"name": "Mailing"
},
{
"id": "64",
"name": "Other"
},
{
"id": "65",
"name": "Phone"
}
]
},
{
"widgetId": "othercountry_15",
"data" :
[
{
"name": "India",
"id": "1"
},
{
"name": "USA",
"id": "2"
},
{
"name": "Nepal",
"id": "3"
}
]
},
{
"widgetId": "otherstate_16",
"data" :
[
{
"name": "Karnataka",
"id": "1",
"pid": "1"
},
{
"name": "Maharashtra",
"id": "2",
"pid": "1"
},
{
"name": "Andhra Pradesh",
"id": "3",
"pid": "1"
},
{
"name": "Karnataka",
"id": "4",
"pid": "1"
}
]
},
{
"widgetId": "othercity_17",
"data" :
[
{
"name": "Hubli",
"id": "1",
"pid": "1"
},
{
"name": "Bangalore",
"id": "2",
"pid": "1"
},
{
"name": "Belgavi",
"id": "3",
"pid": "1"
}
]
}
]
}

View File

@ -0,0 +1,288 @@
{
"form-attr": [
{
"widgetId": "intlocation_1",
"data" :
[
{
"id": "1",
"name": "In office"
},
{
"id": "2",
"name": "some"
},
{
"id": "3",
"name": "Internal meetings"
},
{
"id": "4",
"name": "Internal meetings"
},
{
"id": "5",
"name": "Out of Office"
},
{
"id": "6",
"name": "Virtual"
}
]
},
{
"widgetId": "inttype_11",
"data" :
[
{
"id": "11",
"name": "Face to Face"
},
{
"id": "12",
"name": "Lecture"
},
{
"id": "13",
"name": "Mailing"
},
{
"id": "14",
"name": "Other"
},
{
"id": "15",
"name": "Phone"
}
]
},
{
"widgetId": "cmssponsored_11",
"data" :
[
{
"id": "112",
"name": "Face to Face"
},
{
"id": "123",
"name": "Lecture"
},
{
"id": "134",
"name": "Mailing"
},
{
"id": "145",
"name": "Other"
},
{
"id": "156 ",
"name": "Phone"
}
]
},
{
"widgetId": "intcategory_21",
"data" :
[
{
"id": "21",
"name": "One to One"
},
{
"id": "22",
"name": "Group"
}
]
},
{
"widgetId": "intempname_31",
"data" :
[
{
"id": "31",
"name": "Sarepta Manager"
},
{
"id": "32",
"name": "Todd Truesdale"
}
]
},
{
"widgetId": "intcheck_121",
"data" :
[
{
"id": "121",
"name": "One to One"
},
{
"id": "122",
"name": "Group"
}
]
},
{
"widgetId": "discproduct_41",
"data" :
[
{
"id": "41",
"name": "Product1"
},
{
"id": "42",
"name": "Product2"
}
]
},
{
"widgetId": "disctype_51",
"data" :
[
{
"id": "51",
"name": "Face to Face"
},
{
"id": "52",
"name": "Lecture"
},
{
"id": "53",
"name": "Mailing"
},
{
"id": "54",
"name": "Other"
},
{
"id": "55",
"name": "Phone"
}
]
},
{
"widgetId": "disctopic_61",
"data" :
[
{
"id": "61",
"name": "Face to Face"
},
{
"id": "62",
"name": "Lecture"
},
{
"id": "63",
"name": "Mailing"
},
{
"id": "64",
"name": "Other"
},
{
"id": "65",
"name": "Phone"
}
]
},
{
"widgetId": "othercountry_15",
"data" :
[
{
"name": "Select country",
"id": "0"
},
{
"name": "India",
"id": "1"
},
{
"name": "USA",
"id": "2"
},
{
"name": "Nepal",
"id": "3"
}
]
},
{
"widgetId": "otherstate_16",
"data" :
[
{
"name": "Karnataka",
"id": "1",
"pid": "1"
},
{
"name": "Maharashtra",
"id": "2",
"pid": "1"
},
{
"name": "Andhra Pradesh",
"id": "3",
"pid": "1"
},
{
"name": "Karnataka",
"id": "4",
"pid": "1"
}
]
},
{
"widgetId": "othercity_17",
"data" :
[
{
"name": "Hubli",
"id": "1",
"pid": "1"
},
{
"name": "Bangalore",
"id": "2",
"pid": "1"
},
{
"name": "Belgavi",
"id": "3",
"pid": "1"
}
]
}
]
}

View File

@ -0,0 +1,566 @@
{
"form-fields": [
{
"sectionName": "Interaction Details",
"multiple": false,
"sectionList": [
{
"name": "Interaction Date",
"param": "interactionDate",
"id": "intdate_1",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "Date",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Interaction Location",
"param": "interactionLocation",
"id": "intlocation_1",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Interaction Type",
"param": "interactionType",
"id": "inttype_11",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Interaction Category",
"param": "interactionCategory",
"id": "intcategory_21",
"selectedValue": [],
"depid": "",
"widget": "radio",
"input": "radio",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Number of Attendees",
"param": "numberOfAttendees",
"id": "intattendees_2",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "number",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Employee name",
"param": "employeeName",
"id": "intempname_31",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Interaction ",
"param": "interactionCheckbox",
"id": "intcheck_121",
"selectedValue": [],
"depid": "",
"widget": "checkbox",
"input": "checkbox",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Number of Attendees",
"param": "interactionRange",
"id": "intrange_122",
"selectedValue": [],
"depid": "",
"widget": "rangeslider",
"input": "100",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Discussion Topic",
"multiple": true,
"sectionList": [
{
"name": "Product",
"id": "discproduct_41",
"selectedValue": [],
"depid": "",
"param": "product",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Discussion Type",
"param": "discussionType",
"id": "disctype_51",
"selectedValue": [],
"depid": "",
"widget": "autocomplete",
"input": "autocomplete",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Discussion Topic",
"param": "discussionTopic",
"id": "disctopic_61",
"selectedValue": [],
"depid": "",
"widget": "multiselect",
"input": "multiselect",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Attendees",
"multiple": true,
"sectionList": [
{
"name": "HCP Name",
"param": "hcpName",
"id": "attendeeshcpname_3",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Speciality",
"param": "speciality",
"id": "attendeeshcpspeciality_4",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Title",
"param": "attendeesTitle",
"id": "attendeestitle_5",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Location",
"multiple": false,
"sectionList": [
{
"name": "Location",
"param": "primaryLocation",
"id": "primarylocation_6",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "primary",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Address",
"param": "primaryAddress",
"id": "primaryaddress_7",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "Hubli",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Country",
"param": "primaryCountry",
"id": "primarycountry_8",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "United states",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "State",
"param": "primaryState",
"id": "primarystate_9",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "Arizona",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "City",
"param": "primaryCity",
"id": "primarycity_10",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "Tucson",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Other",
"multiple": false,
"sectionList": [
{
"name": "Address1",
"param": "otherAddress1",
"id": "otheraddress1_12",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "primary",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Address2",
"param": "otherAddress2",
"id": "otheraddress2_13",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "Hubli",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Postal code",
"param": "otherPostalCode",
"id": "otherpostal_14",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "Hubli",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Country",
"param": "otherCountry",
"id": "othercountry_15",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"inputList": [ {
"id": 1,
"name": "Select state"
}],
"isRequired": true
},
{
"name": "State",
"param": "otherState",
"id": "otherstate_16",
"selectedValue": [],
"depid": "othercountry_15",
"widget": "dropdown",
"inputList": [
{
"id": 1,
"name": "Select state"
}
],
"isRequired": true
},
{
"name": "City",
"param": "otherCity",
"widget": "dropdown",
"id": "othercity_17",
"selectedValue": [],
"depid": "otherstate_16",
"inputList": [
{
"id": 1,
"name": "Select city"
}
],
"isRequired": true
}
]
},
{
"sectionName": "Other Attendees",
"multiple": false,
"sectionList": [
{
"name": "Attendee Name",
"param": "otherAttendeeName",
"id": "otherattendeename_18",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Speciality",
"param": "otherAttendeeSpeciality",
"id": "otherattendeespeciality_19",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Comments",
"param": "otherAttendeeComments",
"id": "otherattendeecom_20",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Attach Document(s)",
"multiple": true,
"sectionList": [
{
"name": "Document Name",
"param": "documentName",
"id": "documentName_21",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Description",
"param": "documentDescription",
"id": "documentDescription_21",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Choose file",
"param": "chooseFile",
"id": "chooseFile_22",
"selectedValue": [],
"depid": "",
"widget": "button",
"input": "button",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Notes",
"multiple": false,
"sectionList": [
{
"name": "Comments",
"id": "notescomments_22",
"selectedValue": [],
"depid": "",
"param": "notesComments",
"validation" : "maxchars",
"chars" : "500",
"widget": "text",
"input": "textArea",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
}
]
}

View File

@ -0,0 +1,503 @@
{
"form-fields": [
{
"sectionName": "Interaction Details",
"multiple": false,
"sectionList": [
{
"name": "Interaction Date",
"param": "interactionDate",
"id": "intdate_1",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "Date",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Interaction Location",
"param": "interactionLocation",
"id": "intlocation_1",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Interaction",
"param": "interactionType",
"id": "inttype_11",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "CMSU Sponsored",
"param": "cmsusponsored",
"id": "cmssponsored_11",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Number of Attendees",
"param": "numberOfAttendees",
"id": "intattendees_2",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "number",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "CMSU Insight",
"param": "cmsuinsight",
"id": "intempname_31",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Konectar Notes",
"multiple": false,
"sectionList": [
{
"name": "Konectar notes",
"id": "notescomments_22",
"selectedValue": [],
"depid": "",
"param": "notesComments",
"validation" : "maxchars",
"chars" : "500",
"widget": "text",
"input": "textArea",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Attendees",
"multiple": true,
"sectionList": [
{
"name": "HCP Name",
"param": "hcpName",
"id": "attendeeshcpname_3",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Speciality",
"param": "speciality",
"id": "attendeeshcpspeciality_4",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Title",
"param": "attendeesTitle",
"id": "attendeestitle_5",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Location",
"multiple": false,
"sectionList": [
{
"name": "Location",
"param": "primaryLocation",
"id": "primarylocation_6",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "primary",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Address",
"param": "primaryAddress",
"id": "primaryaddress_7",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "Hubli",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Country",
"param": "primaryCountry",
"id": "primarycountry_8",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "United states",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "State",
"param": "primaryState",
"id": "primarystate_9",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "Arizona",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "City",
"param": "primaryCity",
"id": "primarycity_10",
"selectedValue": [],
"depid": "",
"widget": "label",
"input": "Tucson",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Other",
"multiple": false,
"sectionList": [
{
"name": "Address1",
"param": "otherAddress1",
"id": "otheraddress1_12",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "primary",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Address2",
"param": "otherAddress2",
"id": "otheraddress2_13",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "Hubli",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Postal code",
"param": "otherPostalCode",
"id": "otherpostal_14",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "Hubli",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Country",
"param": "otherCountry",
"id": "othercountry_15",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"inputList": [ {
"id": 1,
"name": "Select country"
}],
"isRequired": true
},
{
"name": "State",
"param": "otherState",
"id": "otherstate_16",
"selectedValue": [],
"depid": "othercountry_15",
"widget": "dropdown",
"inputList": [
{
"id": 1,
"name": "Select state"
}
],
"isRequired": true
},
{
"name": "City",
"param": "otherCity",
"widget": "dropdown",
"id": "othercity_17",
"selectedValue": [],
"depid": "otherstate_16",
"inputList": [
{
"id": 1,
"name": "Select city"
}
],
"isRequired": true
}
]
},
{
"sectionName": "Other Attendees",
"multiple": false,
"sectionList": [
{
"name": "Attendee Name",
"param": "otherAttendeeName",
"id": "otherattendeename_18",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Speciality",
"param": "otherAttendeeSpeciality",
"id": "otherattendeespeciality_19",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Comments",
"param": "otherAttendeeComments",
"id": "otherattendeecom_20",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Attach Document(s)",
"multiple": true,
"sectionList": [
{
"name": "Document Name",
"param": "documentName",
"id": "documentName_21",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Description",
"param": "documentDescription",
"id": "documentDescription_21",
"selectedValue": [],
"depid": "",
"widget": "text",
"input": "text",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
},
{
"name": "Choose file",
"param": "chooseFile",
"id": "chooseFile_22",
"selectedValue": [],
"depid": "",
"widget": "button",
"input": "button",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
},
{
"sectionName": "Notes",
"multiple": false,
"sectionList": [
{
"name": "Comments",
"id": "notescomments_22",
"selectedValue": [],
"depid": "",
"param": "notesComments",
"validation" : "maxchars",
"chars" : "500",
"widget": "text",
"input": "textArea",
"inputList": [
{
"id": "",
"name": ""
}
],
"isRequired": true
}
]
}
]
}

61
assets/images/klogo.svg Normal file
View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.2.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="300px" height="54px" viewBox="0 0 300 54" style="enable-background:new 0 0 300 54;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#F96731;}
.st2{fill:#2B9AF3;}
</style>
<g>
<g>
<g>
<g>
<path class="st0" d="M10,52.2V1h6.3v29.2l14.9-15.1h8.1L25.1,28.8l15.6,23.3H33l-12.2-19l-4.4,4.3v14.7H10z"/>
<path class="st0" d="M85.5,52.2V15.1h5.7v5.3c2.7-4.1,6.7-6.1,11.8-6.1c2.2,0,4.3,0.4,6.2,1.2c1.9,0.8,3.3,1.9,4.2,3.2
c0.9,1.3,1.6,2.9,2,4.6c0.2,1.2,0.3,3.2,0.3,6.1v22.8h-6.3V29.6c0-2.6-0.2-4.5-0.7-5.7c-0.5-1.3-1.4-2.3-2.6-3
c-1.2-0.8-2.7-1.1-4.4-1.1c-2.7,0-5,0.8-6.9,2.5c-1.9,1.7-2.9,4.9-2.9,9.7v20.2H85.5z"/>
<path class="st0" d="M150.6,40.2l6.5,0.8c-1,3.8-2.9,6.7-5.7,8.8c-2.8,2.1-6.3,3.1-10.6,3.1c-5.4,0-9.7-1.7-12.9-5
c-3.2-3.3-4.8-8-4.8-14c0-6.2,1.6-11.1,4.8-14.5c3.2-3.4,7.4-5.2,12.5-5.2c5,0,9,1.7,12.1,5.1c3.1,3.4,4.7,8.1,4.7,14.2
c0,0.4,0,0.9,0,1.7h-27.6c0.2,4.1,1.4,7.2,3.5,9.4c2.1,2.2,4.7,3.2,7.7,3.2c2.3,0,4.3-0.6,5.9-1.8
C148.4,44.8,149.6,42.9,150.6,40.2z M130,30.1h20.7c-0.3-3.1-1.1-5.5-2.4-7c-2-2.4-4.6-3.6-7.8-3.6c-2.9,0-5.3,1-7.3,2.9
C131.3,24.3,130.2,26.8,130,30.1z"/>
<path class="st0" d="M189.2,38.6l6.2,0.8c-0.7,4.3-2.4,7.6-5.2,10c-2.8,2.4-6.2,3.6-10.2,3.6c-5.1,0-9.1-1.7-12.2-5
c-3.1-3.3-4.6-8.1-4.6-14.3c0-4,0.7-7.5,2-10.5c1.3-3,3.3-5.3,6.1-6.8c2.7-1.5,5.7-2.3,8.8-2.3c4,0,7.3,1,9.9,3.1
c2.6,2,4.2,4.9,4.9,8.7l-6.1,0.9c-0.6-2.5-1.6-4.4-3.1-5.6c-1.5-1.3-3.3-1.9-5.4-1.9c-3.2,0-5.7,1.1-7.7,3.4
c-2,2.3-3,5.9-3,10.8c0,5,1,8.6,2.9,10.9c1.9,2.3,4.4,3.4,7.5,3.4c2.5,0,4.5-0.8,6.2-2.3C187.7,44.1,188.7,41.7,189.2,38.6z"/>
<path class="st0" d="M214.4,46.5l0.9,5.5c-1.8,0.4-3.4,0.6-4.7,0.6c-2.3,0-4-0.4-5.3-1.1c-1.3-0.7-2.1-1.7-2.7-2.8
c-0.5-1.2-0.8-3.6-0.8-7.4V20h-4.6v-4.9h4.6V5.9l6.2-3.8v12.9h6.3V20h-6.3v21.7c0,1.8,0.1,2.9,0.3,3.5c0.2,0.5,0.6,0.9,1.1,1.2
c0.5,0.3,1.2,0.5,2.1,0.5C212.4,46.8,213.3,46.7,214.4,46.5z"/>
<path class="st0" d="M244.8,47.6c-2.3,2-4.6,3.4-6.7,4.2c-2.2,0.8-4.5,1.2-6.9,1.2c-4.1,0-7.2-1-9.4-3c-2.2-2-3.3-4.5-3.3-7.6
c0-1.8,0.4-3.5,1.2-5c0.8-1.5,1.9-2.7,3.2-3.6c1.3-0.9,2.8-1.6,4.5-2.1c1.2-0.3,3.1-0.6,5.6-0.9c5.1-0.6,8.8-1.3,11.2-2.2
c0-0.9,0-1.4,0-1.6c0-2.6-0.6-4.4-1.8-5.4c-1.6-1.4-4-2.1-7.2-2.1c-3,0-5.1,0.5-6.5,1.6c-1.4,1-2.4,2.9-3.1,5.5l-6.1-0.8
c0.6-2.6,1.5-4.8,2.8-6.4c1.3-1.6,3.1-2.9,5.5-3.7c2.4-0.9,5.2-1.3,8.4-1.3c3.2,0,5.7,0.4,7.7,1.1c2,0.7,3.4,1.7,4.4,2.8
c0.9,1.1,1.6,2.6,2,4.3c0.2,1.1,0.3,3,0.3,5.8v8.4c0,5.8,0.1,9.5,0.4,11.1c0.3,1.5,0.8,3,1.6,4.4H246
C245.4,50.9,244.9,49.3,244.8,47.6z M244.2,33.6c-2.3,0.9-5.7,1.7-10.3,2.4c-2.6,0.4-4.4,0.8-5.5,1.3c-1.1,0.5-1.9,1.1-2.5,2
c-0.6,0.9-0.9,1.9-0.9,3c0,1.7,0.6,3.1,1.9,4.2c1.3,1.1,3.1,1.7,5.6,1.7c2.4,0,4.6-0.5,6.5-1.6c1.9-1.1,3.3-2.5,4.2-4.3
c0.7-1.4,1-3.5,1-6.3V33.6z"/>
<path class="st0" d="M260.3,52.2V15.1h5.7v5.6c1.4-2.6,2.8-4.4,4-5.2c1.2-0.8,2.6-1.3,4-1.3c2.1,0,4.3,0.7,6.5,2l-2.2,5.8
c-1.5-0.9-3.1-1.4-4.6-1.4c-1.4,0-2.6,0.4-3.7,1.2c-1.1,0.8-1.9,2-2.3,3.4c-0.7,2.2-1,4.7-1,7.3v19.4H260.3z"/>
<g>
<circle class="st1" cx="60.7" cy="48.6" r="3.5"/>
<circle class="st1" cx="60.7" cy="17.8" r="3.5"/>
<path class="st2" d="M57.3,44.8c-5-1.5-8.6-6.1-8.6-11.6c0-5.4,3.6-10.1,8.6-11.6c-1.1-1-1.7-2.3-1.7-3.9c0-1,0.3-1.9,0.7-2.7
c0,0,0,0,0,0c-8.1,2-14.2,9.4-14.2,18.1c0,8.7,6,16.1,14.2,18.1c0,0,0,0,0,0c-0.5-0.8-0.7-1.7-0.7-2.7
C55.5,47.1,56.2,45.7,57.3,44.8z"/>
<path class="st2" d="M65.2,15.1c0.5,0.8,0.8,1.7,0.8,2.7c0,1.5-0.7,2.9-1.7,3.9c5,1.5,8.6,6.1,8.6,11.6
c0,5.4-3.6,10.1-8.6,11.6c1.1,1,1.7,2.3,1.7,3.9c0,1-0.3,1.9-0.8,2.7c8.1-2,14.2-9.4,14.2-18.1C79.4,24.5,73.3,17.1,65.2,15.1z
"/>
</g>
</g>
</g>
</g>
<g>
<path class="st0" d="M290,8c0,3.4-2.7,6.1-6.1,6.1c-3.4,0-6.2-2.7-6.2-6.1c0-3.3,2.7-6,6.2-6C287.3,2,290,4.7,290,8z M279.2,8
c0,2.7,2,4.8,4.7,4.8c2.6,0,4.6-2.1,4.6-4.8c0-2.7-1.9-4.8-4.6-4.8C281.2,3.2,279.2,5.4,279.2,8z M282.9,11.1h-1.4v-6
C282,5,282.8,5,283.8,5c1.1,0,1.6,0.2,2.1,0.4c0.3,0.3,0.6,0.7,0.6,1.3c0,0.7-0.5,1.2-1.2,1.4v0.1c0.6,0.2,0.9,0.7,1.1,1.5
c0.2,0.9,0.3,1.3,0.4,1.5h-1.5c-0.2-0.2-0.3-0.8-0.5-1.5c-0.1-0.7-0.5-1-1.2-1h-0.7V11.1z M282.9,7.7h0.7c0.8,0,1.4-0.3,1.4-0.9
c0-0.5-0.4-0.9-1.3-0.9c-0.4,0-0.6,0-0.8,0.1V7.7z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
assets/images/konectar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,74 @@
{
"location": {
"country": [
{
"countryName": "Select country",
"countryId": "0"
},
{
"countryName": "India",
"countryId": "1"
},
{
"countryName": "USA",
"countryId": "2"
},
{
"countryName": "Nepal",
"countryId": "3"
}
],
"state": [
{
"stateName": "Karnataka",
"stateId": "1",
"countryId": "1"
},
{
"stateName": "Maharashtra",
"stateId": "2",
"countryId": "1"
},
{
"stateName": "Andhra Pradesh",
"stateId": "3",
"countryId": "1"
},
{
"stateName": "Karnataka",
"stateId": "4",
"countryId": "1"
}
],
"city": [
{
"cityName": "Select city",
"distId": "0",
"stateId": "0",
"countryId": "0"
},
{
"cityName": "Hubli",
"distId": "1",
"stateId": "1",
"countryId": "1"
},
{
"cityName": "Bangalore",
"distId": "2",
"stateId": "1",
"countryId": "1"
},
{
"cityName": "Belgavi",
"distId": "3",
"stateId": "1",
"countryId": "1"
}
]
}
}

View File

@ -0,0 +1,565 @@
{
"data": [
{
"id": "Form1",
"name": "Interaction Form",
"form-fields": [
{
"sectionName": "Interaction Details",
"multiple": false,
"sectionList": [
{
"name": "Interaction Date",
"id": "intdate_1",
"depid": "",
"widget": "text",
"input": "Date",
"validation":
{
"isRequired": true
}
},
{
"name": "Interaction Location",
"param": "interactionLocation",
"id": "intlocation_1",
"selectedValue": [],
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "1",
"name": "In office"
},
{
"id": "2",
"name": "some"
},
{
"id": "3",
"name": "Internal meetings"
},
{
"id": "4",
"name": "Internal meetings2"
},
{
"id": "5",
"name": "Out of Office"
},
{
"id": "6",
"name": "Virtual"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Interaction Type",
"id": "inttype_11",
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "11",
"name": "Face to Face"
},
{
"id": "12",
"name": "Lecture"
},
{
"id": "13",
"name": "Mailing"
},
{
"id": "14",
"name": "Other"
},
{
"id": "15",
"name": "Phone"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Interaction Category",
"id": "intcategory_21",
"depid": "",
"widget": "radio",
"input": "radio",
"inputList": [
{
"id": "21",
"name": "One to One"
},
{
"id": "22",
"name": "Group"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Number of Attendees",
"id": "intattendees_2",
"depid": "",
"widget": "text",
"input": "number",
"validation":
{
"isRequired": true
}
},
{
"name": "Employee name",
"id": "intempname_31",
"depid": "",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "31",
"name": "Sarepta Manager"
},
{
"id": "32",
"name": "Todd Truesdale"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Interaction ",
"id": "intcheck_121",
"depid": "",
"widget": "checkbox",
"input": "checkbox",
"inputList": [
{
"id": "121",
"name": "One to One"
},
{
"id": "122",
"name": "Group"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Number of Attendees",
"id": "intrange_122",
"depid": "",
"widget": "rangeslider",
"max": "100",
"min": "20",
"validation":
{
"isRequired": true
}
}
]
},
{
"sectionName": "Discussion Topic",
"multiple": true,
"sectionList": [
{
"name": "Product",
"id": "discproduct_41",
"depid": "",
"param": "product",
"widget": "dropdown",
"input": "dropdown",
"inputList": [
{
"id": "41",
"name": "Product1"
},
{
"id": "42",
"name": "Product2"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Discussion Type",
"id": "disctype_51",
"depid": "",
"widget": "autocomplete",
"input": "autocomplete",
"inputList": [
{
"id": "51",
"name": "Face to Face"
},
{
"id": "52",
"name": "Lecture"
},
{
"id": "53",
"name": "Mailing"
},
{
"id": "54",
"name": "Other"
},
{
"id": "55",
"name": "Phone"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "Discussion Topic",
"id": "disctopic_61",
"depid": "",
"widget": "multiselect",
"input": "multiselect",
"inputList": [
{
"id": "61",
"name": "Face to Face"
},
{
"id": "62",
"name": "Lecture"
},
{
"id": "63",
"name": "Mailing"
},
{
"id": "64",
"name": "Other"
},
{
"id": "65",
"name": "Phone"
}
],
"validation":
{
"isRequired": true
}
}
]
},
{
"sectionName": "Attendees",
"multiple": true,
"sectionList": [
{
"name": "HCP Name",
"id": "attendeeshcpname_3",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
},
{
"name": "Speciality",
"id": "attendeeshcpspeciality_4",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
},
{
"name": "Title",
"id": "attendeestitle_5",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
}
]
},
{
"sectionName": "Other",
"multiple": false,
"sectionList": [
{
"name": "Address1",
"id": "otheraddress1_12",
"depid": "",
"widget": "text",
"input": "primary",
"validation":
{
"isRequired": true
}
},
{
"name": "Address2",
"id": "otheraddress2_13",
"depid": "",
"widget": "text",
"input": "Hubli",
"validation":
{
"isRequired": true
}
},
{
"name": "Postal code",
"id": "otherpostal_14",
"depid": "",
"widget": "text",
"input": "Hubli",
"validation":
{
"isRequired": true
}
},
{
"name": "Country",
"id": "othercountry_15",
"depid": "",
"widget": "dropdown",
"inputList": [
{
"name": "India",
"id": "1"
},
{
"name": "USA",
"id": "2"
},
{
"name": "Nepal",
"id": "3"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "State",
"id": "otherstate_16",
"depid": "othercountry_15",
"widget": "dropdown",
"inputList": [
{
"name": "Karnataka",
"id": "1",
"pid": "1"
},
{
"name": "Maharashtra",
"id": "2",
"pid": "1"
},
{
"name": "Andhra Pradesh",
"id": "3",
"pid": "1"
},
{
"name": "Karnataka",
"id": "4",
"pid": "1"
}
],
"validation":
{
"isRequired": true
}
},
{
"name": "City",
"widget": "dropdown",
"id": "othercity_17",
"depid": "otherstate_16",
"inputList": [
{
"name": "Hubli",
"id": "1",
"pid": "1"
},
{
"name": "Bangalore",
"id": "2",
"pid": "1"
},
{
"name": "Belgavi",
"id": "3",
"pid": "1"
}
],
"validation":
{
"isRequired": true
}
}
]
},
{
"sectionName": "Other Attendees",
"multiple": false,
"sectionList": [
{
"name": "Attendee Name",
"id": "otherattendeename_18",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
},
{
"name": "Speciality",
"id": "otherattendeespeciality_19",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
},
{
"name": "Comments",
"id": "otherattendeecom_20",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
}
]
},
{
"sectionName": "Attach Document(s)",
"multiple": true,
"sectionList": [
{
"name": "Document Name",
"id": "documentName_21",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
},
{
"name": "Description",
"id": "documentDescription_21",
"depid": "",
"widget": "text",
"input": "text",
"validation":
{
"isRequired": true
}
},
{
"name": "Choose file",
"id": "chooseFile_22",
"depid": "",
"widget": "button",
"input": "chooseFile",
"validation":
{
"isRequired": true,
"multipleFiles": true
}
}
]
},
{
"sectionName": "Notes",
"multiple": false,
"sectionList": [
{
"name": "Comments",
"id": "notescomments_22",
"depid": "",
"widget": "text",
"input": "textArea",
"validation":
{
"type": "maxchars",
"chars": "500",
"isRequired": true
}
}
]
}
]
}
]
}

View File

@ -0,0 +1,330 @@
{
"Interaction-form1": "Interaction-form1",
"intId": "IN01",
"intName": "InteractionForm1",
"data": {
"save": [
{
"sectionName": "Interaction Details",
"multipleSectionList": [
[
{
"name": "Interaction Date",
"id": "intdate_1",
"selectedValue": [
"2023-12-12"
]
},
{
"name": "Interaction Location",
"id": "intlocation_1",
"selectedValue": [
"3"
]
},
{
"name": "Interaction Type",
"id": "inttype_11",
"selectedValue": [
"12"
]
},
{
"name": "Interaction Category",
"id": "intcategory_21",
"selectedValue": [
"21",
"22"
]
},
{
"name": "Number of Attendees",
"id": "intattendees_2",
"selectedValue": [
"33"
]
},
{
"name": "Employee name",
"id": "intempname_31",
"selectedValue": [
"32"
]
},
{
"name": "Interaction ",
"id": "intcheck_121",
"selectedValue": [
"121",
"122",
"121"
]
},
{
"name": "Number of Attendees",
"id": "intrange_122",
"selectedValue": [
26
]
}
]
]
},
{
"sectionName": "Discussion Topic",
"multipleSectionList": [
[
{
"name": "Product",
"id": "discproduct_41",
"selectedValue": [
"42"
]
},
{
"name": "Discussion Type",
"id": "disctype_51",
"selectedValue": [
"53"
]
},
{
"name": "Discussion Topic",
"id": "disctopic_61",
"selectedValue": [
"Other",
"Lecture"
]
}
],
[
{
"name": "Product",
"id": "discproduct_41",
"selectedValue": [
"41"
]
},
{
"name": "Discussion Type",
"id": "disctype_51",
"selectedValue": [
"53"
]
},
{
"name": "Discussion Topic",
"id": "disctopic_61",
"selectedValue": [
"Mailing",
"Face to Face"
]
}
]
]
},
{
"sectionName": "Attendees",
"multipleSectionList": [
[
{
"name": "HCP Name",
"id": "attendeeshcpname_3",
"selectedValue": [
"hcp2"
]
},
{
"name": "Speciality",
"id": "attendeeshcpspeciality_4",
"selectedValue": [
"spec2"
]
},
{
"name": "Title",
"id": "attendeestitle_5",
"selectedValue": [
"title2"
]
}
],
[
{
"name": "HCP Name",
"id": "attendeeshcpname_3",
"selectedValue": [
"hcp1"
]
},
{
"name": "Speciality",
"id": "attendeeshcpspeciality_4",
"selectedValue": [
"spec1"
]
},
{
"name": "Title",
"id": "attendeestitle_5",
"selectedValue": [
"title1"
]
}
]
]
},
{
"sectionName": "Location",
"multipleSectionList": [
[
{
"name": "Location",
"id": "primarylocation_6",
"selectedValue": []
},
{
"name": "Address",
"id": "primaryaddress_7",
"selectedValue": []
},
{
"name": "Country",
"id": "primarycountry_8",
"selectedValue": []
},
{
"name": "State",
"id": "primarystate_9",
"selectedValue": []
},
{
"name": "City",
"id": "primarycity_10",
"selectedValue": []
}
]
]
},
{
"sectionName": "Other",
"multipleSectionList": [
[
{
"name": "Address1",
"id": "otheraddress1_12",
"selectedValue": [
"addr1"
]
},
{
"name": "Address2",
"id": "otheraddress2_13",
"selectedValue": [
"addr2"
]
},
{
"name": "Postal code",
"id": "otherpostal_14",
"selectedValue": [
"580021"
]
},
{
"name": "Country",
"id": "othercountry_15",
"selectedValue": [
"1"
]
},
{
"name": "State",
"id": "otherstate_16",
"selectedValue": [
"1"
]
},
{
"name": "City",
"id": "othercity_17",
"selectedValue": [
"1"
]
}
]
]
},
{
"sectionName": "Other Attendees",
"multipleSectionList": [
[
{
"name": "Attendee Name",
"id": "otherattendeename_18",
"selectedValue": [
"att1"
]
},
{
"name": "Speciality",
"id": "otherattendeespeciality_19",
"selectedValue": [
"spec1"
]
},
{
"name": "Comments",
"id": "otherattendeecom_20",
"selectedValue": [
"comments"
]
}
]
]
},
{
"sectionName": "Attach Document(s)",
"multipleSectionList": [
[
{
"name": "Document Name",
"id": "documentName_21",
"selectedValue": [
"doc1"
]
},
{
"name": "Description",
"id": "documentDescription_21",
"selectedValue": [
"dec1"
]
},
{
"name": "Choose file",
"id": "chooseFile_22",
"selectedValue": [
"/Users/aissel/Library/Developer/CoreSimulator/Devices/1E435121-7E65-45C6-9E0B-411C8B9915F5/data/Containers/Data/Application/A4BBADD3-F511-4541-AC04-19F8F0776B18/tmp/Flutter Questionaire.pdf"
]
}
]
]
},
{
"sectionName": "Notes",
"multipleSectionList": [
[
{
"name": "Comments",
"id": "notescomments_22",
"selectedValue": [
"djkndjkwenjkfndejwfnjewbfjewbfje"
]
}
]
]
}
]
}
}

BIN
assets/images/p1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,192 @@
{
"save": [
{
"sectionName": "Interaction Details",
"multiple": [],
"sectionList": [
{
"param": "interactionDate",
"id": "intdate_1",
"selectedValue": []
},
{
"param": "interactionLocation",
"id": "intlocation_1",
"selectedValue": []
},
{
"param": "interactionType",
"id": "inttype_11",
"selectedValue": []
},
{
"param": "interactionCategory",
"id": "intcategory_21",
"selectedValue": []
},
{
"param": "numberOfAttendees",
"id": "intattendees_2",
"selectedValue": []
},
{
"param": "employeeName",
"id": "intempname_31",
"selectedValue": []
},
{
"param": "interactionCheckbox",
"id": "intcheck_121",
"selectedValue": []
}
]
},
{
"sectionName": "Discussion Topic",
"multiple": [],
"sectionList": [
{
"id": "discproduct_41",
"selectedValue": [],
"param": "product"
},
{
"param": "discussionType",
"id": "disctype_51",
"selectedValue": []
},
{
"param": "discussionTopic",
"id": "disctopic_61",
"selectedValue": []
},
{
"param": "add",
"id": "discadd",
"selectedValue": []
}
]
},
{
"sectionName": "Attendees",
"multiple": [],
"sectionList": [
{
"param": "hcpName",
"id": "attendeeshcpname_3",
"selectedValue": []
},
{
"param": "speciality",
"id": "attendeeshcpspeciality_4",
"selectedValue": []
},
{
"param": "attendeesTitle",
"id": "attendeestitle_5",
"selectedValue": []
}
]
},
{
"sectionName": "Location",
"multiple": [],
"sectionList": [
{
"param": "primaryLocation",
"id": "primarylocation_6",
"selectedValue": []
},
{
"param": "primaryAddress",
"id": "primaryaddress_7",
"selectedValue": []
},
{
"param": "primaryCountry",
"id": "primarycountry_8",
"selectedValue": []
},
{
"param": "primaryState",
"id": "primarystate_9",
"selectedValue": []
},
{
"param": "primaryCity",
"id": "primarycity_10",
"selectedValue": []
}
]
},
{
"sectionName": "Other",
"multiple": [],
"sectionList": [
{
"param": "otherAddress1",
"id": "otheraddress1_12",
"selectedValue": []
},
{
"param": "otherAddress2",
"id": "otheraddress2_13",
"selectedValue": []
},
{
"param": "otherPostalCode",
"id": "otherpostal_14",
"selectedValue": []
},
{
"param": "otherCountry",
"id": "othercountry_15",
"selectedValue": []
},
{
"param": "otherState",
"id": "otherstate_16",
"selectedValue": []
},
{
"param": "otherCity",
"widget": "dropdown",
"id": "othercity_17",
"selectedValue": []
}
]
},
{
"sectionName": "Other Attendees",
"multiple": [],
"sectionList": [
{
"param": "otherAttendeeName",
"id": "otherattendeename_18",
"selectedValue": []
},
{
"param": "otherAttendeeSpeciality",
"id": "otherattendeespeciality_19",
"selectedValue": []
},
{
"param": "otherAttendeeComments",
"id": "otherattendeecom_20",
"selectedValue": []
}
]
},
{
"sectionName": "Notes",
"multiple": [],
"sectionList": [
{
"id": "notescomments_22",
"selectedValue": [],
"param": "notesComments"
}
]
}
]
}

View File

@ -0,0 +1,270 @@
{
"save": [
{
"sectionName": "Interaction Details",
"multiple": false,
"sectionList": [
{
"name": "Interaction Date",
"id": "intdate_1",
"selectedValue": [
"23-11-2023"
]
},
{
"name": "Interaction Location",
"id": "intlocation_1",
"selectedValue": [
1
]
},
{
"name": "Interaction Type",
"id": "inttype_11",
"selectedValue": [
13
]
},
{
"name": "Interaction Category",
"id": "intcategory_21",
"selectedValue": [
22
]
},
{
"name": "Number of Attendees",
"id": "intattendees_2",
"selectedValue": [
"12"
]
},
{
"name": "Employee name",
"id": "intempname_31",
"selectedValue": [
"abcd"
]
},
{
"name": "Interaction ",
"id": "intcheck_121",
"selectedValue": [
122
]
},
{
"name": "Number of Attendees",
"param": "interactionRange",
"id": "intrange_122",
"selectedValue": [
"22"
]
}
]
},
{
"sectionName": "Discussion Topic",
"multiple": true,
"sectionList": {
"0": [
{
"name": "Product",
"id": "discproduct_41",
"selectedValue": [42]
},
{
"name": "Discussion Type",
"id": "disctype_51",
"selectedValue": [52]
},
{
"name": "Discussion Topic",
"id": "disctopic_61",
"selectedValue": [61,63]
}
],
"1" :[{
"name": "Product",
"id": "discproduct_41",
"selectedValue": [41]
},
{
"name": "Discussion Type",
"id": "disctype_51",
"selectedValue": [51]
},
{
"name": "Discussion Topic",
"id": "disctopic_61",
"selectedValue": [64,65]
}
]
}
},
{
"sectionName": "Attendees",
"multiple": true,
"sectionList": {
"0": [
{
"name": "HCP Name",
"id": "attendeeshcpname_3",
"selectedValue": ["hcp1"]
},
{
"name": "Speciality",
"id": "attendeeshcpspeciality_4",
"selectedValue": ["speciality1"]
},
{
"name": "Title",
"id": "attendeestitle_5",
"selectedValue": ["Title1"]
}
]
}
},
{
"sectionName": "Other",
"multiple": false,
"sectionList": [
{
"name": "Address1",
"id": "otheraddress1_12",
"selectedValue": ["address1"]
},
{
"name": "Address2",
"id": "otheraddress2_13",
"selectedValue": ["address2"]
},
{
"name": "Postal code",
"id": "otherpostal_14",
"selectedValue": ["580029"]
},
{
"name": "Country",
"id": "othercountry_15",
"selectedValue": [1]
},
{
"name": "State",
"id": "otherstate_16",
"selectedValue": [1],
"depid": "othercountry_15"
},
{
"name": "City",
"widget": "dropdown",
"id": "othercity_17",
"selectedValue": [2],
"depid": "otherstate_16"
}
]
},
{
"sectionName": "Other Attendees",
"multiple": false,
"sectionList": [
{
"name": "Attendee Name",
"id": "otherattendeename_18",
"selectedValue": ["attendee1"]
},
{
"name": "Speciality",
"id": "otherattendeespeciality_19",
"selectedValue": ["speciality1"]
},
{
"name": "Comments",
"id": "otherattendeecom_20",
"selectedValue": ["comments"]
}
]
},
{
"sectionName": "Attach Document(s)",
"multiple": true,
"sectionList": {
"0": [
{
"name": "Document Name",
"id": "documentName_21",
"selectedValue": ["doc1"]
},
{
"name": "Description",
"id": "documentDescription_21",
"selectedValue": ["desc1"]
},
{
"name": "Choose file",
"id": "chooseFile_22",
"selectedValue": []
}
]
}
},
{
"sectionName": "Notes",
"multiple": false,
"sectionList": [
{
"name": "Comments",
"id": "notescomments_22",
"selectedValue": ["notesss"]
}
]
}
]
}

34
ios/.gitignore vendored Normal file
View File

@ -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

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>11.0</string>
</dict>
</plist>

View File

@ -0,0 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"

View File

@ -0,0 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"

51
ios/Podfile Normal file
View File

@ -0,0 +1,51 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '11.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!
use_modular_headers!
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)
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
##comment dart: PermissionGroup.camera
'PERMISSION_CAMERA=1'
]
end
end
end

143
ios/Podfile.lock Normal file
View File

@ -0,0 +1,143 @@
PODS:
- asset_webview (0.0.1):
- Flutter
- connectivity_plus (0.0.1):
- Flutter
- ReachabilitySwift
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.4):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.4)
- DKImagePickerController/PhotoGallery (4.3.4):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.4)
- DKPhotoGallery (0.0.17):
- DKPhotoGallery/Core (= 0.0.17)
- DKPhotoGallery/Model (= 0.0.17)
- DKPhotoGallery/Preview (= 0.0.17)
- DKPhotoGallery/Resource (= 0.0.17)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.17):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.17):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Flutter (1.0.0)
- flutter_inappwebview (0.0.1):
- Flutter
- flutter_inappwebview/Core (= 0.0.1)
- OrderedSet (~> 5.0)
- flutter_inappwebview/Core (0.0.1):
- Flutter
- OrderedSet (~> 5.0)
- image_picker_ios (0.0.1):
- Flutter
- OrderedSet (5.0.0)
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.1.1):
- Flutter
- ReachabilitySwift (5.0.0)
- SDWebImage (5.18.3):
- SDWebImage/Core (= 5.18.3)
- SDWebImage/Core (5.18.3)
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- SwiftyGif (5.4.4)
- url_launcher_ios (0.0.1):
- Flutter
DEPENDENCIES:
- asset_webview (from `.symlinks/plugins/asset_webview/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/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`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- OrderedSet
- ReachabilitySwift
- SDWebImage
- SwiftyGif
EXTERNAL SOURCES:
asset_webview:
:path: ".symlinks/plugins/asset_webview/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
Flutter:
:path: Flutter
flutter_inappwebview:
:path: ".symlinks/plugins/flutter_inappwebview/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/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"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
asset_webview: 6ea3e602c34e111b4d808f8c09b8d31fbe5c27e4
connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e
device_info_plus: 7545d84d8d1b896cb16a4ff98c19f07ec4b298ea
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_inappwebview: 50b55a88f5dddadc9e741a7caf72f378116e2156
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
package_info_plus: fd030dabf36271f146f1f3beacd48f564b0f17f7
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
SDWebImage: 96e0c18ef14010b7485210e92fac888587ebb958
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
PODFILE CHECKSUM: 108feb553cebadca4bc232556afce4dd4c21da4c
COCOAPODS: 1.12.1

View File

@ -0,0 +1,723 @@
// !$*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 */; };
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 */; };
C31E35EEB2398B4F234A1E75 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1FC98C2E0DBCD9E3535A9E9 /* Pods_RunnerTests.framework */; };
D1BA9C581F7955A86CF464FE /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F1ACEE8435625DFEA91E510 /* 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 = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
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 = "<group>"; };
3F1ACEE8435625DFEA91E510 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
61802FB87C6ED83EA17D2748 /* 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 = "<group>"; };
6F29B9E8E3A67DDCDA737B63 /* 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 = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
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 = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B18AA3F7D02500A1D439FFAE /* 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 = "<group>"; };
C8D652D42F730B2FE61546DB /* 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 = "<group>"; };
E80C17FFDE772FFF55A639AA /* 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 = "<group>"; };
EBE1ED2020E310FBF3EE5F71 /* 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 = "<group>"; };
F1FC98C2E0DBCD9E3535A9E9 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
64F90FA7C647ED29DA000BE4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
C31E35EEB2398B4F234A1E75 /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D1BA9C581F7955A86CF464FE /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
331C8082294A63A400263BE5 /* RunnerTests */ = {
isa = PBXGroup;
children = (
331C807B294A618700263BE5 /* RunnerTests.swift */,
);
path = RunnerTests;
sourceTree = "<group>";
};
76284D4CC7269E839E1A4BB7 /* Pods */ = {
isa = PBXGroup;
children = (
6F29B9E8E3A67DDCDA737B63 /* Pods-Runner.debug.xcconfig */,
C8D652D42F730B2FE61546DB /* Pods-Runner.release.xcconfig */,
61802FB87C6ED83EA17D2748 /* Pods-Runner.profile.xcconfig */,
EBE1ED2020E310FBF3EE5F71 /* Pods-RunnerTests.debug.xcconfig */,
E80C17FFDE772FFF55A639AA /* Pods-RunnerTests.release.xcconfig */,
B18AA3F7D02500A1D439FFAE /* Pods-RunnerTests.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
);
name = Flutter;
sourceTree = "<group>";
};
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
76284D4CC7269E839E1A4BB7 /* Pods */,
D7728823995CFB99C9458C06 /* Frameworks */,
);
sourceTree = "<group>";
};
97C146EF1CF9000F007C117D /* Products */ = {
isa = PBXGroup;
children = (
97C146EE1CF9000F007C117D /* Runner.app */,
331C8081294A63A400263BE5 /* RunnerTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
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 = "<group>";
};
D7728823995CFB99C9458C06 /* Frameworks */ = {
isa = PBXGroup;
children = (
3F1ACEE8435625DFEA91E510 /* Pods_Runner.framework */,
F1FC98C2E0DBCD9E3535A9E9 /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
331C8080294A63A400263BE5 /* RunnerTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
36644340C24CC868C6738EFD /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */,
64F90FA7C647ED29DA000BE4 /* 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 = (
CB8DB5C6BEBB5C81A0C8FEBF /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
A15ED1C91FF7A51D13A38E8F /* [CP] Embed Pods Frameworks */,
);
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 = {
LastUpgradeCheck = 1430;
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 */
36644340C24CC868C6738EFD /* [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;
};
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";
};
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";
};
A15ED1C91FF7A51D13A38E8F /* [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;
};
CB8DB5C6BEBB5C81A0C8FEBF /* [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;
};
/* 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 = "<group>";
};
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C147001CF9000F007C117D /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
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;
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 = 11.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 = 69ERN967NS;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.pwaIos;
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 = EBE1ED2020E310FBF3EE5F71 /* 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.pwaIos.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 = E80C17FFDE772FFF55A639AA /* 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.pwaIos.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 = B18AA3F7D02500A1D439FFAE /* 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.pwaIos.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;
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;
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 = 11.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;
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;
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 = 11.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 = 69ERN967NS;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.pwaIos;
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 = 69ERN967NS;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.pwaIos;
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 */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<Testables>
<TestableReference
skipped = "NO"
parallelizable = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "331C8080294A63A400263BE5"
BuildableName = "RunnerTests.xctest"
BlueprintName = "RunnerTests"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

View File

@ -0,0 +1,13 @@
import UIKit
import Flutter
@UIApplicationMain
@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)
}
}

View File

@ -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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

View File

@ -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.

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
</imageView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
<resources>
<image name="LaunchImage" width="168" height="185"/>
</resources>
</document>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--Flutter View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

68
ios/Runner/Info.plist Normal file
View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key></key>
<string></string>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>Pwa Ios</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>pwa_ios</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>Upload image from camera for screen background</string>
<key>NSMicrophoneUsageDescription</key>
<string>Post videos to profile</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Upload images for screen background</string>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>io.flutter.embedded_views_preview</key>
<string>YES</string>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1 @@
#import "GeneratedPluginRegistrant.h"

View File

@ -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.
}
}

290
lib/main.dart Normal file
View File

@ -0,0 +1,290 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import 'package:pwa_ios/model/interaction_config_data.dart';
import 'package:pwa_ios/model/interaction_data.dart';
import 'package:pwa_ios/model/json_form_data.dart';
import 'package:pwa_ios/model/save_interaction.dart';
import 'package:pwa_ios/model/userdata_model.dart';
import 'package:pwa_ios/repository/hive_repository.dart';
import 'package:pwa_ios/utils/mockapi.dart';
import 'package:pwa_ios/utils/sessionmanager.dart';
import 'package:pwa_ios/utils/util.dart';
import 'package:pwa_ios/viewmodel/configprovider.dart';
import 'package:pwa_ios/viewmodel/interactionprovider.dart';
import 'package:pwa_ios/viewmodel/loginprovider.dart';
import 'package:pwa_ios/viewmodel/viewinteractionprovider.dart';
import 'package:pwa_ios/views/home_screen.dart';
import 'package:pwa_ios/views/konectarpage.dart';
import 'package:pwa_ios/views/login.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:openid_client/openid_client.dart';
import 'package:flutter_web_plugins/url_strategy.dart';
import 'package:internet_connection_checker/internet_connection_checker.dart';
//import 'openid/openid_io.dart' if (dart.library.html) 'openid_browser.dart';
const keycloakUri = 'https://sso.konectar.io/auth/realms/konectar';
const scopes = ['profile'];
Credential? credential;
late final Client client;
UserInfo? userInfo;
Timer? mytimer;
// Future<Client> getClient() async {
// var uri = Uri.parse(keycloakUri);
// if (!kIsWeb && Platform.isAndroid)
// var clientId = 'appwildcard';
// var issuer = await Issuer.discover(uri);
// return Client(issuer, clientId);
// }
// _asyncMethod() async {
// //client = await getClient();
// var credential = await authenticate(client, scopes: scopes);
// userInfo = await credential.getUserInfo();
// // setState(() {
// // });
// }
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
//await execute(InternetConnectionChecker());
// Create customized instance which can be registered via dependency injection
// final InternetConnectionChecker customInstance =
// InternetConnectionChecker.createInstance(
// checkTimeout: const Duration(milliseconds: 1),
// checkInterval: const Duration(milliseconds: 1),
// );
// // Check internet connection with created instance
// await execute(customInstance);
await Hive.initFlutter();
Hive.registerAdapter(SaveInteractionAdapter());
Hive.registerAdapter(InteractionConfigDataAdapter());
Hive.registerAdapter(InteractionResultDataAdapter());
Hive.registerAdapter(FormFieldDataAdapter());
Hive.registerAdapter(ValidationAdapter());
Hive.registerAdapter(SectionListAdapter());
Hive.registerAdapter(InputClassAdapter());
Hive.registerAdapter(InteractionWidgetAdapter());
Hive.registerAdapter(UserDataAdapter());
Hive.registerAdapter(SendSaveJsonAdapter());
Hive.registerAdapter(MultipleSectionListAdapter());
Hive.registerAdapter(SaveAdapter());
Hive.registerAdapter(SaveInteractionFormJsonAdapter());
// await Hive.openBox('InteractionDataBox');
// await Hive.openBox<UserData>("UserDataBox");
//await Hive.openBox('InteractionConfigDataBox');
await Hive.openBox<InteractionConfigData>('InteractionConfigDataBox');
// final ConfigDataProvider configDataProvider = ConfigDataProvider();
final ConfigDataProvider configDataProvider = ConfigDataProvider();
//configDataProvider = fetchInteactionConfigData();
// final ViewInteractionProvider viewInteractionProvider =
// ViewInteractionProvider();
// List<SaveInteraction> savedList =
// await viewInteractionProvider.getAllRecords();
// SendSavedDataJson json = SendSavedDataJson(data: savedList);
// print(json.toString());
// await MockApiCall().postFormData(json).then((value) async {
// await configDataProvider.initConfigUIData().then((value) {
// // activateTimer();
// });
// });
await configDataProvider.initConfigUIData();
// activateTimer();
// await provider.initConfigUIData();
if (!kIsWeb &&
kDebugMode &&
defaultTargetPlatform == TargetPlatform.android) {
await InAppWebViewController.setWebContentsDebuggingEnabled(kDebugMode);
}
// await initDirectory();
// await PushNotificationService().setupInteractedMessage();
// RemoteMessage? initialMessage =
// await FirebaseMessaging.instance.getInitialMessage();
// if (initialMessage != null) {
// // App received a notification when it was killed
// }
WidgetsFlutterBinding.ensureInitialized();
// FirebaseMessaging.instance.getToken().then((value) {
// String? token = value;
// print("token: $token");
// });
usePathUrlStrategy();
// client = await getClient();
// //credential = await getRedirectResult(client, scopes: scopes);
// credential = await authenticate(client, scopes: scopes);
// userInfo = await credential!.getUserInfo();
//runApp(const MyApp());
SharedPreferences.getInstance().then((instance) {
//StorageService().sharedPreferencesInstance = instance;
bool isloggedIn = instance.getBool('isloggedin') ?? false;
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => InteractionProvider()),
ChangeNotifierProvider(create: (_) => LoginProvider()),
ChangeNotifierProvider(create: (_) => ViewInteractionProvider()),
ChangeNotifierProvider(create: (_) => ConfigDataProvider()),
ChangeNotifierProvider<HiveDataRepository>(
create: (_) => HiveDataRepository(
Hive.box<InteractionConfigData>('InteractionConfigDataBox'))),
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Dynamic Links Example',
initialRoute: '/',
routes: <String, WidgetBuilder>{
'/': (BuildContext context) => FutureBuilder<bool>(
future: SessionManager().isLoggedIn(),
builder: (context, snapshot) {
print("Data_is : $snapshot");
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
final isLoggedIn = snapshot.data ?? false;
print("isLoggedIn_is : $isLoggedIn");
return isLoggedIn ? HomeScreen() : LoginScreen();
}
},
), //userInfo != null ? const Home() : OpenidScreen(credential: credential,),
// '/details': (BuildContext context) => const HomeScreen(),
},
),
),
);
});
}
cancelTimer() {
mytimer?.cancel();
}
activateTimer() {
mytimer = Timer.periodic(const Duration(minutes: 5), (timer) async {
//code to run on every 2 minutes 5 seconds
final ConfigDataProvider configDataProvider = ConfigDataProvider();
final ViewInteractionProvider viewInteractionProvider =
ViewInteractionProvider();
List<SaveInteraction> savedList =
await viewInteractionProvider.getAllRecords();
SendSavedDataJson json = SendSavedDataJson(data: savedList);
print(json.toString());
await MockApiCall().postFormData(json).then((value) async {
await configDataProvider.initConfigUIData().then((value) {
// activateTimer();
});
});
print("Interval called 2 mins");
});
print("timer");
print(mytimer?.isActive);
}
Future<void> execute(
InternetConnectionChecker internetConnectionChecker,
) async {
// Simple check to see if we have Internet
// ignore: avoid_print
print('''The statement 'this machine is connected to the Internet' is: ''');
final bool isConnected = await InternetConnectionChecker().hasConnection;
// ignore: avoid_print
print(
isConnected.toString(),
);
// returns a bool
// We can also get an enum instead of a bool
// ignore: avoid_print
print(
'Current status: ${await InternetConnectionChecker().connectionStatus}',
);
// Prints either InternetConnectionStatus.connected
// or InternetConnectionStatus.disconnected
// actively listen for status updates
final StreamSubscription<InternetConnectionStatus> listener =
InternetConnectionChecker().onStatusChange.listen(
(InternetConnectionStatus status) {
switch (status) {
case InternetConnectionStatus.connected:
// ignore: avoid_print
print('Data connection is available.');
break;
case InternetConnectionStatus.disconnected:
// ignore: avoid_print
print('You are disconnected from the internet.');
break;
}
},
);
// close listener after 30 seconds, so the program doesn't run forever
await Future<void>.delayed(const Duration(seconds: 30));
await listener.cancel();
}
class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> with WidgetsBindingObserver {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Center(
child: TextButton(
onPressed: () {
// Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (context) => MyApp()));
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const MyApp()),
);
},
child: Text('click'),
),
),
),
);
}
@override
void dispose() {
Hive.close();
super.dispose();
}
}

View File

@ -0,0 +1,48 @@
import 'package:hive_flutter/hive_flutter.dart';
import 'package:pwa_ios/model/interaction_data.dart';
part 'interaction_config_data.g.dart';
class UIDataResponse {
bool success;
String message;
List<FormFieldData> formFields;
UIDataResponse({
required this.success,
required this.message,
required this.formFields,
});
factory UIDataResponse.fromJson(Map<String, dynamic> json) => UIDataResponse(
success: json["success"],
message: json["message"],
formFields: List<FormFieldData>.from(
json["form-fields"].map((x) => FormFieldData.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"success": success,
"message": message,
"form-fields": List<dynamic>.from(formFields.map((x) => x.toJson())),
};
}
@HiveType(typeId: 19)
class InteractionConfigData {
@HiveField(1)
InteractionResultData widgets;
@HiveField(2)
String id;
@HiveField(3)
String name;
InteractionConfigData({
required this.widgets,
required this.id,
required this.name,
});
Map<String, dynamic> toJson() => {"widgets": widgets};
}

View File

@ -0,0 +1,47 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'interaction_config_data.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class InteractionConfigDataAdapter extends TypeAdapter<InteractionConfigData> {
@override
final int typeId = 19;
@override
InteractionConfigData read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return InteractionConfigData(
widgets: fields[1] as InteractionResultData,
id: fields[2] as String,
name: fields[3] as String,
);
}
@override
void write(BinaryWriter writer, InteractionConfigData obj) {
writer
..writeByte(3)
..writeByte(1)
..write(obj.widgets)
..writeByte(2)
..write(obj.id)
..writeByte(3)
..write(obj.name);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is InteractionConfigDataAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@ -0,0 +1,330 @@
// To parse this JSON data, do
//
// final welcome = welcomeFromJson(jsonString);
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:pwa_ios/model/json_form_data.dart';
part 'interaction_data.g.dart';
// InteractionResultData welcomeFromJson(String str) =>
// InteractionResultData.fromJson(json.decode(str));
// String welcomeToJson(InteractionResultData data) => json.encode(data.toJson());
ResponseData ResponseDataFromJson(Map<String, dynamic> str) =>
ResponseData.fromJson(str);
String ResponseDataToJson(ResponseData data) => json.encode(data.toJson());
class ResponseData {
List<InteractionResultData> data;
ResponseData({
required this.data,
});
factory ResponseData.fromJson(Map<String, dynamic> json) => ResponseData(
data: List<InteractionResultData>.from(
json["data"].map((x) => InteractionResultData.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"data": List<dynamic>.from(data.map((x) => x.toJson())),
};
}
@HiveType(typeId: 11)
class InteractionResultData {
@HiveField(0)
List<FormFieldData> result;
@HiveField(1)
String id;
@HiveField(2)
String name;
InteractionResultData(
{required this.result, required this.id, required this.name});
factory InteractionResultData.fromJson(Map<String, dynamic> json) =>
InteractionResultData(
result: List<FormFieldData>.from(
json["form-fields"].map((x) => FormFieldData.fromJson(x))),
id: json["id"],
name: json["name"],
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"result": List<dynamic>.from(result.map((x) => x.toJson())),
};
Map<String, dynamic> saveToJson() => {
"save": List<dynamic>.from(result.map((x) => x.saveToJson())),
};
}
@HiveType(typeId: 4)
class FormFieldData {
@HiveField(0)
String sectionName;
@HiveField(1)
bool multiple;
@HiveField(2)
List<SectionList> sectionList;
@HiveField(3)
List<SectionList>? multipleList;
FormFieldData({
required this.sectionName,
required this.multiple,
required this.sectionList,
this.multipleList,
});
factory FormFieldData.fromJson(Map<String, dynamic> json) => FormFieldData(
sectionName: json["sectionName"],
multiple: json["multiple"],
sectionList: List<SectionList>.from(
json["sectionList"].map((x) => SectionList.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"sectionName": sectionName,
"multiple": multiple,
"sectionList": List<dynamic>.from(sectionList.map((x) => x.toJson())),
};
Map<String, dynamic> saveToJson() => {
"sectionName": sectionName,
};
}
@HiveType(typeId: 5)
class SectionList {
@HiveField(0)
String name;
@HiveField(1)
String? param;
@HiveField(2)
String id;
@HiveField(3)
int? gid;
@HiveField(4)
List<dynamic>? selectedValue;
@HiveField(5)
String? depid;
@HiveField(6)
InteractionWidget? widget;
@HiveField(7)
String? input;
@HiveField(8)
List<InputClass>? inputList;
@HiveField(9)
bool? isRequired;
TextEditingController? controller;
@HiveField(10)
String? value;
@HiveField(11)
String? selectedId;
@HiveField(12)
InputClass? selectedObject;
@HiveField(13)
Validation? validation;
@HiveField(14)
String? chars;
@HiveField(15)
List<dynamic>? extension;
@HiveField(16)
List<dynamic>? fileName;
@HiveField(17)
List<dynamic>? tempselectedValue;
@HiveField(18)
String? max;
@HiveField(19)
String? min;
SectionList(
{required this.name,
this.param,
required this.id,
this.selectedValue,
this.depid,
this.widget,
this.input,
this.gid,
this.inputList,
this.isRequired,
this.controller,
this.selectedObject,
this.selectedId,
this.validation,
this.chars,
this.extension,
this.fileName,
this.tempselectedValue,
this.max,
this.min,
this.value});
factory SectionList.fromJson(Map<String, dynamic> json) => SectionList(
name: json["name"],
// param: json["param"],
id: json["id"],
// selectedValue: List<dynamic>.from(json["selectedValue"].map((x) => x)),
depid: json["depid"],
widget: widgetValues.map[json["widget"]]!,
input: json["input"],
inputList: json["inputList"] == null
? []
: List<InputClass>.from(
json["inputList"]!.map((x) => InputClass.fromJson(x))),
validation: Validation.fromJson(json["validation"]),
// chars: json["chars"],
max: json["max"],
min: json["min"],
);
Map<String, dynamic> toJson() => {
"name": name,
"param": param,
"id": id,
"selectedValue": List<dynamic>.from(selectedValue!.map((x) => x)),
"depid": depid,
"widget": widgetValues.reverse[widget],
"input": input,
"inputList": inputList == null
? []
: List<dynamic>.from(inputList!.map((x) => x.toJson())),
"isRequired": isRequired,
"chars": chars,
"fileName": List<dynamic>.from(fileName!.map((x) => x)),
"extension": List<dynamic>.from(extension!.map((x) => x)),
"max": max,
"min": min,
};
Map<String, dynamic> saveToJson() => {
"name": name,
"param": param,
"id": id,
"selectedValue": List<dynamic>.from(selectedValue!.map((x) => x)),
};
}
@HiveType(typeId: 6)
class InputClass {
@HiveField(0)
dynamic id;
@HiveField(1)
String name;
@HiveField(2)
bool? ischecked;
@HiveField(3)
String? selectedId;
@HiveField(4)
String? selectedName;
@HiveField(5)
List<String>? selectedItems;
@HiveField(6)
String? pid;
InputClass(
{required this.id,
required this.name,
this.ischecked,
this.pid,
this.selectedId,
this.selectedItems,
this.selectedName});
factory InputClass.fromJson(Map<String, dynamic> json) => InputClass(
id: json["id"],
name: json["name"],
pid: json["pid"],
);
Map<String, dynamic> toJson() => {"id": id, "name": name, "pid": pid};
}
@HiveType(typeId: 18)
class Validation {
@HiveField(0)
bool isRequired;
@HiveField(1)
bool? multipleFiles;
@HiveField(2)
String? type;
@HiveField(3)
String? chars;
Validation({
required this.isRequired,
this.multipleFiles,
this.type,
this.chars,
});
factory Validation.fromJson(Map<String, dynamic> json) => Validation(
isRequired: json["isRequired"],
multipleFiles: json["multipleFiles"],
type: json["type"],
chars: json["chars"],
);
Map<String, dynamic> toJson() => {
"isRequired": isRequired,
"multipleFiles": multipleFiles,
"type": type,
"chars": chars,
};
}
@HiveType(typeId: 12)
enum InteractionWidget {
@HiveField(0)
CHECKBOX,
@HiveField(1)
DROPDOWN,
@HiveField(2)
LABEL,
@HiveField(3)
RADIO,
@HiveField(4)
TEXT,
@HiveField(5)
BUTTON,
@HiveField(6)
AUTOCOMPLETE,
@HiveField(7)
MULTISELECT,
@HiveField(8)
RANGESLIDER
}
final widgetValues = EnumValues({
"checkbox": InteractionWidget.CHECKBOX,
"dropdown": InteractionWidget.DROPDOWN,
"label": InteractionWidget.LABEL,
"radio": InteractionWidget.RADIO,
"text": InteractionWidget.TEXT,
"button": InteractionWidget.BUTTON,
"autocomplete": InteractionWidget.AUTOCOMPLETE,
"multiselect": InteractionWidget.MULTISELECT,
"rangeslider": InteractionWidget.RANGESLIDER
});
class EnumValues<T> {
Map<String, T> map;
late Map<T, String> reverseMap;
EnumValues(this.map);
Map<T, String> get reverse {
reverseMap = map.map((k, v) => MapEntry(v, k));
return reverseMap;
}
}

View File

@ -0,0 +1,350 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'interaction_data.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class InteractionResultDataAdapter extends TypeAdapter<InteractionResultData> {
@override
final int typeId = 11;
@override
InteractionResultData read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return InteractionResultData(
result: (fields[0] as List).cast<FormFieldData>(),
id: fields[1] as String,
name: fields[2] as String,
);
}
@override
void write(BinaryWriter writer, InteractionResultData obj) {
writer
..writeByte(3)
..writeByte(0)
..write(obj.result)
..writeByte(1)
..write(obj.id)
..writeByte(2)
..write(obj.name);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is InteractionResultDataAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class FormFieldDataAdapter extends TypeAdapter<FormFieldData> {
@override
final int typeId = 4;
@override
FormFieldData read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return FormFieldData(
sectionName: fields[0] as String,
multiple: fields[1] as bool,
sectionList: (fields[2] as List).cast<SectionList>(),
multipleList: (fields[3] as List?)?.cast<SectionList>(),
);
}
@override
void write(BinaryWriter writer, FormFieldData obj) {
writer
..writeByte(4)
..writeByte(0)
..write(obj.sectionName)
..writeByte(1)
..write(obj.multiple)
..writeByte(2)
..write(obj.sectionList)
..writeByte(3)
..write(obj.multipleList);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is FormFieldDataAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class SectionListAdapter extends TypeAdapter<SectionList> {
@override
final int typeId = 5;
@override
SectionList read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return SectionList(
name: fields[0] as String,
param: fields[1] as String?,
id: fields[2] as String,
selectedValue: (fields[4] as List?)?.cast<dynamic>(),
depid: fields[5] as String?,
widget: fields[6] as InteractionWidget?,
input: fields[7] as String?,
gid: fields[3] as int?,
inputList: (fields[8] as List?)?.cast<InputClass>(),
isRequired: fields[9] as bool?,
selectedObject: fields[12] as InputClass?,
selectedId: fields[11] as String?,
validation: fields[13] as Validation?,
chars: fields[14] as String?,
extension: (fields[15] as List?)?.cast<dynamic>(),
fileName: (fields[16] as List?)?.cast<dynamic>(),
tempselectedValue: (fields[17] as List?)?.cast<dynamic>(),
max: fields[18] as String?,
min: fields[19] as String?,
value: fields[10] as String?,
);
}
@override
void write(BinaryWriter writer, SectionList obj) {
writer
..writeByte(20)
..writeByte(0)
..write(obj.name)
..writeByte(1)
..write(obj.param)
..writeByte(2)
..write(obj.id)
..writeByte(3)
..write(obj.gid)
..writeByte(4)
..write(obj.selectedValue)
..writeByte(5)
..write(obj.depid)
..writeByte(6)
..write(obj.widget)
..writeByte(7)
..write(obj.input)
..writeByte(8)
..write(obj.inputList)
..writeByte(9)
..write(obj.isRequired)
..writeByte(10)
..write(obj.value)
..writeByte(11)
..write(obj.selectedId)
..writeByte(12)
..write(obj.selectedObject)
..writeByte(13)
..write(obj.validation)
..writeByte(14)
..write(obj.chars)
..writeByte(15)
..write(obj.extension)
..writeByte(16)
..write(obj.fileName)
..writeByte(17)
..write(obj.tempselectedValue)
..writeByte(18)
..write(obj.max)
..writeByte(19)
..write(obj.min);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SectionListAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class InputClassAdapter extends TypeAdapter<InputClass> {
@override
final int typeId = 6;
@override
InputClass read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return InputClass(
id: fields[0] as dynamic,
name: fields[1] as String,
ischecked: fields[2] as bool?,
pid: fields[6] as String?,
selectedId: fields[3] as String?,
selectedItems: (fields[5] as List?)?.cast<String>(),
selectedName: fields[4] as String?,
);
}
@override
void write(BinaryWriter writer, InputClass obj) {
writer
..writeByte(7)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.name)
..writeByte(2)
..write(obj.ischecked)
..writeByte(3)
..write(obj.selectedId)
..writeByte(4)
..write(obj.selectedName)
..writeByte(5)
..write(obj.selectedItems)
..writeByte(6)
..write(obj.pid);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is InputClassAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class ValidationAdapter extends TypeAdapter<Validation> {
@override
final int typeId = 18;
@override
Validation read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return Validation(
isRequired: fields[0] as bool,
multipleFiles: fields[1] as bool?,
type: fields[2] as String?,
chars: fields[3] as String?,
);
}
@override
void write(BinaryWriter writer, Validation obj) {
writer
..writeByte(4)
..writeByte(0)
..write(obj.isRequired)
..writeByte(1)
..write(obj.multipleFiles)
..writeByte(2)
..write(obj.type)
..writeByte(3)
..write(obj.chars);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is ValidationAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class InteractionWidgetAdapter extends TypeAdapter<InteractionWidget> {
@override
final int typeId = 12;
@override
InteractionWidget read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return InteractionWidget.CHECKBOX;
case 1:
return InteractionWidget.DROPDOWN;
case 2:
return InteractionWidget.LABEL;
case 3:
return InteractionWidget.RADIO;
case 4:
return InteractionWidget.TEXT;
case 5:
return InteractionWidget.BUTTON;
case 6:
return InteractionWidget.AUTOCOMPLETE;
case 7:
return InteractionWidget.MULTISELECT;
case 8:
return InteractionWidget.RANGESLIDER;
default:
return InteractionWidget.CHECKBOX;
}
}
@override
void write(BinaryWriter writer, InteractionWidget obj) {
switch (obj) {
case InteractionWidget.CHECKBOX:
writer.writeByte(0);
break;
case InteractionWidget.DROPDOWN:
writer.writeByte(1);
break;
case InteractionWidget.LABEL:
writer.writeByte(2);
break;
case InteractionWidget.RADIO:
writer.writeByte(3);
break;
case InteractionWidget.TEXT:
writer.writeByte(4);
break;
case InteractionWidget.BUTTON:
writer.writeByte(5);
break;
case InteractionWidget.AUTOCOMPLETE:
writer.writeByte(6);
break;
case InteractionWidget.MULTISELECT:
writer.writeByte(7);
break;
case InteractionWidget.RANGESLIDER:
writer.writeByte(8);
break;
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is InteractionWidgetAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@ -0,0 +1,135 @@
// To parse this JSON data, do
//
// final saveInteractionFormJson = saveInteractionFormJsonFromJson(jsonString);
import 'dart:convert';
import 'package:hive_flutter/hive_flutter.dart';
part 'json_form_data.g.dart';
SaveInteractionFormJson saveInteractionFormJsonFromJson(String str) =>
SaveInteractionFormJson.fromJson(json.decode(str));
String saveInteractionFormJsonToJson(DataJson data) =>
json.encode(data.toJson());
String saveFormJsonToJson(SendSaveJson data) => json.encode(data.toJson());
class DataJson {
SendSaveJson sendSaveJson;
DataJson({required this.sendSaveJson});
factory DataJson.fromJson(Map<String, dynamic> json) => DataJson(
sendSaveJson: json["data"],
);
Map<String, dynamic> toJson() => {
"data": sendSaveJson,
};
}
@HiveType(typeId: 14)
class SendSaveJson {
@HiveField(0)
List<SaveInteractionFormJson> savedList;
SendSaveJson({required this.savedList});
factory SendSaveJson.fromJson(Map<String, dynamic> json) => SendSaveJson(
savedList: List<SaveInteractionFormJson>.from(
json["data"].map((x) => SaveInteractionFormJson.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"data": List<dynamic>.from(savedList.map((x) => x.toJson())),
};
}
@HiveType(typeId: 15)
class SaveInteractionFormJson {
@HiveField(0)
String interactionForm1;
@HiveField(1)
String intId;
@HiveField(2)
String intName;
@HiveField(3)
List<Save> save;
SaveInteractionFormJson({
required this.interactionForm1,
required this.intId,
required this.intName,
required this.save,
});
factory SaveInteractionFormJson.fromJson(Map<String, dynamic> json) =>
SaveInteractionFormJson(
interactionForm1: json["Interaction-form1"],
intId: json["intId"],
intName: json["intName"],
save: List<Save>.from(json["data"].map((x) => Save.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"id": intId,
"page": intName,
"data": List<dynamic>.from(save.map((x) => x.toJson())),
};
}
@HiveType(typeId: 16)
class Save {
@HiveField(0)
String sectionName;
@HiveField(1)
List<List<MultipleSectionList>> multipleSectionList;
Save({
required this.sectionName,
required this.multipleSectionList,
});
factory Save.fromJson(Map<String, dynamic> json) => Save(
sectionName: json["sectionName"],
multipleSectionList: List<List<MultipleSectionList>>.from(
json["multipleSectionList"].map((x) =>
List<MultipleSectionList>.from(
x.map((x) => MultipleSectionList.fromJson(x))))),
);
Map<String, dynamic> toJson() => {
"sectionName": sectionName,
"multipleSectionList": List<dynamic>.from(multipleSectionList
.map((x) => List<dynamic>.from(x.map((x) => x.toJson())))),
};
}
@HiveType(typeId: 17)
class MultipleSectionList {
@HiveField(0)
String id;
@HiveField(1)
List<dynamic> selectedValue;
@HiveField(2)
List<dynamic>? fileName;
@HiveField(3)
List<dynamic>? extension;
MultipleSectionList(
{required this.id,
required this.selectedValue,
this.extension,
this.fileName});
factory MultipleSectionList.fromJson(Map<String, dynamic> json) =>
MultipleSectionList(
id: json["id"],
selectedValue: List<dynamic>.from(json["selectedValue"].map((x) => x)),
);
Map<String, dynamic> toJson() => {
"id": id,
"selectedValue": List<dynamic>.from(selectedValue.map((x) => x)),
"extension": extension != null
? List<dynamic>.from(extension!.map((x) => x))
: [],
"fileName":
fileName != null ? List<dynamic>.from(fileName!.map((x) => x)) : [],
};
}

View File

@ -0,0 +1,167 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'json_form_data.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class SendSaveJsonAdapter extends TypeAdapter<SendSaveJson> {
@override
final int typeId = 14;
@override
SendSaveJson read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return SendSaveJson(
savedList: (fields[0] as List).cast<SaveInteractionFormJson>(),
);
}
@override
void write(BinaryWriter writer, SendSaveJson obj) {
writer
..writeByte(1)
..writeByte(0)
..write(obj.savedList);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SendSaveJsonAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class SaveInteractionFormJsonAdapter
extends TypeAdapter<SaveInteractionFormJson> {
@override
final int typeId = 15;
@override
SaveInteractionFormJson read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return SaveInteractionFormJson(
interactionForm1: fields[0] as String,
intId: fields[1] as String,
intName: fields[2] as String,
save: (fields[3] as List).cast<Save>(),
);
}
@override
void write(BinaryWriter writer, SaveInteractionFormJson obj) {
writer
..writeByte(4)
..writeByte(0)
..write(obj.interactionForm1)
..writeByte(1)
..write(obj.intId)
..writeByte(2)
..write(obj.intName)
..writeByte(3)
..write(obj.save);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SaveInteractionFormJsonAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class SaveAdapter extends TypeAdapter<Save> {
@override
final int typeId = 16;
@override
Save read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return Save(
sectionName: fields[0] as String,
multipleSectionList: (fields[1] as List)
.map((dynamic e) => (e as List).cast<MultipleSectionList>())
.toList(),
);
}
@override
void write(BinaryWriter writer, Save obj) {
writer
..writeByte(2)
..writeByte(0)
..write(obj.sectionName)
..writeByte(1)
..write(obj.multipleSectionList);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SaveAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class MultipleSectionListAdapter extends TypeAdapter<MultipleSectionList> {
@override
final int typeId = 17;
@override
MultipleSectionList read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return MultipleSectionList(
id: fields[0] as String,
selectedValue: (fields[1] as List).cast<dynamic>(),
extension: (fields[3] as List?)?.cast<dynamic>(),
fileName: (fields[2] as List?)?.cast<dynamic>(),
);
}
@override
void write(BinaryWriter writer, MultipleSectionList obj) {
writer
..writeByte(4)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.selectedValue)
..writeByte(2)
..write(obj.fileName)
..writeByte(3)
..write(obj.extension);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is MultipleSectionListAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@ -0,0 +1,122 @@
// To parse this JSON data, do
//
// final welcome = welcomeFromJson(jsonString);
import 'dart:convert';
Locations welcomeFromJson(String str) => Locations.fromJson(json.decode(str));
String welcomeToJson(Locations data) => json.encode(data.toJson());
class Locations {
Location location;
Locations({
required this.location,
});
factory Locations.fromJson(Map<String, dynamic> json) => Locations(
location: Location.fromJson(json["location"]),
);
Map<String, dynamic> toJson() => {
"location": location.toJson(),
};
}
class Location {
List<Country> country;
List<States> state;
List<City> city;
Location({
required this.country,
required this.state,
required this.city,
});
factory Location.fromJson(Map<String, dynamic> json) => Location(
country:
List<Country>.from(json["country"].map((x) => Country.fromJson(x))),
state: List<States>.from(json["state"].map((x) => States.fromJson(x))),
city: List<City>.from(json["city"].map((x) => City.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"country": List<dynamic>.from(country.map((x) => x.toJson())),
"state": List<dynamic>.from(state.map((x) => x.toJson())),
"city": List<dynamic>.from(city.map((x) => x.toJson())),
};
}
class City {
String cityName;
String distId;
String stateId;
String countryId;
City({
required this.cityName,
required this.distId,
required this.stateId,
required this.countryId,
});
factory City.fromJson(Map<String, dynamic> json) => City(
cityName: json["cityName"],
distId: json["distId"],
stateId: json["stateId"],
countryId: json["countryId"],
);
Map<String, dynamic> toJson() => {
"cityName": cityName,
"distId": distId,
"stateId": stateId,
"countryId": countryId,
};
}
class Country {
String countryName;
String countryId;
Country({
required this.countryName,
required this.countryId,
});
factory Country.fromJson(Map<String, dynamic> json) => Country(
countryName: json["countryName"],
countryId: json["countryId"],
);
Map<String, dynamic> toJson() => {
"countryName": countryName,
"countryId": countryId,
};
}
class States {
String stateName;
String stateId;
String countryId;
States({
required this.stateName,
required this.stateId,
required this.countryId,
});
factory States.fromJson(Map<String, dynamic> json) => States(
stateName: json["stateName"],
stateId: json["stateId"],
countryId: json["countryId"],
);
Map<String, dynamic> toJson() => {
"stateName": stateName,
"stateId": stateId,
"countryId": countryId,
};
}

View File

@ -0,0 +1,144 @@
// To parse this JSON data, do
//
// final welcome = welcomeFromJson(jsonString);
import 'dart:convert';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:pwa_ios/model/interaction_data.dart';
import 'package:pwa_ios/model/json_form_data.dart';
part 'save_interaction.g.dart';
SaveInteraction welcomeFromJson(String str) =>
SaveInteraction.fromJson(json.decode(str));
String welcomeToJson(SaveInteraction data) => json.encode(data.toJson());
class SendSavedDataJson {
List<SaveInteraction> data;
SendSavedDataJson({required this.data});
Map<String, dynamic> toJson() => {
"data": List<SaveInteraction>.from(data.map((x) => x.toJson())),
};
}
@HiveType(typeId: 3)
class SaveInteraction {
@HiveField(0)
String id;
@HiveField(1)
List<FormFieldData> save;
@HiveField(2)
String? form;
@HiveField(3)
String? updatedTime;
@HiveField(4)
String intId;
@HiveField(5)
String intName;
SaveInteraction(
{required this.save,
required this.id,
this.form,
this.updatedTime,
required this.intId,
required this.intName});
factory SaveInteraction.fromJson(Map<String, dynamic> json) =>
SaveInteraction(
save: List<FormFieldData>.from(
json["save"].map((x) => SaveData.fromJson(x))),
intId: 'intId',
intName: 'intName',
id: 'id');
Map<String, dynamic> toJson() => {
"save": List<FormFieldData>.from(save.map((x) => x.toJson())),
};
Map<String, dynamic> savetoJson() => {
"form": form,
"intId": intId,
};
}
class JsonFormat {}
class SaveInteractionJson {
@HiveField(0)
int? id;
@HiveField(1)
List<SaveData> save;
SaveInteractionJson({
required this.save,
});
factory SaveInteractionJson.fromJson(Map<String, dynamic> json) =>
SaveInteractionJson(
save:
List<SaveData>.from(json["save"].map((x) => SaveData.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"save": List<dynamic>.from(save.map((x) => x.toJson())),
};
}
class SaveData {
String sectionName;
List<dynamic> multiple;
List<SaveSectionList> sectionList;
List<List<SaveSectionList>>? multiplesectionList;
SaveData({
required this.sectionName,
required this.multiple,
required this.sectionList,
this.multiplesectionList,
});
factory SaveData.fromJson(Map<String, dynamic> json) => SaveData(
sectionName: json["sectionName"],
multiple: List<dynamic>.from(json["multiple"].map((x) => x)),
sectionList: List<SaveSectionList>.from(
json["sectionList"].map((x) => SaveSectionList.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"sectionName": sectionName,
"multiple": List<dynamic>.from(multiple.map((x) => x)),
"sectionList": List<dynamic>.from(sectionList.map((x) => x.toJson())),
};
}
class SaveSectionList {
String param;
String id;
List<dynamic> selectedValue;
String? widget;
SaveSectionList({
required this.param,
required this.id,
required this.selectedValue,
this.widget,
});
factory SaveSectionList.fromJson(Map<String, dynamic> json) =>
SaveSectionList(
param: json["param"],
id: json["id"],
selectedValue: List<dynamic>.from(json["selectedValue"].map((x) => x)),
widget: json["widget"],
);
Map<String, dynamic> toJson() => {
"param": param,
"id": id,
"selectedValue": List<dynamic>.from(selectedValue.map((x) => x)),
"widget": widget,
};
}

View File

@ -0,0 +1,56 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'save_interaction.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class SaveInteractionAdapter extends TypeAdapter<SaveInteraction> {
@override
final int typeId = 3;
@override
SaveInteraction read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return SaveInteraction(
save: (fields[1] as List).cast<FormFieldData>(),
id: fields[0] as String,
form: fields[2] as String?,
updatedTime: fields[3] as String?,
intId: fields[4] as String,
intName: fields[5] as String,
);
}
@override
void write(BinaryWriter writer, SaveInteraction obj) {
writer
..writeByte(6)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.save)
..writeByte(2)
..write(obj.form)
..writeByte(3)
..write(obj.updatedTime)
..writeByte(4)
..write(obj.intId)
..writeByte(5)
..write(obj.intName);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SaveInteractionAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@ -0,0 +1,25 @@
import 'dart:core';
import 'package:hive_flutter/hive_flutter.dart';
part 'userdata_model.g.dart';
@HiveType(typeId: 13)
class UserData {
@HiveField(0)
String? name;
@HiveField(1)
String? email;
@HiveField(2)
String? domainUrl;
@HiveField(3)
String? secretkey;
@HiveField(4)
String? imageBytes;
UserData(
{required this.email,
required this.name,
required this.domainUrl,
this.imageBytes,
required this.secretkey});
}

View File

@ -0,0 +1,53 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'userdata_model.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class UserDataAdapter extends TypeAdapter<UserData> {
@override
final int typeId = 13;
@override
UserData read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return UserData(
email: fields[1] as String?,
name: fields[0] as String?,
domainUrl: fields[2] as String?,
imageBytes: fields[4] as String?,
secretkey: fields[3] as String?,
);
}
@override
void write(BinaryWriter writer, UserData obj) {
writer
..writeByte(5)
..writeByte(0)
..write(obj.name)
..writeByte(1)
..write(obj.email)
..writeByte(2)
..write(obj.domainUrl)
..writeByte(3)
..write(obj.secretkey)
..writeByte(4)
..write(obj.imageBytes);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is UserDataAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@ -0,0 +1,26 @@
import 'package:openid_client/openid_client.dart';
import 'package:openid_client/openid_client_browser.dart' as browser;
Future<Credential> authenticate(Client client,
{List<String> scopes = const []}) async {
var authenticator = browser.Authenticator(
client,
scopes: scopes,
);
authenticator.authorize();
throw Exception('Will never reach here');
}
Future<Credential?> getRedirectResult(Client client,
{List<String> scopes = const []}) async {
var authenticator = browser.Authenticator(
client,
scopes: scopes,
);
var c = await authenticator.credential;
return c;
}

36
lib/openid/openid_io.dart Normal file
View File

@ -0,0 +1,36 @@
import 'dart:io';
import 'package:openid_client/openid_client.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:openid_client/openid_client_io.dart' as io;
Future<Credential> authenticate(Client client,
{List<String> scopes = const []}) async {
// create a function to open a browser with an url
urlLauncher(String url) async {
var uri = Uri.parse(url);
if (await canLaunchUrl(uri) || Platform.isAndroid) {
await launchUrl(uri);
} else {
throw 'Could not launch $url';
}
}
// create an authenticator
var authenticator = io.Authenticator(client,
scopes: scopes, port: 3000, urlLancher: urlLauncher, redirectMessage: 'Logged In..' );
var c = await authenticator.authorize();
// close the webview when finished
if (Platform.isAndroid || Platform.isIOS) {
closeInAppWebView();
}
return c;
}
Future<Credential?> getRedirectResult(Client client,
{List<String> scopes = const []}) async {
return null;
}

View File

@ -0,0 +1,160 @@
import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
//import 'package:flutter_login_test/openid_browser.dart';
import 'package:openid_client/openid_client.dart';
import 'package:pwa_ios/views/konectarpage.dart';
import 'openid_io.dart' if (dart.library.html) 'openid_browser.dart';
const keycloakUri = 'https://sso.konectar.io/auth/realms/konectar';
const scopes = ['profile'];
late final Client client;
class OpenidScreen extends StatelessWidget {
OpenidScreen({super.key, this.credential});
Credential? credential;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'openid_client demo',
home: LoginPage(
title: 'Login',
credential: credential,
),
);
}
}
class LoginPage extends StatefulWidget {
LoginPage({super.key, required this.title, required this.credential});
Credential? credential;
final String title;
@override
State<LoginPage> createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
UserInfo? userInfo;
Future<Client> getClient() async {
var uri = Uri.parse(keycloakUri);
if (!kIsWeb && Platform.isAndroid)
uri = uri.replace(host: 'sso.konectar.io');
var clientId = 'appwildcard';
var issuer = await Issuer.discover(uri);
return Client(issuer, clientId);
}
_asyncMethod() async {
client = await getClient();
var credential = await authenticate(client, scopes: scopes);
var userInfo = await credential.getUserInfo();
setState(() {
this.userInfo = userInfo;
Timer.run(() {
// import 'dart:async:
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => const MyApp()));
});
});
}
@override
void initState() {
if (widget.credential != null) {
widget.credential!.getUserInfo().then((userInfo) {
setState(() {
this.userInfo = userInfo;
// Timer.run(() { // import 'dart:async:
// Navigator.of(context).pushNamed('/details');
// });
});
});
} else {
WidgetsBinding.instance.addPostFrameCallback((_) {
_asyncMethod();
});
}
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
if (userInfo != null) ...[
Text('Hello ${userInfo!.name}'),
Text(userInfo!.email ?? ''),
OutlinedButton(
child: const Text('Logout'),
onPressed: () async {
setState(() {
userInfo = null;
});
})
],
if (userInfo == null)
const CircularProgressIndicator(
backgroundColor: Colors.blue,
semanticsLabel: 'Please wait..',
)
// OutlinedButton(
// child: const Text('Login'),
// onPressed: () async {
// var credential = await authenticate(client, scopes: scopes);
// var userInfo = await credential.getUserInfo();
// setState(() {
// this.userInfo = userInfo;
// });
// }),
],
),
),
);
}
}
// import 'firebase_options.dart';
// Future<void> main() async {
// WidgetsFlutterBinding.ensureInitialized();
// // iOS requires you run in release mode to test dynamic links ("flutter run --release").
// await Firebase.initializeApp(
// // options: DefaultFirebaseOptions.currentPlatform,
// );
// // runApp(
// // MaterialApp(
// // title: 'Dynamic Links Example',
// // routes: <String, WidgetBuilder>{
// // '/': (BuildContext context) => _MainScreen(),
// // '/helloworld': (BuildContext context) => _DynamicLinkScreen(),
// // },
// // ),
// // );
// runApp(
// MaterialApp(
// title: 'Dynamic Links Example',
// routes: <String, WidgetBuilder>{
// '/': (BuildContext context) => Login(),
// '/details': (BuildContext context) => Login(),
// },
// ),
// );
// //runApp(MaterialApp.router(routerConfig: router));
// }

View File

@ -0,0 +1,54 @@
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
import 'package:pwa_ios/model/interaction_config_data.dart';
import 'package:pwa_ios/model/save_interaction.dart';
class HiveDataRepository extends ChangeNotifier {
Box<InteractionConfigData> _hiveBox; // Use the correct type for your Hive box
HiveDataRepository(this._hiveBox);
List<InteractionConfigData> getAllDataFromHive() {
print("Stored_ALL_valuesssss : ${_hiveBox.values.toList()}");
print(
"Stored_ALL_valuesssss_leangthhh : ${_hiveBox.values.toList().length}");
return _hiveBox.values.toList();
}
Future<void> openHiveBox() async {
_hiveBox =
await Hive.openBox<InteractionConfigData>('InteractionConfigDataBox');
}
Future<void> closeHiveBox() async {
_hiveBox.close();
}
List<InteractionConfigData> getAllofflineData() {
return _hiveBox.values.toList();
}
Future<void> addOfflineData(InteractionConfigData data, int id) async {
// _hiveBox = await Hive.openBox('InteractionDataBox');
await _hiveBox.put(id, data);
notifyListeners();
}
Future<int> getNextAutoIncrementValue() async {
var counterBox = await Hive.openBox<int>('counterBox');
if (!counterBox.containsKey('counter')) {
counterBox.put('counter', 0);
}
int? counter = counterBox.get('counter');
counterBox.put('counter', counter! + 1);
await counterBox.close();
return counter;
}
}

55
lib/utils/apicall.dart Normal file
View File

@ -0,0 +1,55 @@
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:dio/io.dart';
class ApiCall {
final dio = Dio();
Future<dynamic> parseInfo() async {
Dio dio = Dio();
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
Response response;
response = await dio.putUri(
Uri.parse(
'https://cardio-staging.konectar.io/nested_logins/verify_key'),
data: {
"key":
"\$2a\$08\$u5DKCL4ir88CPKUhGFqbnuoXcibLZnxs/qi/48miKAuNJM/5.WGWy",
"email": "scheepu@tikamobile.com",
"name": "Scheepu",
});
print("response here ");
print(response.data.toString());
return response.data;
}
//https://cardio-staging.konectar.io/notifications/list_all_notifications
Future<dynamic> listnotifications() async {
Dio dio = Dio();
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
Response response;
response = await dio.post(
'https://cardio-staging.konectar.io/requested_kols/list_my_pending_approvals/',
options: Options(
followRedirects: false,
validateStatus: (status) {
return status! < 500;
},
headers: {'Content-type': 'application/json; charset=UTF-8'}),
data: {"rows": "10", "page": "1", "sidx": "name", "sord": "desc"});
print("response user settings here ");
print(response.data.toString());
return response.data;
}
}

1541
lib/utils/constants.dart Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@

45
lib/utils/fileupload.dart Normal file
View File

@ -0,0 +1,45 @@
import 'dart:developer';
import 'dart:io';
import 'package:dio/dio.dart';
class FileUpload {
Future<bool> uploadFileAndJsonData(
{required File empFace, required String empCode}) async {
final url = 'My API URL';
try {
var formData = FormData.fromMap({
"files": [
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
]
});
final response = await Dio().post(
url,
data: formData,
);
if (response.statusCode == 200) {
var map = response.data as Map;
print('success');
if (map['status'] == 'Successfully registered') {
return true;
} else {
return false;
}
} else if (response.statusCode == 200) {
//BotToast is a package for toasts available on pub.dev
// BotToast.showText(text: 'Validation Error Occurs');
return false;
}
} on DioException catch (error) {
log(error.message!);
throw 'Something Went Wrong';
} catch (_) {
log(_.toString());
throw 'Something Went Wrong';
}
return false;
}
}

211
lib/utils/mockapi.dart Normal file
View File

@ -0,0 +1,211 @@
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:dio/io.dart';
import 'package:flutter/services.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pwa_ios/model/interaction_config_data.dart';
class MockApiCall {
Future<dynamic> getConfigData() async {
// final dio = Dio(BaseOptions());
final dio = Dio();
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
//final dioAdapter = DioAdapter(dio: dio);
dynamic jsonResult = jsonDecode(
await rootBundle.loadString("assets/images/interactiondata.json"));
// Set up a mock response for GET requests to "https://example.com"
// dio.get('192.168.2.64/passvault/public/forms'
// (server) => server.reply(
// 200,
// jsonResult,
// // Delay the response by 1 second
// delay: const Duration(seconds: 1),
// ),
// );
// Send a GET request to "https://example.com" using Dio
final response =
await dio.get('http://192.168.2.64/konectar-app/public/forms');
UIDataResponse dataResponse = UIDataResponse.fromJson(response.data);
// The response should contain the mock data we registered
print("response");
print(response.data);
return dataResponse;
}
Future<dynamic> postConfigData(var jsonObj) async {
// final dio = Dio(BaseOptions());
final dio = Dio();
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
//final dioAdapter = DioAdapter(dio: dio);
dynamic jsonResult = jsonDecode(
await rootBundle.loadString("assets/images/interactiondata.json"));
// Set up a mock response for GET requests to "https://example.com"
// dio.get('192.168.2.64/passvault/public/forms'
// (server) => server.reply(
// 200,
// jsonResult,
// // Delay the response by 1 second
// delay: const Duration(seconds: 1),
// ),
// );
// Send a GET request to "https://example.com" using Dio
final response = await dio
.post('http://192.168.2.64/konectar-app/public/forms', data: jsonObj);
UIDataResponse dataResponse = UIDataResponse.fromJson(response.data);
// The response should contain the mock data we registered
print("response");
print(response.data);
return dataResponse;
}
Future<void> getConfigWidgetData() async {
final dio = Dio(BaseOptions());
final dioAdapter = DioAdapter(dio: dio);
dynamic jsonResult = jsonDecode(
await rootBundle.loadString("assets/images/interactiondata.json"));
// Set up a mock response for GET requests to "https://example.com"
dioAdapter.onGet(
'https://example.com',
(server) => server.reply(
200,
jsonResult,
// Delay the response by 1 second
delay: const Duration(seconds: 1),
),
);
// Send a GET request to "https://example.com" using Dio
final response = await dio.get('https://example.com');
// The response should contain the mock data we registered
print(response.data); // {messa
}
Future<void> postFormData(var jsonObj) async {
final dio = Dio(BaseOptions());
final dioAdapter = DioAdapter(dio: dio);
// final body = json.decode(jsonObj.toString());
// print(body);
// Set up a mock response for GET requests to "https://example.com"
dioAdapter.onPost(
'https://example.com',
data: jsonObj,
(server) => server.reply(
200,
{"message": "success"},
// Delay the response by 1 second
delay: const Duration(seconds: 1),
),
);
// Send a GET request to "https://example.com" using Dio
final response = await dio.post(
'http://192.168.2.64/konectar-app/public/push_data',
data: jsonObj);
// The response should contain the mock data we registered
print(response.data); // {messa
}
Future<dynamic> postSavedData(var jsonObj, String filepath) async {
// final dio = Dio(BaseOptions());
final dio = Dio();
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
(HttpClient client) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) => true;
return client;
};
// MultipartFile.fromFileSync("/Users/aissel/Library/Developer/CoreSimulator/Devices/1E435121-7E65-45C6-9E0B-411C8B9915F5/data/Containers/Data/Application/3CBC1CFF-79AD-49FA-A6E0-13D0AA2959D2/tmp/Flutter Questionaire.pdf",
// filename: "upload.txt"),\
// File file = File(filepath);
// String fileName = file.path.split('/').last;
// // Get the application folder directory
// Directory? directory = Platform.isAndroid
// ? await getExternalStorageDirectory() //FOR ANDROID
// : await getApplicationSupportDirectory(); //FOR ios
// // Copy file to the directory
// // if (directory != null) {
// File newFile = await file.copy('${directory!.path}/$fileName');
// // File file = File(filepath);
// List<int> imageBytes = await newFile.readAsBytes();
// Uint8List imageUint8List = Uint8List.fromList(imageBytes);
// String base64Image = base64Encode(imageUint8List);
// var formData = FormData.fromMap({
// "files": [await MultipartFile.fromFile(filepath)],
// "data": jsonObj
// });
// Send a GET request to "https://example.com" using Dio
final response = await dio.get(
'http://192.168.2.64/konectar-app/public/push_data',
data: jsonObj);
//UIDataResponse dataResponse = UIDataResponse.fromJson(response.data);
// The response should contain the mock data we registered
print("response");
print(response.data);
return response.data;
}
Future<bool> uploadFileAndJsonData(var jsonObj) async {
// {required File empFace, required String empCode}
final url = 'http://192.168.2.64/konectar-app/public/push_data';
try {
var formData = FormData.fromMap({
"files": [
MultipartFile.fromFileSync(
"/Users/aissel/Library/Developer/CoreSimulator/Devices/1E435121-7E65-45C6-9E0B-411C8B9915F5/data/Containers/Data/Application/3CBC1CFF-79AD-49FA-A6E0-13D0AA2959D2/tmp/Flutter Questionaire.pdf",
filename: "upload.txt"),
MultipartFile.fromFileSync("./example/upload.txt",
filename: "upload.txt"),
],
"data": jsonObj
});
final response = await Dio().post(
url,
data: jsonObj,
);
if (response.statusCode == 200) {
var map = response.data as Map;
print("result $map");
print('success');
if (map['status'] == 'Successfully registered') {
return true;
} else {
return false;
}
} else if (response.statusCode != 200) {
var map = response.data as Map;
print("result $map");
//BotToast is a package for toasts available on pub.dev
// BotToast.showText(text: 'Validation Error Occurs');
return false;
}
} on DioException catch (error) {
log(error.message!);
throw 'Something Went Wrong';
} catch (_) {
log(_.toString());
throw 'Something Went Wrong';
}
return false;
}
}

View File

@ -0,0 +1,27 @@
import 'package:shared_preferences/shared_preferences.dart';
class SessionManager {
static final SessionManager _instance = SessionManager._();
static const String _loggedInKey = 'loggedIn';
factory SessionManager() {
return _instance;
}
SessionManager._();
Future<void> setLoggedIn(bool value) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool(_loggedInKey, value);
}
Future<bool> isLoggedIn() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getBool(_loggedInKey) ?? false;
}
Future<void> clearSession() async {
final prefs = await SharedPreferences.getInstance();
await prefs.clear();
}
}

78
lib/utils/util.dart Normal file
View File

@ -0,0 +1,78 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:shared_preferences/shared_preferences.dart';
Future<bool> isNetworkAvailable() async {
// check if there is a valid network connection
final connectivityResult = await Connectivity().checkConnectivity();
if (connectivityResult != ConnectivityResult.mobile &&
connectivityResult != ConnectivityResult.wifi) {
return false;
}
// check if the network is really connected to Internet
try {
final result = await InternetAddress.lookup('example.com');
if (result.isEmpty || result[0].rawAddress.isEmpty) {
return false;
}
} on SocketException catch (_) {
return false;
}
return true;
}
Future<bool> isPWAInstalled() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getBool('isInstalled') ?? false;
}
void setPWAInstalled({bool installed = true}) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool('isInstalled', installed);
}
bool get isTablet {
final firstView = WidgetsBinding.instance.platformDispatcher.views.first;
final logicalShortestSide =
firstView.physicalSize.shortestSide / firstView.devicePixelRatio;
// print("size:${logicalShortestSide > 600} tablet ");
return logicalShortestSide > 600;
}
Future<int> getNextAutoIncrementValue() async {
var counterBox = await Hive.openBox<int>('counterBox');
if (!counterBox.containsKey('counter')) {
counterBox.put('counter', 0);
}
int? counter = counterBox.get('counter');
counterBox.put('counter', counter! + 1);
await counterBox.close();
return counter;
}
class HexColor extends Color {
static int _getColorFromHex(String hexColor) {
hexColor = hexColor.toUpperCase().replaceAll("#", "");
if (hexColor.length == 6) {
hexColor = "FF$hexColor";
}
return int.parse(hexColor, radix: 16);
}
HexColor(final String hexColor) : super(_getColorFromHex(hexColor));
}
extension Iterables<E> on Iterable<E> {
Map<K, List<E>> groupBy<K>(K Function(E) keyFunction) => fold(
<K, List<E>>{},
(Map<K, List<E>> map, E element) =>
map..putIfAbsent(keyFunction(element), () => <E>[]).add(element));
}

Some files were not shown because too many files have changed in this diff Show More