Compare commits

...

20 Commits
devios ... main

284 changed files with 105622 additions and 7956 deletions

View File

@ -18,21 +18,6 @@ migration:
- platform: android - platform: android
create_revision: 300451adae589accbece3490f4396f10bdf15e6e create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: ios
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: linux
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: macos
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: web
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
- platform: windows
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
# User provided section # User provided section

View File

@ -1,8 +1,19 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <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 <application
android:label="discover_module" android:label="Konectar Contacts"
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"> android:usesCleartextTraffic="true"
android:icon="@mipmap/konectar1">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
@ -40,5 +51,20 @@
<action android:name="android.intent.action.PROCESS_TEXT"/> <action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/> <data android:mimeType="text/plain"/>
</intent> </intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="sms" />
</intent>
<!-- If your app checks for call support -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="tel" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="mailto" />
</intent>
</queries> </queries>
</manifest> </manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

300
assets/contact.json Normal file
View File

@ -0,0 +1,300 @@
[
{
"uid": 1,
"id": 1447203401,
"Salutation": "Dr.",
"First Name": "Roxana",
"Middle Name": "",
"Last Name": "Mehran",
"name": "Dr. Roxana Mehran",
"p_suffix": "MD,FACC,FACP,FCCP,FESC,FAHA,FSCAI",
"speciality": "Cardiovascular Disease (Cardiology)",
"sub_speciality": "",
"OrgName": "Icahn School of Medicine at Mount Sinai",
"Division": "",
"Title": "",
"License #": "NY: 185790",
"NPI Number": 1447203401,
"Profile Type": "Basic Profile",
"Url": "",
"Org ID": 256884,
"summarry": "• 41 Years of experience\n• Studied in New York University, St. George's University Medical School\n• Icahn School Of Medicine At Mount Sinai, Medstar Washington Hospital Center and 111 other affiliations\n• Speaker in 442 sessions in conferences\n• 909 Publications with 274 articles as lead author\n• Investigator in 23 clinical studies\n• Received payments from Abbott Laboratories, Amgen Inc., Astrazeneca Pharmaceuticals Lp and 23 other companies\n• Is Opioid Prescribing - No\n• Sanction(s): None",
"phone_no": "+12127317822",
"Fax": "+12127317822",
"email": "roxana.mehran@mountsinai.org",
"Address1": "1 Gustave L Levy Pl",
"Address2": "",
"City": "New York",
"State": "New York",
"PostalCode": 10029,
"Country": "United States",
"img_path": "",
"event_topics": "Heart Failure | Heart Diseases | Heart Failure, Systolic",
"pub_topics": "Heart Failure | Diabetes Mellitus, Type 2 | Cardiovascular Diseases",
"products_discussed": "VERQUVO | JARDIANCE | JARDIANCE",
"disease_conditions": "",
"drugs": "",
"topdata": [
{
"title": "Top Event Topics",
"name1": "Heart Failure",
"name2": "Heart Diseases",
"name3": "Heart Failure, Systolic"
},
{
"title": "Top Publication Topics",
"name1": "Heart Failure",
"name2": "Diabetes Mellitus, Type 2",
"name3": "Cardiovascular Diseases"
},
{
"title": "Top Products Discussed",
"name1": "VERQUVO",
"name2": "JARDIANCE",
"name3": "JARDIANCE"
}
]
},
{
"uid": 2,
"id": 1639100928,
"Salutation": "Dr.",
"First Name": "Javed",
"Middle Name": "",
"Last Name": "Butler",
"name": "Dr. Javed Butler",
"p_suffix": "MD,MPH,MBA,FACC,FAHA",
"speciality": "Cardiovascular Disease (Cardiology)",
"sub_speciality": "Advanced Heart Failure And Transplant Cardiology",
"OrgName": "Baylor Scott & White Health",
"Division": "",
"Title": "",
"License #": "MS: 26174,TN: 31361",
"NPI Number": 1639100928,
"Profile Type": "Basic Profile",
"Url": "",
"Org ID": 23726,
"summarry": "• 34 Years of experience\n• Studied in Emory University Goizueta Business School, Harvard T.h. Chan School Of Public Health\n• Baylor Scott & White Health, University Of Mississippi Medical Center and 38 other affiliations\n• Speaker in 209 sessions in conferences\n• 1087 Publications with 299 articles as lead author\n• Investigator in 10 clinical studies\n• Received payments from Abbott Laboratories, American Regent, Amgen Inc. and 61 other companies\n• Is Opioid Prescribing - No\n• Sanction(s): None\n• Patent(s): 1 Patents",
"phone_no": "+12148202687",
"Fax": "+16316384170",
"email": "javed.butler@bswhealth.org",
"Address1": "3434 Live Oak St",
"Address2": "",
"City": "Dallas",
"State": "Texas",
"PostalCode": 75204,
"Country": "United States",
"img_path": "https://cardio-staging.konectar.io/images/kol_images/resized/1639100928.jpeg",
"event_topics": "Atherosclerosis | Coronary Artery Disease | Computed Tomography Angiography",
"pub_topics": "Coronary Artery Disease | Atherosclerosis | Vascular Calcification",
"products_discussed": "VERQUVO | FARXIGA | Rybelsus",
"disease_conditions": "Angina Pectoris | Coronary Artery Disease | Heart Diseases",
"drugs": "Amlodipine Besylate | Metoprolol Succinate | Atorvastatin Calcium",
"topdata": [
{
"title": "Top Event Topics",
"name1": "Atherosclerosis",
"name2": "Coronary Artery Disease",
"name3": "Computed Tomography Angiography"
},
{
"title": "Top Publication Topics",
"name1": "Coronary Artery Disease",
"name2": "Atherosclerosis",
"name3": "Vascular Calcification"
},
{
"title": "Top Products Discussed",
"name1": "VERQUVO",
"name2": "FARXIGA",
"name3": "Rybelsus"
},
{
"title": "Condition Treated",
"name1": "Angina Pectoris",
"name2": "Coronary Artery Disease",
"name3": "Heart Diseases"
},
{
"title": "Drugs Prescribed",
"name1": "Amlodipine Besylate",
"name2": "Metoprolol Succinate",
"name3": "Atorvastatin Calcium"
}
]
},
{
"uid": 3,
"id": 1811967433,
"Salutation": "Dr.",
"First Name": "Matthew",
"Middle Name": "J",
"Last Name": "Budoff",
"name": "Dr. Matthew J Budoff",
"p_suffix": "MD,FACC,FAHA",
"speciality": "Cardiovascular Disease (Cardiology)",
"sub_speciality": "",
"OrgName": "UCLA Santa Monica Medical Center",
"Division": "",
"Title": "",
"License #": "CA: G72496",
"NPI Number": 1811967433,
"Profile Type": "Basic Profile",
"Url": "",
"Org ID": 20514,
"summarry": "• 34 Years of experience\n• Studied in George Washington University School Of Medicine And Health Sciences, University Of California, Riverside\n• UCLA Santa Monica Medical Center, Prairie Du Chien Memorial Hospital Association, Inc. and 32 other affiliations\n• Speaker in 179 sessions in conferences\n• 992 Publications with 306 articles as lead author\n• Investigator in 25 clinical studies\n• Received payments from Abbott Laboratories, Actelion Pharmaceuticals Us, Inc., Actelion Pharmaceuticals, Ltd and 44 other companies\n• Is Opioid Prescribing - No\n• Sanction(s): None\n• Patent(s): 1 Patents",
"phone_no": "+16083572000",
"Fax": "+13102224107",
"email": "Budoff@ucla.edu",
"Address1": "10833 Le Conte Ave",
"Address2": "",
"City": "Los Angeles",
"State": "California",
"PostalCode": 90095,
"Country": "United States",
"img_path": "https://cardio-staging.konectar.io/images/kol_images/resized/1811967433.jpeg",
"event_topics": "Tricuspid Valve Insufficiency | Transcatheter Aortic Valve Replacement | Tricuspid Valve",
"pub_topics": "Aortic Valve Stenosis | Tricuspid Valve Insufficiency | Mitral Valve Insufficiency",
"products_discussed": "(9520) IGT Devices Undivided | VersaCross Access Solution | MITRACLIP",
"disease_conditions": "",
"drugs": "",
"topdata": [
{
"title": "Top Event Topics",
"name1": "Tricuspid Valve Insufficiency",
"name2": "Transcatheter Aortic Valve Replacement",
"name3": "Tricuspid Valve"
},
{
"title": "Top Publication Topics",
"name1": "Aortic Valve Stenosis",
"name2": "Tricuspid Valve Insufficiency",
"name3": "Mitral Valve Insufficiency"
},
{
"title": "Top Products Discussed",
"name1": "(9520) IGT Devices Undivided",
"name2": "VersaCross Access Solution",
"name3": "MITRACLIP"
}
]
},
{
"uid": 4,
"id": 1497893077,
"Salutation": "Dr.",
"First Name": "Rebecca",
"Middle Name": "Tung",
"Last Name": "Hahn",
"name": "Dr. Rebecca Tung Hahn",
"p_suffix": "MD",
"speciality": "Cardiovascular Disease (Cardiology)",
"sub_speciality": "Internal Medicine",
"OrgName": "Columbia University Irving Medical Center",
"Division": "",
"Title": "",
"License #": "NY: 163707",
"NPI Number": 1497893077,
"Profile Type": "Basic Profile",
"Url": "",
"Org ID": 22909,
"summarry": "• 40 Years of experience\n• Studied in Washington University School Of Medicine In St. Louis, Harvard University\n• Columbia University Irving Medical Center, Newyork-presbyterian Queens Hospital and 23 other affiliations\n• Speaker in 549 sessions in conferences\n• 427 Publications with 136 articles as lead author\n• Investigator in 7 clinical studies\n• Received payments from Abbott Laboratories, Baylis Medical Company Inc, Boston Scientific Corporation and 5 other companies\n• Is Opioid Prescribing - No\n• Sanction(s): None",
"phone_no": "+12123420444",
"Fax": "",
"email": "rth2@cumc.columbia.edu",
"Address1": "161 Fort Washington Avenue",
"Address2": "",
"City": "New York",
"State": "New York",
"PostalCode": 10032,
"Country": "United States",
"img_path": "https://cardio-staging.konectar.io/images/kol_images/resized/1497893077.jpeg",
"event_topics": "",
"pub_topics": "",
"products_discussed": "",
"disease_conditions": "",
"drugs": "",
"topdata": [
{
"title": "Top Event Topics",
"name1": "Tricuspid Valve Insufficiency",
"name2": "Transcatheter Aortic Valve Replacement",
"name3": "Tricuspid Valve"
},
{
"title": "Top Publication Topics",
"name1": "Aortic Valve Stenosis",
"name2": "Tricuspid Valve Insufficiency",
"name3": "Mitral Valve Insufficiency"
}
]
},
{
"uid": 5,
"id": 1841382421,
"Salutation": "Dr.",
"First Name": "Andrea",
"Middle Name": "",
"Last Name": "Natale",
"name": "Dr. Andrea Natale",
"p_suffix": "MD",
"speciality": "Clinical Cardiac Electrophysiology",
"sub_speciality": "Cardiovascular Disease (Cardiology), Internal Medicine",
"OrgName": "Texas Cardiac Arrhythmia Institute",
"Division": "",
"Title": "",
"License #": "CA: C50726,TX: M9533,OH: 35076775N",
"NPI Number": 1841382421,
"Profile Type": "Basic Profile",
"Url": "",
"Org ID": 24328,
"summarry": "• 39 Years of experience\n• Studied in Università Degli Studi Di Firenze Facoltà Di Medicina E Chirurgia\n• Texas Cardiac Arrhythmia Institute, Golden State Providers, A Medical Corporation and 110 other affiliations\n• Speaker in 1091 sessions in conferences\n• 542 Publications with 213 articles as lead author\n• Investigator in 80 clinical studies\n• Received payments from Abbott Laboratories, Acclarent, Inc, Acutus Medical, Inc. and 32 other companies\n• Is Opioid Prescribing - No\n• Sanction(s): None\n• Patent(s): 1 Patents",
"phone_no": "+15128073150",
"Fax": "+15124587879",
"email": "andrea.natale@hcahealthcare.com",
"Address1": "3000 N. IH-35",
"Address2": "Suite 720",
"City": "Austin",
"State": "Texas",
"PostalCode": 78705,
"Country": "United States",
"img_path": "",
"event_topics": "Ablation Techniques | Atrial Fibrillation | Catheter Ablation",
"pub_topics": "Atrial Fibrillation | Recurrence | Tachycardia, Ventricular",
"products_discussed": "CARTO 3 | WATCHMAN Access System | ENSITE PRECISION",
"disease_conditions": "Angina Pectoris | Coronary Artery Disease | Hypertension",
"drugs": "Eliquis | Xarelto | Furosemide",
"topdata": [
{
"title": "Top Event Topics",
"name1": "Ablation Techniques",
"name2": "Atrial Fibrillation",
"name3": "Catheter Ablation"
},
{
"title": "Top Publication Topics",
"name1": "CARTO 3",
"name2": "WATCHMAN Access System",
"name3": "ENSITE PRECISION"
},
{
"title": "Top Products Discussed",
"name1": "CARTO 3",
"name2": "WATCHMAN Access System",
"name3": "RybeENSITE PRECISIONlsus"
},
{
"title": "Condition Treated",
"name1": "Angina Pectoris",
"name2": "Coronary Artery Disease",
"name3": "Hypertension"
},
{
"title": "Drugs Prescribed",
"name1": "Eliquis",
"name2": "Xarelto",
"name3": "Furosemide"
}
]
}
]

511
assets/interactionform.json Normal file
View File

@ -0,0 +1,511 @@
{
"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": "number",
"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
}
}
]
}
]
}
]
}

57395
assets/section.json Normal file

File diff suppressed because one or more lines are too long

1
devtools_options.yaml Normal file
View File

@ -0,0 +1 @@
extensions:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

202
fonts/open-sans/LICENSE.txt Normal file
View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

View File

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

44
ios/Podfile Normal file
View File

@ -0,0 +1,44 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '12.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)
end
end

102
ios/Podfile.lock Normal file
View File

@ -0,0 +1,102 @@
PODS:
- connectivity_plus (0.0.1):
- Flutter
- FlutterMacOS
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.19):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.19):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Flutter (1.0.0)
- open_file (0.0.1):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.3.0):
- Flutter
- SDWebImage (5.19.2):
- SDWebImage/Core (= 5.19.2)
- SDWebImage/Core (5.19.2)
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- SwiftyGif (5.4.5)
DEPENDENCIES:
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- open_file (from `.symlinks/plugins/open_file/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`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- SDWebImage
- SwiftyGif
EXTERNAL SOURCES:
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/darwin"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
Flutter:
:path: Flutter
open_file:
:path: ".symlinks/plugins/open_file/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"
SPEC CHECKSUMS:
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d
path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a
shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
COCOAPODS: 1.14.3

View File

@ -8,12 +8,14 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
28A4CA5094F12DFCEB695608 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CBF736BEE38244D990383AC /* Pods_Runner.framework */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
DC53DDC63CD0D2078DC25527 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2E8502330625758A65DAABB /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
@ -45,6 +47,8 @@
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; 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; }; 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>"; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
4CBF736BEE38244D990383AC /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6FF09854ECFC6CF7B1CE05FE /* 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>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; 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>"; }; 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>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
@ -55,13 +59,28 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; 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>"; }; 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>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9BD136E7A96F62FE2A2ED5CE /* 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>"; };
9CCBA63560C226125CF05907 /* 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>"; };
A2E8502330625758A65DAABB /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BD95FDD0BA00F5AA563D4500 /* 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>"; };
DE70D96A18797294E9AD79A3 /* 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>"; };
FBD8C6B5BC5B20E9640ACCC3 /* 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>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
4C54FAEBE392E7E8C4CC3CE1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DC53DDC63CD0D2078DC25527 /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
97C146EB1CF9000F007C117D /* Frameworks */ = { 97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
28A4CA5094F12DFCEB695608 /* Pods_Runner.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -76,6 +95,28 @@
path = RunnerTests; path = RunnerTests;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
47DA00C9F06A0B5088CCAD2D /* Pods */ = {
isa = PBXGroup;
children = (
9BD136E7A96F62FE2A2ED5CE /* Pods-Runner.debug.xcconfig */,
DE70D96A18797294E9AD79A3 /* Pods-Runner.release.xcconfig */,
BD95FDD0BA00F5AA563D4500 /* Pods-Runner.profile.xcconfig */,
9CCBA63560C226125CF05907 /* Pods-RunnerTests.debug.xcconfig */,
FBD8C6B5BC5B20E9640ACCC3 /* Pods-RunnerTests.release.xcconfig */,
6FF09854ECFC6CF7B1CE05FE /* Pods-RunnerTests.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
5319A3EDB9A879488DB467A3 /* Frameworks */ = {
isa = PBXGroup;
children = (
4CBF736BEE38244D990383AC /* Pods_Runner.framework */,
A2E8502330625758A65DAABB /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = { 9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -94,6 +135,8 @@
97C146F01CF9000F007C117D /* Runner */, 97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */, 97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */, 331C8082294A63A400263BE5 /* RunnerTests */,
47DA00C9F06A0B5088CCAD2D /* Pods */,
5319A3EDB9A879488DB467A3 /* Frameworks */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -128,8 +171,10 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = ( buildPhases = (
66972762C5038EDD4855D912 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */, 331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */, 331C807F294A63A400263BE5 /* Resources */,
4C54FAEBE392E7E8C4CC3CE1 /* Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -145,12 +190,15 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = ( buildPhases = (
8966CB33861E6924F5EF405D /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */, 9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */, 97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */, 97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */, 97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
D830ECB80785A833B8BD49B8 /* [CP] Embed Pods Frameworks */,
776BAAA5AF461133F6D16B28 /* [CP] Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
@ -238,6 +286,67 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
}; };
66972762C5038EDD4855D912 /* [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;
};
776BAAA5AF461133F6D16B28 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
8966CB33861E6924F5EF405D /* [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;
};
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
@ -253,6 +362,23 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
}; };
D830ECB80785A833B8BD49B8 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@ -378,6 +504,7 @@
}; };
331C8088294A63A400263BE5 /* Debug */ = { 331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 9CCBA63560C226125CF05907 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
@ -395,6 +522,7 @@
}; };
331C8089294A63A400263BE5 /* Release */ = { 331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = FBD8C6B5BC5B20E9640ACCC3 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
@ -410,6 +538,7 @@
}; };
331C808A294A63A400263BE5 /* Profile */ = { 331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 6FF09854ECFC6CF7B1CE05FE /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
@ -541,6 +670,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = 69ERN967NS;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (

View File

@ -4,4 +4,7 @@
<FileRef <FileRef
location = "group:Runner.xcodeproj"> location = "group:Runner.xcodeproj">
</FileRef> </FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace> </Workspace>

View File

@ -45,5 +45,13 @@
<true/> <true/>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>
<true/> <true/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sms</string>
<string>tel</string>
<string>mailto</string>
</array>
</dict> </dict>
</plist> </plist>

View File

@ -1,5 +0,0 @@
import 'dart:ui';
class Constants {
static Color k2color = Color.fromARGB(255, 0, 71, 132);
}

View File

@ -0,0 +1,33 @@
import 'dart:async';
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:dio/dio.dart';
class NetworkConnectivity {
// Future<bool> isInternetAvailable() async {
// var connectivityResult = await (Connectivity().checkConnectivity());
// return connectivityResult != ConnectivityResult.none;
// }
Future<bool> isInternetAvailable() async {
var connectivityResult = await Connectivity().checkConnectivity();
if (connectivityResult == ConnectivityResult.none) {
return false;
} else {
try {
// final result = await InternetAddress.lookup('google.com');
// return true;
final result = await Dio().get('www.google.com');
if (result.statusCode == 200) {
// if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
return true;
//}
}
return false;
} on SocketException catch (_) {
return false;
}
}
}
}

View File

@ -0,0 +1,31 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class Constants {
static const Color k2color = Color.fromARGB(255, 0, 71, 132);
static const Color k2color1 = Color.fromARGB(255, 0, 71, 132);
static const Color profilecard = Color.fromARGB(255, 4, 104, 198);
static const Color btmcard = Color.fromARGB(2255, 251, 242, 242);
static Color cardtext = Colors.transparent;
static const Color bgcolor = Color(0xFFF2F3F8);
static const Color bgwhitecolor = Colors.white;
static Color bgcolor2 = const Color.fromARGB(255, 0, 112, 184);
static final Future<String> response =
rootBundle.loadString('assets/section.json');
static const Color tabbgColor = Color.fromARGB(255, 0, 112, 184);
static const url = "http://192.168.2.170:8000/api";
// static const url = "http://127.0.0.1:8000/api";
//static const url = 'http://192.168.2.143:8085/api';http://127.0.0.1:8001
//static const url = 'http://192.168.153.50:8082/api';192.168.21.50:8000
static const k2url = "http://192.168.2.130:8888/api";
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,42 @@
import 'package:discover_module/contacts_module/custom_widget/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ClickRow extends StatefulWidget {
final IconData? icon;
final String? text;
final VoidCallback? onTap;
const ClickRow({super.key, this.icon, this.text, this.onTap});
@override
State<ClickRow> createState() => _ClickRowState();
}
class _ClickRowState extends State<ClickRow> {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(left: 15.0),
child: InkWell(
onTap: widget.onTap,
child: Row(
children: [
Icon(
size: 16,
widget.icon,
color: Colors.white,
),
const SizedBox(width: 3.0),
Expanded(
child: Text1(
title: widget.text!,
txtcolor: Colors.white,
fontweight: FontWeight.normal,
txtfont: 14.0),
),
],
),
),
);
}
}

View File

@ -0,0 +1,38 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_profile_picture/flutter_profile_picture.dart';
class CustomProfile extends StatelessWidget {
final String? imgstring;
final double? radius;
final double? fontsize;
final String? name;
const CustomProfile(
{super.key, this.imgstring, this.fontsize, this.radius, this.name});
@override
Widget build(BuildContext context) {
return imgstring == ""
? ProfilePicture(
name: name ?? "",
radius: radius!,
fontsize: fontsize!,
)
: ClipOval(
child: SizedBox.fromSize(
size: Size.fromRadius(radius!),
child: CachedNetworkImage(
imageUrl: imgstring!,
imageBuilder: (context, imageProvider) => Container(
decoration: BoxDecoration(
image: DecorationImage(
image: imageProvider,
fit: BoxFit.fill,
),
),
),
),
),
);
}
}

View File

@ -0,0 +1,24 @@
import 'package:discover_module/contacts_module/custom_widget/text.dart';
import 'package:flutter/material.dart';
class CustomAppbar extends StatefulWidget {
final String title;
const CustomAppbar({super.key, required this.title});
@override
State<CustomAppbar> createState() => _CustomAppbarState();
}
class _CustomAppbarState extends State<CustomAppbar> {
@override
Widget build(BuildContext context) {
return AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios_new),
onPressed: () => Navigator.of(context).pop(false),
),
title: Text1(title: widget.title),
actions: <Widget>[],
);
}
}

View File

@ -0,0 +1,141 @@
import 'package:flutter/material.dart';
class CustomLongPressContainer extends StatelessWidget {
final bool? switchValue;
final List<String>? selectedIndices;
final List<int>? selectedRemoveIndices;
final void Function()? onAddToContacts;
final void Function()? onRemoveFromContacts;
final void Function()? onDownload;
final void Function()? onCancel;
final void Function()? onSaveOffline;
CustomLongPressContainer({
this.switchValue,
this.selectedIndices,
this.selectedRemoveIndices,
this.onAddToContacts,
this.onRemoveFromContacts,
this.onDownload,
this.onCancel,
this.onSaveOffline,
});
@override
Widget build(BuildContext context) {
return Container(
color: Colors.grey[200], // Example color, you can change it
width: MediaQuery.of(context).size.width,
height: 220.0,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// Add to Contacts Section
switchValue!
? GestureDetector(
onTap: onRemoveFromContacts,
child: Row(
children: [
const Padding(
padding: EdgeInsets.all(15.0),
child: Icon(
Icons.remove,
color: Colors.green,
),
),
Text(
'Remove from My Contacts',
style: TextStyle(color: Colors.black),
),
],
),
)
: GestureDetector(
onTap: onAddToContacts,
child: Row(
children: [
const Padding(
padding: EdgeInsets.all(15.0),
child: Icon(
Icons.add,
color: Colors.green,
),
),
Text(
'Add to My Contacts',
style: TextStyle(color: Colors.black),
),
],
),
),
// Download Section
GestureDetector(
onTap: onDownload,
child: Row(
children: [
const Padding(
padding: EdgeInsets.all(15.0),
child: Icon(
Icons.download,
color: Colors.blue,
),
),
Text(
'Download',
style: TextStyle(color: Colors.black),
),
],
),
),
// Cancel Section
GestureDetector(
onTap: onCancel,
child: Row(
children: [
const Padding(
padding: EdgeInsets.all(15.0),
child: Icon(
Icons.close,
color: Colors.red,
),
),
Text(
'Cancel',
style: TextStyle(color: Colors.black),
),
],
),
),
// Save Offline Section (Only if switchValue is false)
Visibility(
visible: !switchValue!,
child: GestureDetector(
onTap: onSaveOffline,
child: Row(
children: [
const Padding(
padding: EdgeInsets.all(15.0),
child: Icon(
Icons.save,
color: Colors.deepOrange,
),
),
Padding(
padding: EdgeInsets.only(top: 5.0),
child: Text(
'Save Offline',
style: TextStyle(color: Colors.black),
),
),
],
),
),
),
],
),
);
}
}

View File

@ -0,0 +1,34 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class CustomCard extends StatefulWidget {
final double? elevation;
final Color? color;
final Color? tintcolor;
final Widget? child;
final double? bradius;
const CustomCard(
{super.key,
this.elevation,
this.color,
this.bradius,
this.tintcolor,
this.child});
@override
State<CustomCard> createState() => _CustomCardState();
}
class _CustomCardState extends State<CustomCard> {
@override
Widget build(BuildContext context) {
return Card(
elevation: widget.elevation!,
color: widget.color,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(widget.bradius!)),
child: widget.child,
);
}
}

View File

@ -0,0 +1,223 @@
import 'package:discover_module/contacts_module/constants.dart';
import 'package:discover_module/contacts_module/custom_widget/text.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_Certificate_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_aff_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_awards_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_education_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_email_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_event_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_location_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_pno_k2.dart';
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_training_k2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class CustomExpansionTile<T> extends StatefulWidget {
final String title;
final List<T>? itemList;
final String buttonText;
final String field1;
final String field2;
bool? noexpand;
final VoidCallback? onButtonPressed; // Add this parameter for button callback
final Function(T) onItemSelected;
CustomExpansionTile({
Key? key,
required this.title,
this.itemList,
required this.buttonText,
required this.onItemSelected,
required this.field1,
required this.field2,
this.noexpand,
this.onButtonPressed, // Initialize it
}) : super(key: key);
@override
_CustomExpansionTileState createState() => _CustomExpansionTileState<T>();
}
class _CustomExpansionTileState<T> extends State<CustomExpansionTile<T>> {
bool _isExpanded = false;
//var noexpand;
@override
Widget build(BuildContext context) {
print("Chekingg_Field_one: ${widget.field1}");
return ListTileTheme(
dense: true,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Container(
child: Card(
margin: EdgeInsets.all(1.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(0.0),
),
color: Constants.bgwhitecolor,
child: ExpansionTile(
backgroundColor: Constants.bgwhitecolor,
initiallyExpanded: false,
maintainState: true,
onExpansionChanged: (bool expanded) {
setState(() {
_isExpanded = expanded;
});
},
trailing: Icon(
_isExpanded
? Icons.keyboard_arrow_up
: Icons.keyboard_arrow_down,
color: Colors.black,
),
title: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text1(
title: widget.title,
txtcolor: Colors.black,
fontweight: FontWeight.normal,
txtfont: 16.0,
),
const SizedBox(width: 8.0),
Text1(
title: "(${widget.itemList!.length})",
txtcolor: Colors.black,
fontweight: FontWeight.normal,
txtfont: 16.0,
),
],
),
children: [
Visibility(
visible: widget.noexpand!,
child: Scrollbar(
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Container(
constraints: BoxConstraints(
minWidth: MediaQuery.of(context).size.width,
),
color: Colors.white,
child: DataTable(
showCheckboxColumn: false,
columns: [
DataColumn(
label: Expanded(
child: Text(
widget.field1 ?? 'Item',
style: TextStyle(fontWeight: FontWeight.w600),
softWrap: true,
),
),
),
DataColumn(
label: Expanded(
child: Text(
widget.field2 ?? 'Details',
style: TextStyle(fontWeight: FontWeight.w600),
),
),
),
],
rows: List.generate(widget.itemList!.take(2).length,
(index) {
final item = widget.itemList![index];
return DataRow(
onSelectChanged: (value) {
widget.onItemSelected(widget.itemList![index]);
},
cells: [
DataCell(getdatacel1(item)),
DataCell(
getdatacel2(item),
),
],
);
}),
),
),
),
),
),
Visibility(
visible: widget.noexpand!,
child: Container(
color: Colors.white,
child: Align(
alignment: Alignment.center,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: OutlinedButton(
onPressed: widget.onButtonPressed,
child: Text(
widget.buttonText,
style: TextStyle(color: Constants.k2color),
),
style: OutlinedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
),
),
),
),
),
],
),
),
),
),
);
}
getdatacel1(T location) {
if (location is Data) {
return Text1(title: "${location.address1}");
} else if (location is DataPhno) {
return Text1(title: "${location.phoneTypeName}");
} else if (location is EmailData) {
return Text1(title: "${location.emailTypeName}");
} else if (location is TrainingList) {
return Text1(title: "${location.organizationId}");
} else if (location is EducationList) {
return Text1(title: "${location.organizationId}");
} else if (location is AwardsList) {
return Text1(title: "${location.name}");
} else if (location is CertificateList) {
return Text1(title: "${location.organizationId}");
} else if (location is AffList) {
return Text1(title: "${location.title}");
} else if (location is EventList) {
return Text1(title: "${location.name}");
}
}
getdatacel2(T location) {
if (location is Data) {
return Text1(title: "${location.postalCode}");
} else if (location is DataPhno) {
return Text1(title: "${location.number}");
} else if (location is EmailData) {
return Text1(title: "${location.email}");
} else if (location is TrainingList) {
return Text1(title: "${location.degree}");
} else if (location is EducationList) {
return Text1(title: "${location.degree}");
} else if (location is AwardsList) {
return Text1(title: "${location.startDate} ${location.endDate}");
} else if (location is CertificateList) {
return Text1(title: "${location.specialty}");
} else if (location is AffList) {
return Text1(title: "${location.role}");
} else if (location is EventList) {
return Text1(title: "${location.notes}");
}
}
}

View File

@ -0,0 +1,78 @@
import 'package:discover_module/contacts_module/ui_screen/newformlist.dart';
import 'package:flutter/material.dart';
class CustomFloatingBtn extends StatefulWidget {
final double? height;
final double? width;
final Color? color;
final double? borderWidth;
final double? borderRadius;
final IconData? icon;
final Color? iconColor;
final double? iconsize;
final VoidCallbackAction? ontap;
const CustomFloatingBtn(
{super.key,
this.height,
this.width,
this.color,
this.borderRadius,
this.borderWidth,
this.ontap,
this.icon,
this.iconColor,
this.iconsize});
@override
State<CustomFloatingBtn> createState() => _CustomFloatingBtnState();
}
class _CustomFloatingBtnState extends State<CustomFloatingBtn> {
@override
Widget build(BuildContext context) {
return Container(
width: widget.width,
height: widget.height,
decoration: BoxDecoration(
border: Border.all(
color: widget.color!, // Outer border color
width: 1.8,
),
borderRadius:
BorderRadius.circular(widget.borderRadius!), // Rounded border
boxShadow: [
BoxShadow(
color: widget.color!.withOpacity(0.2), // Shadow color with opacity
blurRadius: 5, // Shadow blur radius
spreadRadius: 2, // Spread of the shadow
offset: Offset(2, 2), // Shadow offset
),
],
),
child: FloatingActionButton(
// shape: CircleBorder(),
shape: RoundedRectangleBorder(
side: BorderSide(width: 7, color: widget.iconColor!),
borderRadius: BorderRadius.circular(widget.borderRadius!)),
onPressed: () async {
Navigator.push(
context, MaterialPageRoute(builder: (context) => FormList()));
},
foregroundColor: widget.iconColor,
backgroundColor: widget.color,
child: Text(
String.fromCharCode(widget.icon!.codePoint),
style: TextStyle(
color: widget.iconColor,
inherit: false,
fontSize: widget.iconsize,
fontWeight: FontWeight.w800,
fontFamily: Icons.space_dashboard_outlined.fontFamily,
),
),
),
);
}
}

View File

@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
class CustomSizedBox extends StatelessWidget {
final double? height;
final double? width;
const CustomSizedBox({this.height, this.width});
@override
Widget build(BuildContext context) {
return SizedBox(
height: height,
width: width,
);
}
}

View File

@ -0,0 +1,28 @@
import 'package:flutter/cupertino.dart';
class CustomSwitch extends StatefulWidget {
final Color? activeclor;
final bool? switchvalue;
final ValueChanged<bool>? onchanged;
const CustomSwitch(
{super.key, this.activeclor, this.switchvalue, this.onchanged});
@override
State<CustomSwitch> createState() => _CustomSwitchState();
}
class _CustomSwitchState extends State<CustomSwitch> {
@override
Widget build(BuildContext context) {
return CupertinoSwitch(
activeColor: widget.activeclor,
value: widget.switchvalue!,
onChanged: widget.onchanged
// (value) {
// setState(() {
// _switchValue = value;
// });
// },
);
}
}

View File

@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
class IconTextRow extends StatelessWidget {
final IconData? icon;
final String? text;
final double iconSize;
final Color iconColor;
final double fontSize;
const IconTextRow({
Key? key,
this.icon,
required this.text,
this.iconSize = 20.0,
this.iconColor = Colors
.blue, // Default color, replace with your Constants.k2color if needed
this.fontSize = 16.0,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Row(
children: [
// Icon(
// icon,
// size: iconSize,
// color: iconColor,
// ),
SizedBox(width: 8.0),
Text(
text ?? '', // Show empty string if text is null
style: TextStyle(fontSize: fontSize),
),
],
);
}
}

View File

@ -0,0 +1,160 @@
import 'package:discover_module/contacts_module/custom_widget/clickable_row.dart';
import 'package:discover_module/contacts_module/custom_widget/custiom_profilepic.dart';
import 'package:discover_module/contacts_module/custom_widget/custom_card.dart';
import 'package:discover_module/contacts_module/custom_widget/text.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import '../constants.dart';
class ProfileCard extends StatefulWidget {
final String? name;
final String? spl;
final String? imgurl;
final String? email;
final String? pno;
final String? address;
const ProfileCard(
{super.key,
this.name,
this.spl,
this.imgurl,
this.email,
this.pno,
this.address});
@override
State<ProfileCard> createState() => _ProfileCardState();
}
class _ProfileCardState extends State<ProfileCard> {
@override
Widget build(BuildContext context) {
return CustomCard(
elevation: 6,
color: Constants.profilecard,
bradius: 28,
child: Column(
children: [
Padding(
padding: const EdgeInsets.only(
left: 15.0, right: 15.0, top: 15.0, bottom: 15.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Flexible(
flex: 7,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text1(
title: widget.name ?? " ",
txtcolor: Colors.white,
fontweight: FontWeight.bold,
txtfont: 18.0),
Text1(
title: widget.spl ?? "",
txtcolor: Colors.white,
fontweight: FontWeight.normal,
txtfont: 14.0),
],
),
),
Flexible(
flex: 3,
child: Container(
child: CustomProfile(
imgstring: widget.imgurl,
fontsize: 12.0,
radius: 32,
name: widget.name,
),
),
),
],
),
),
ClickRow(
icon: Icons.email,
text: widget.email ?? "",
onTap: () async {
await emailSend(widget.email);
},
),
SizedBox(
height: 8.0,
),
ClickRow(
icon: Icons.phone,
text: widget.pno ?? "",
onTap: () async {
await callinfo(widget.pno);
},
),
SizedBox(
height: 8.0,
),
ClickRow(
icon: Icons.location_pin,
text: widget.address ??
"Icahn School of Medicine at mount sinai, United States 580047",
onTap: _openMapsByAddress,
),
SizedBox(
height: 8.0,
),
],
),
);
}
}
Future<void> _openMapsByAddress() async {
final address = 'Italy';
final Uri mapsUri = Uri(
scheme: 'https',
host: 'www.google.com',
path: 'maps/search/',
query: address,
);
if (!await launchUrl(mapsUri)) {
throw 'Could not launch $mapsUri';
}
}
Future<void> emailSend(email) async {
String? encodeQueryParameters(Map<String, String> params) {
return params.entries
.map((MapEntry<String, String> entry) =>
Uri.encodeComponent(entry.key) +
'=' +
Uri.encodeComponent(entry.value))
.join('&');
}
final Uri emailLaunchUri = Uri(
scheme: 'mailto',
path: email,
query: encodeQueryParameters(<String, String>{
'subject': 'Example Subject',
'body': 'Hello, this is a sample body text.',
}),
);
if (await launchUrl(emailLaunchUri)) {
launchUrl(emailLaunchUri);
} else {
throw 'Could not launch $emailLaunchUri';
}
}
Future<void> callinfo(pno) async {
final call = Uri.parse('tel:$pno');
if (await canLaunchUrl(call)) {
launchUrl(call);
} else {
throw 'Could not launch $call';
}
}

View File

@ -0,0 +1,25 @@
import 'package:discover_module/contacts_module/custom_widget/text.dart';
import 'package:flutter/material.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
class Alert extends StatelessWidget {
Alert({super.key, required this.data, required this.onPressed});
String? data;
VoidCallbackAction? oidCallbackAction;
final void Function() onPressed;
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text1(
title: "Alert",
txtfont: 22.0,
),
content: Text1(
title: data!,
txtfont: 18.0,
),
actions: [TextButton(onPressed: onPressed, child: Text("Ok"))],
);
}
}

View File

@ -23,6 +23,8 @@ class _Text1State extends State<Text1> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Text( return Text(
widget.title, widget.title,
softWrap: true,
maxLines: 5,
style: TextStyle( style: TextStyle(
color: widget.txtcolor, color: widget.txtcolor,
fontSize: widget.txtfont, fontSize: widget.txtfont,

View File

@ -0,0 +1,272 @@
// import 'package:discover_module/storage_hive/kol_info/kol_info_model_hive.dart';
import 'package:hive_flutter/hive_flutter.dart';
class HiveFunctions {
// String userHiveBox="User Box";
// Box which will use to store the things
static final _contactbox = Hive.box("mycontact");
static var box1 = Hive.box('checkvalue');
static final apihcpdata = Hive.box("hcpdata");
static final apihcpdata123 = Hive.box('kolshive');
static createUser(Map data) {
_contactbox.add(data);
}
static List getAllUsers11() {
final data = _contactbox.keys.map((key) {
final value = _contactbox.get(key);
print("Checking_Name : $value");
return {
"inid": value["inid"],
"id": value["id"],
"name": value["name"],
"org": value["org"],
"addr": value["addr"],
"phone": value["phone"],
"phone_no": value["phone_no"],
"email": value["email"],
"summarry": value["summarry"],
"speciality": value["speciality"],
"sub_speciality": value["sub_speciality"],
"img_path": value["img_path"]
};
}).toList();
return data.reversed.toList();
}
static List getAllUsers() {
final data = _contactbox.keys.map((key) {
final value = _contactbox.get(key);
print("Checking_Name : $value");
return {
"id": value["id"],
"name": value["name"],
"org": value["org"],
"addr": value["addr"],
"phone": value["phone"],
"phone_no": value["phone_no"],
"email": value["email"],
"affiliations_count": value["affiliations_count"],
"events_count": value["events_count"],
"publications_count": value["publications_count"],
"trail_count": value["trail_count"],
"summarry": value["summarry"],
"license_no": value["license_no"],
"p_suffix": value["p_suffix"],
"speciality": value["speciality"],
"sub_speciality": value["sub_speciality"],
"img_path": value["img_path"]
};
}).toList();
return data;
}
static List getindexUsers() {
final data = _contactbox.keys.map((key) {
final value = _contactbox.get(key);
print("Checking_Name : $value");
return {
"name": value["name"],
"org": value["org"],
"adrr": value["adrr"],
"phone": value["phone"],
"Pphone": value["Pphone"],
"email": value["email"],
"affno": value["affno"],
"eveno": value["eveno"],
"pubno": value["pubno"],
"trailno": value["trailno"]
};
}).toList();
return data.reversed.toList();
}
//static deleteUser112(row) {}
static deleteUser11(id) async {
print("Hive_id: $id");
for (var entry in _contactbox.toMap().entries) {
var contactData = entry.value;
print("Selected_del_value: $contactData");
if (contactData['id'] == id) {
print("entry.keyentry.key: ${entry.key}.");
// Found the contact with the matching id
await _contactbox.delete(entry.key); // Delete by key
print("Record with id $id has been deleted.");
return; // Exit the function after deletion
}
}
}
static Future<void> deleteUser(int selectedremoveIndic) async {
print("storeddelData_id: ${selectedremoveIndic}");
// final userId = "some_user_id"; // Replace with the actual ID you want to query
final value = _contactbox.get(selectedremoveIndic - 1);
print("ValueeeGet: $value");
if (value == null) {
final value1 = _contactbox.get(selectedremoveIndic);
print("Valueee11Get: $value1");
print("UniqueId11 : ${value["inid"]}");
} else {
final value1 = _contactbox.get(2);
print("Valueee11Get: $value1");
print("UniqueId111 : ${value["inid"]}");
}
}
static storehcpdata(Map data) {
apihcpdata.add(data);
}
static gethcpdata() {
return apihcpdata.values.toList();
}
static List getindexUser(String query) {
//static getindexUser(String text) async {
print("Text_issssssS: $query");
final value = _contactbox.values.toList();
print("Checking_Name_Offline_Searchh : ${value}");
// final offlinesearch1 = value.map((e) => e["name"].toString()).toList();
// print("Checking_offlinesearch1 : ${offlinesearch1}");
List data = value
.where((hcp) =>
hcp['name'].toLowerCase().contains(query.toLowerCase()) ||
hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ||
hcp['addr'].toLowerCase().contains(query.toLowerCase()))
.toList();
print("Checking_Name_data : ${data}");
return data.toList();
}
static getuser(int selectedremoveIndic) {
final data = _contactbox.keys.map((selectedremoveIndic) {
final value = _contactbox.get(selectedremoveIndic);
print("Checking_Name111 : $value");
return {
"inid": value["inid"],
"id": value["id"],
"name": value["name"],
"org": value["org"],
"addr": value["addr"],
"phone": value["phone"],
"phone_no": value["phone_no"],
"email": value["email"],
"summarry": value["summarry"],
"speciality": value["speciality"],
"sub_speciality": value["sub_speciality"],
"img_path": value["img_path"]
};
}).toList();
return data;
}
static getAllhcpdata(String? option) {
List myhcpname = _contactbox.values.toList();
if (option == "HCP Name") {
return myhcpname.map((e) => e["name"].toString()).toList();
} else {
return myhcpname.map((e) => e["speciality"].toString()).toList();
}
}
static List OfflineStored_getindexUser(String query) {
//static getindexUser(String text) async {
print("Text_issssssS: $query");
final value = apihcpdata123.values.toList();
print("Checking_Name_Offline_Searchh : ${value}");
// final offlinesearch1 = value.map((e) => e["name"].toString()).toList();
// print("Checking_offlinesearch1 : ${offlinesearch1}");
List data = value
.where((hcp) =>
hcp['name'].toLowerCase().contains(query.toLowerCase()) ||
// (hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ??
// hcp['spl'].toLowerCase().contains(query.toLowerCase())) ||
hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ||
hcp['addr'].toLowerCase().contains(query.toLowerCase()))
.toList();
print("Checking_Name_data : ${data}");
return data.toList();
}
static Map<String, dynamic>? findRecordById1(String selectedIndic) {
final list = _contactbox.values.toList();
return list
.firstWhere((element) => element['id'] == int.parse(selectedIndic));
}
static savemyContact(Map<String, dynamic> row) async {
print("CheckingRowww ${row!["email"]}");
final value1 = await _contactbox.values.toList();
List value11 = await value1
.where((element) => element["email"] == row["email"])
.toList();
print("Getted_valueee: ${value11}");
if (value11.isEmpty) {
print("Getted_valueee_imaEmpty");
Map<String, dynamic> data = await {
"id": row["id"],
"name": row["name"],
"org": row["org"],
"addr": row["addr"],
"phone": row["phone"],
"phone_no": row["phone_no"],
"email": row["email"],
"summarry": row["summarry"],
"speciality": row["speciality"],
"sub_speciality": row["sub_speciality"],
"img_path": row["img_path"],
"loc_count": "10",
};
print("Inserting_data_is: $data");
await _contactbox.put(await getNextAutoIncrementValue(), data);
// await _contactbox.add(row);
}
}
static 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;
}
}

View File

@ -0,0 +1,63 @@
// To parse this JSON data, do
//
// final affiliations = affiliationsFromJson(jsonString);
import 'dart:convert';
List<Affiliations> affiliationsFromJson(String str) => List<Affiliations>.from(
json.decode(str).map((x) => Affiliations.fromJson(x)));
String affiliationsToJson(List<Affiliations> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Affiliations {
int id;
int userId;
String orgName;
String dept;
String role;
String timeFrame;
String orgType;
String emgType;
dynamic createdAt;
dynamic updatedAt;
Affiliations({
required this.id,
required this.userId,
required this.orgName,
required this.dept,
required this.role,
required this.timeFrame,
required this.orgType,
required this.emgType,
required this.createdAt,
required this.updatedAt,
});
factory Affiliations.fromJson(Map<String, dynamic> json) => Affiliations(
id: json["id"],
userId: json["user_id"],
orgName: json["org_name"],
dept: json["dept"],
role: json["role"],
timeFrame: json["time_frame"],
orgType: json["org_type"],
emgType: json["emg_type"],
createdAt: json["created_at"],
updatedAt: json["updated_at"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"org_name": orgName,
"dept": dept,
"role": role,
"time_frame": timeFrame,
"org_type": orgType,
"emg_type": emgType,
"created_at": createdAt,
"updated_at": updatedAt,
};
}

View File

@ -0,0 +1,59 @@
// To parse this JSON data, do
//
// final awa = awaFromJson(jsonString);
import 'dart:convert';
List<Awa> awaFromJson(String str) =>
List<Awa>.from(json.decode(str).map((x) => Awa.fromJson(x)));
String awaToJson(List<Awa> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Awa {
int id;
int userId;
String educationType;
String institutionName;
String degree;
String specialty;
String timeFrame;
String url1;
String url2;
Awa({
required this.id,
required this.userId,
required this.educationType,
required this.institutionName,
required this.degree,
required this.specialty,
required this.timeFrame,
required this.url1,
required this.url2,
});
factory Awa.fromJson(Map<String, dynamic> json) => Awa(
id: json["id"],
userId: json["user_id"],
educationType: json["Education Type"],
institutionName: json["Institution Name"],
degree: json["Degree"],
specialty: json["Specialty"],
timeFrame: json["Time Frame"],
url1: json["Url1"],
url2: json["Url2"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Education Type": educationType,
"Institution Name": institutionName,
"Degree": degree,
"Specialty": specialty,
"Time Frame": timeFrame,
"Url1": url1,
"Url2": url2,
};
}

View File

@ -0,0 +1,59 @@
// To parse this JSON data, do
//
// final cer = cerFromJson(jsonString);
import 'dart:convert';
List<Cer> cerFromJson(String str) =>
List<Cer>.from(json.decode(str).map((x) => Cer.fromJson(x)));
String cerToJson(List<Cer> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Cer {
int id;
int userId;
String educationType;
String institutionName;
String degree;
String specialty;
int timeFrame;
String url1;
String url2;
Cer({
required this.id,
required this.userId,
required this.educationType,
required this.institutionName,
required this.degree,
required this.specialty,
required this.timeFrame,
required this.url1,
required this.url2,
});
factory Cer.fromJson(Map<String, dynamic> json) => Cer(
id: json["id"],
userId: json["user_id"],
educationType: json["Education Type"],
institutionName: json["Institution Name"],
degree: json["Degree"],
specialty: json["Specialty"],
timeFrame: json["Time Frame"],
url1: json["Url1"],
url2: json["Url2"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Education Type": educationType,
"Institution Name": institutionName,
"Degree": degree,
"Specialty": specialty,
"Time Frame": timeFrame,
"Url1": url1,
"Url2": url2,
};
}

View File

@ -0,0 +1,51 @@
// To parse this JSON data, do
//
// final edu = eduFromJson(jsonString);
import 'dart:convert';
List<Edu> eduFromJson(String str) =>
List<Edu>.from(json.decode(str).map((x) => Edu.fromJson(x)));
String eduToJson(List<Edu> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Edu {
int id;
int userId;
String educationType;
String institutionName;
String degree;
String specialty;
int timeFrame;
Edu({
required this.id,
required this.userId,
required this.educationType,
required this.institutionName,
required this.degree,
required this.specialty,
required this.timeFrame,
});
factory Edu.fromJson(Map<String, dynamic> json) => Edu(
id: json["id"],
userId: json["user_id"],
educationType: json["Education Type"],
institutionName: json["Institution Name"],
degree: json["Degree"],
specialty: json["Specialty"],
timeFrame: json["Time Frame"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Education Type": educationType,
"Institution Name": institutionName,
"Degree": degree,
"Specialty": specialty,
"Time Frame": timeFrame,
};
}

View File

@ -0,0 +1,39 @@
// To parse this JSON data, do
//
// final email = emailFromJson(jsonString);
import 'dart:convert';
List<Email> emailFromJson(String str) =>
List<Email>.from(json.decode(str).map((x) => Email.fromJson(x)));
String emailToJson(List<Email> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Email {
int id;
int userId;
String emailType;
String email;
Email({
required this.id,
required this.userId,
required this.emailType,
required this.email,
});
factory Email.fromJson(Map<String, dynamic> json) => Email(
id: json["id"],
userId: json["user_id"],
emailType: json["Email Type"],
email: json["Email"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Email Type": emailType,
"Email": email,
};
}

View File

@ -0,0 +1,59 @@
// To parse this JSON data, do
//
// final events = eventsFromJson(jsonString);
import 'dart:convert';
List<Events> eventsFromJson(String str) =>
List<Events>.from(json.decode(str).map((x) => Events.fromJson(x)));
String eventsToJson(List<Events> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Events {
int id;
int userId;
String eventName;
String sessionType;
String topic;
String role;
DateTime? createdAt;
DateTime? updatedAt;
Events({
required this.id,
required this.userId,
required this.eventName,
required this.sessionType,
required this.topic,
required this.role,
required this.createdAt,
required this.updatedAt,
});
factory Events.fromJson(Map<String, dynamic> json) => Events(
id: json["id"],
userId: json["user_id"],
eventName: json["event_name"],
sessionType: json["session_type"],
topic: json["topic"],
role: json["role"],
createdAt: json["created_at"] == null
? null
: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"event_name": eventName,
"session_type": sessionType,
"topic": topic,
"role": role,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,99 @@
// To parse this JSON data, do
//
// final table = tableFromJson(jsonString);
import 'dart:convert';
List<Table> tableFromJson(String str) =>
List<Table>.from(json.decode(str).map((x) => Table.fromJson(x)));
String tableToJson(List<Table> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Table {
int id;
String name;
String email;
DateTime emailVerifiedAt;
String summarry;
String addr;
int licenseNo;
String pSuffix;
String speciality;
String subSpeciality;
int phoneNo;
int rank;
int score;
DateTime? createdAt;
DateTime? updatedAt;
int eventsCount;
int affiliationsCount;
int publicationsCount;
Table({
required this.id,
required this.name,
required this.email,
required this.emailVerifiedAt,
required this.summarry,
required this.addr,
required this.licenseNo,
required this.pSuffix,
required this.speciality,
required this.subSpeciality,
required this.phoneNo,
required this.rank,
required this.score,
required this.createdAt,
required this.updatedAt,
required this.eventsCount,
required this.affiliationsCount,
required this.publicationsCount,
});
factory Table.fromJson(Map<String, dynamic> json) => Table(
id: json["id"],
name: json["name"],
email: json["email"],
emailVerifiedAt: DateTime.parse(json["email_verified_at"]),
summarry: json["summarry"],
addr: json["addr"],
licenseNo: json["license_no"],
pSuffix: json["p_suffix"],
speciality: json["speciality"],
subSpeciality: json["sub_speciality"],
phoneNo: json["phone_no"],
rank: json["rank"],
score: json["score"],
createdAt: json["created_at"] == null
? null
: DateTime.parse(json["created_at"]),
updatedAt: json["updated_at"] == null
? null
: DateTime.parse(json["updated_at"]),
eventsCount: json["events_count"],
affiliationsCount: json["affiliations_count"],
publicationsCount: json["publications_count"],
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"email": email,
"email_verified_at": emailVerifiedAt.toIso8601String(),
"summarry": summarry,
"addr": addr,
"license_no": licenseNo,
"p_suffix": pSuffix,
"speciality": speciality,
"sub_speciality": subSpeciality,
"phone_no": phoneNo,
"rank": rank,
"score": score,
"created_at": createdAt?.toIso8601String(),
"updated_at": updatedAt?.toIso8601String(),
"events_count": eventsCount,
"affiliations_count": affiliationsCount,
"publications_count": publicationsCount,
};
}

View File

@ -0,0 +1,122 @@
// To parse this JSON data, do
//
// final dataCertificate = dataCertificateFromJson(jsonString);
import 'dart:convert';
DataCertificate dataCertificateFromJson(String str) =>
DataCertificate.fromJson(json.decode(str));
String dataCertificateToJson(DataCertificate data) =>
json.encode(data.toJson());
class DataCertificate {
int? code;
String? message;
List<CertificateList>? data;
int? lastPage;
int? lastRow;
int? count;
DataCertificate({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataCertificate.fromJson(Map<String, dynamic> json) =>
DataCertificate(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<CertificateList>.from(
json["data"]!.map((x) => CertificateList.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class CertificateList {
String? uniqueId;
int? kolId;
int? clientId;
int? organizationId;
dynamic specialty;
String? startDate;
String? endDate;
String? url;
dynamic switchedUserId;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
CertificateList({
this.uniqueId,
this.kolId,
this.clientId,
this.organizationId,
this.specialty,
this.startDate,
this.endDate,
this.url,
this.switchedUserId,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory CertificateList.fromJson(Map<String, dynamic> json) =>
CertificateList(
uniqueId: json["unique_id"],
kolId: json["kol_id"],
clientId: json["client_id"],
organizationId: json["organization_id"],
specialty: json["specialty"],
startDate: json["start_date"],
endDate: json["end_date"],
url: json["url"],
switchedUserId: json["switched_user_id"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"kol_id": kolId,
"client_id": clientId,
"organization_id": organizationId,
"specialty": specialty,
"start_date": startDate,
"end_date": endDate,
"url": url,
"switched_user_id": switchedUserId,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,144 @@
// To parse this JSON data, do
//
// final dataAffiliations = dataAffiliationsFromJson(jsonString);
import 'dart:convert';
DataAffiliations dataAffiliationsFromJson(String str) =>
DataAffiliations.fromJson(json.decode(str));
String dataAffiliationsToJson(DataAffiliations data) =>
json.encode(data.toJson());
class DataAffiliations {
int? code;
String? message;
List<AffList>? data;
int? lastPage;
int? lastRow;
int? count;
DataAffiliations({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataAffiliations.fromJson(Map<String, dynamic> json) =>
DataAffiliations(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<AffList>.from(json["data"]!.map((x) => AffList.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class AffList {
String? uniqueId;
String? department;
String? title;
String? startYear;
String? endYear;
String? role;
dynamic switchedUserId;
dynamic kolOrganizationUniqueId;
dynamic kolOrganizationName;
String? kolOrganizationType;
String? kolEngagementType;
String? kolEngagementTypeUniqueId;
String? startAndEndYear;
String? createdByUser;
String? updatedByUser;
dynamic deletedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
dynamic formattedDeletedAt;
AffList({
this.uniqueId,
this.department,
this.title,
this.startYear,
this.endYear,
this.role,
this.switchedUserId,
this.kolOrganizationUniqueId,
this.kolOrganizationName,
this.kolOrganizationType,
this.kolEngagementType,
this.kolEngagementTypeUniqueId,
this.startAndEndYear,
this.createdByUser,
this.updatedByUser,
this.deletedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
this.formattedDeletedAt,
});
factory AffList.fromJson(Map<String, dynamic> json) => AffList(
uniqueId: json["unique_id"],
department: json["department"],
title: json["title"],
startYear: json["start_year"],
endYear: json["end_year"],
role: json["role"],
switchedUserId: json["switched_user_id"],
kolOrganizationUniqueId: json["kol_organization_unique_id"],
kolOrganizationName: json["kol_organization_name"],
kolOrganizationType: json["kol_organization_type"],
kolEngagementType: json["kol_engagement_type"],
kolEngagementTypeUniqueId: json["kol_engagement_type_unique_id"],
startAndEndYear: json["start_and_end_year"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
deletedByUser: json["deleted_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
formattedDeletedAt: json["formatted_deleted_at"],
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"department": department,
"title": title,
"start_year": startYear,
"end_year": endYear,
"role": role,
"switched_user_id": switchedUserId,
"kol_organization_unique_id": kolOrganizationUniqueId,
"kol_organization_name": kolOrganizationName,
"kol_organization_type": kolOrganizationType,
"kol_engagement_type": kolEngagementType,
"kol_engagement_type_unique_id": kolEngagementTypeUniqueId,
"start_and_end_year": startAndEndYear,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"deleted_by_user": deletedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
"formatted_deleted_at": formattedDeletedAt,
};
}

View File

@ -0,0 +1,115 @@
// To parse this JSON data, do
//
// final dataAwards = dataAwardsFromJson(jsonString);
import 'dart:convert';
DataAwards dataAwardsFromJson(String str) =>
DataAwards.fromJson(json.decode(str));
String dataAwardsToJson(DataAwards data) => json.encode(data.toJson());
class DataAwards {
int? code;
String? message;
List<AwardsList>? data;
int? lastPage;
int? lastRow;
int? count;
DataAwards({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataAwards.fromJson(Map<String, dynamic> json) => DataAwards(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<AwardsList>.from(
json["data"]!.map((x) => AwardsList.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class AwardsList {
String? uniqueId;
int? kolId;
int? clientId;
String? name;
String? startDate;
String? endDate;
String? url;
dynamic switchedUserId;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
AwardsList({
this.uniqueId,
this.kolId,
this.clientId,
this.name,
this.startDate,
this.endDate,
this.url,
this.switchedUserId,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory AwardsList.fromJson(Map<String, dynamic> json) => AwardsList(
uniqueId: json["unique_id"],
kolId: json["kol_id"],
clientId: json["client_id"],
name: json["name"],
startDate: json["start_date"],
endDate: json["end_date"],
url: json["url"],
switchedUserId: json["switched_user_id"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"kol_id": kolId,
"client_id": clientId,
"name": name,
"start_date": startDate,
"end_date": endDate,
"url": url,
"switched_user_id": switchedUserId,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,123 @@
// To parse this JSON data, do
//
// final dataEducation = dataEducationFromJson(jsonString);
import 'dart:convert';
DataEducation dataEducationFromJson(String str) =>
DataEducation.fromJson(json.decode(str));
String dataEducationToJson(DataEducation data) => json.encode(data.toJson());
class DataEducation {
int? code;
String? message;
List<EducationList>? data;
int? lastPage;
int? lastRow;
int? count;
DataEducation({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataEducation.fromJson(Map<String, dynamic> json) => DataEducation(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<EducationList>.from(
json["data"]!.map((x) => EducationList.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class EducationList {
String? uniqueId;
int? kolId;
int? clientId;
dynamic organizationId;
dynamic degree;
dynamic specialty;
String? startDate;
String? endDate;
String? url;
dynamic switchedUserId;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
EducationList({
this.uniqueId,
this.kolId,
this.clientId,
this.organizationId,
this.degree,
this.specialty,
this.startDate,
this.endDate,
this.url,
this.switchedUserId,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory EducationList.fromJson(Map<String, dynamic> json) => EducationList(
uniqueId: json["unique_id"],
kolId: json["kol_id"],
clientId: json["client_id"],
organizationId: json["organization_id"],
degree: json["degree"],
specialty: json["specialty"],
startDate: json["start_date"],
endDate: json["end_date"],
url: json["url"],
switchedUserId: json["switched_user_id"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"kol_id": kolId,
"client_id": clientId,
"organization_id": organizationId,
"degree": degree,
"specialty": specialty,
"start_date": startDate,
"end_date": endDate,
"url": url,
"switched_user_id": switchedUserId,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,102 @@
// To parse this JSON data, do
//
// final dataEmail = dataEmailFromJson(jsonString);
import 'dart:convert';
DataEmail dataEmailFromJson(String str) => DataEmail.fromJson(json.decode(str));
String dataEmailToJson(DataEmail data) => json.encode(data.toJson());
class DataEmail {
int? code;
String? message;
List<EmailData>? data;
int? lastPage;
int? lastRow;
int? count;
DataEmail({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataEmail.fromJson(Map<String, dynamic> json) => DataEmail(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<EmailData>.from(
json["data"]!.map((x) => EmailData.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class EmailData {
String? uniqueId;
String? email;
String? kolUniqueId;
String? emailTypeName;
String? formattedIsPrimary;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
EmailData({
this.uniqueId,
this.email,
this.kolUniqueId,
this.emailTypeName,
this.formattedIsPrimary,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory EmailData.fromJson(Map<String, dynamic> json) => EmailData(
uniqueId: json["unique_id"],
email: json["email"],
kolUniqueId: json["kol_unique_id"],
emailTypeName: json["email_type_name"],
formattedIsPrimary: json["formatted_is_primary"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"email": email,
"kol_unique_id": kolUniqueId,
"email_type_name": emailTypeName,
"formatted_is_primary": formattedIsPrimary,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,98 @@
// To parse this JSON data, do
//
// final dataEvent = dataEventFromJson(jsonString);
import 'dart:convert';
DataEvent dataEventFromJson(String str) => DataEvent.fromJson(json.decode(str));
String dataEventToJson(DataEvent data) => json.encode(data.toJson());
class DataEvent {
int? code;
String? message;
List<EventList>? data;
int? lastPage;
int? lastRow;
int? count;
DataEvent({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataEvent.fromJson(Map<String, dynamic> json) => DataEvent(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<EventList>.from(
json["data"]!.map((x) => EventList.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class EventList {
String? uniqueId;
String? name;
dynamic notes;
int? partiallyReleasedEvent;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
EventList({
this.uniqueId,
this.name,
this.notes,
this.partiallyReleasedEvent,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory EventList.fromJson(Map<String, dynamic> json) => EventList(
uniqueId: json["unique_id"],
name: json["name"],
notes: json["notes"],
partiallyReleasedEvent: json["partially_released_event"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"name": name,
"notes": notes,
"partially_released_event": partiallyReleasedEvent,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,103 @@
// To parse this JSON data, do
//
// final fetchNotes = fetchNotesFromJson(jsonString);
import 'dart:convert';
FetchNotes fetchNotesFromJson(String str) =>
FetchNotes.fromJson(json.decode(str));
String fetchNotesToJson(FetchNotes data) => json.encode(data.toJson());
class FetchNotes {
int? code;
String? message;
List<HcpNotes>? data;
int? lastPage;
int? lastRow;
int? count;
FetchNotes({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory FetchNotes.fromJson(Map<String, dynamic> json) => FetchNotes(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<HcpNotes>.from(
json["data"]!.map((x) => HcpNotes.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class HcpNotes {
String? uniqueId;
String? userNote;
dynamic fileName;
dynamic documentUrl;
String? kolUniqueId;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
HcpNotes({
this.uniqueId,
this.userNote,
this.fileName,
this.documentUrl,
this.kolUniqueId,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory HcpNotes.fromJson(Map<String, dynamic> json) => HcpNotes(
uniqueId: json["unique_id"],
userNote: json["user_note"],
fileName: json["file_name"],
documentUrl: json["document_url"],
kolUniqueId: json["kol_unique_id"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"user_note": userNote,
"file_name": fileName,
"document_url": documentUrl,
"kol_unique_id": kolUniqueId,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,128 @@
class KolLocation {
int? code;
String? message;
List<Data>? data;
int? lastPage;
int? lastRow;
int? count;
KolLocation(
{this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count});
KolLocation.fromJson(Map<String, dynamic> json) {
code = json['code'];
message = json['message'];
if (json['data'] != null) {
data = <Data>[];
json['data'].forEach((v) {
data!.add(new Data.fromJson(v));
});
}
lastPage = json['last_page'];
lastRow = json['last_row'];
count = json['count'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['code'] = this.code;
data['message'] = this.message;
if (this.data != null) {
data['data'] = this.data!.map((v) => v.toJson()).toList();
}
data['last_page'] = this.lastPage;
data['last_row'] = this.lastRow;
data['count'] = this.count;
return data;
}
}
class Data {
String? uniqueId;
Null? orgInstitutionId;
String? address1;
String? postalCode;
String? kolUniqueId;
String? formattedIsPrimary;
String? organizationUniqueId;
String? organizationName;
String? countryUniqueId;
String? countryName;
String? stateUniqueId;
String? stateName;
String? cityUniqueId;
String? cityName;
String? createdByUser;
String? updatedByUser;
String? formattedCreatedAt;
String? formattedUpdatedAt;
Data(
{this.uniqueId,
this.orgInstitutionId,
this.address1,
this.postalCode,
this.kolUniqueId,
this.formattedIsPrimary,
this.organizationUniqueId,
this.organizationName,
this.countryUniqueId,
this.countryName,
this.stateUniqueId,
this.stateName,
this.cityUniqueId,
this.cityName,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt});
Data.fromJson(Map<String, dynamic> json) {
uniqueId = json['unique_id'];
orgInstitutionId = json['org_institution_id'];
address1 = json['address1'];
postalCode = json['postal_code'];
kolUniqueId = json['kol_unique_id'];
formattedIsPrimary = json['formatted_is_primary'];
organizationUniqueId = json['organization_unique_id'];
organizationName = json['organization_name'];
countryUniqueId = json['country_unique_id'];
countryName = json['country_name'];
stateUniqueId = json['state_unique_id'];
stateName = json['state_name'];
cityUniqueId = json['city_unique_id'];
cityName = json['city_name'];
createdByUser = json['created_by_user'];
updatedByUser = json['updated_by_user'];
formattedCreatedAt = json['formatted_created_at'];
formattedUpdatedAt = json['formatted_updated_at'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['unique_id'] = this.uniqueId;
data['org_institution_id'] = this.orgInstitutionId;
data['address1'] = this.address1;
data['postal_code'] = this.postalCode;
data['kol_unique_id'] = this.kolUniqueId;
data['formatted_is_primary'] = this.formattedIsPrimary;
data['organization_unique_id'] = this.organizationUniqueId;
data['organization_name'] = this.organizationName;
data['country_unique_id'] = this.countryUniqueId;
data['country_name'] = this.countryName;
data['state_unique_id'] = this.stateUniqueId;
data['state_name'] = this.stateName;
data['city_unique_id'] = this.cityUniqueId;
data['city_name'] = this.cityName;
data['created_by_user'] = this.createdByUser;
data['updated_by_user'] = this.updatedByUser;
data['formatted_created_at'] = this.formattedCreatedAt;
data['formatted_updated_at'] = this.formattedUpdatedAt;
return data;
}
}

View File

@ -0,0 +1,116 @@
// To parse this JSON data, do
//
// final dataPno = dataPnoFromJson(jsonString);
import 'dart:convert';
DataaPnoresponse dataPnoFromJson(String str) =>
DataaPnoresponse.fromJson(json.decode(str));
String dataPnoToJson(DataaPnoresponse data) => json.encode(data.toJson());
class DataaPnoresponse {
int? code;
String? message;
List<DataPhno>? data;
int? lastPage;
int? lastRow;
int? count;
DataaPnoresponse({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataaPnoresponse.fromJson(Map<String, dynamic> json) =>
DataaPnoresponse(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<DataPhno>.from(
json["data"]!.map((x) => DataPhno.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class DataPhno {
String? uniqueId;
int? number;
String? kolUniqueId;
String? phoneTypeName;
String? phoneTypeUniqueId;
String? formattedIsPrimary;
dynamic organizationUniqueId;
dynamic organizationName;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
DataPhno({
this.uniqueId,
this.number,
this.kolUniqueId,
this.phoneTypeName,
this.phoneTypeUniqueId,
this.formattedIsPrimary,
this.organizationUniqueId,
this.organizationName,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory DataPhno.fromJson(Map<String, dynamic> json) => DataPhno(
uniqueId: json["unique_id"],
number: json["number"],
kolUniqueId: json["kol_unique_id"],
phoneTypeName: json["phone_type_name"],
phoneTypeUniqueId: json["phone_type_unique_id"],
formattedIsPrimary: json["formatted_is_primary"],
organizationUniqueId: json["organization_unique_id"],
organizationName: json["organization_name"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"number": number,
"kol_unique_id": kolUniqueId,
"phone_type_name": phoneTypeName,
"phone_type_unique_id": phoneTypeUniqueId,
"formatted_is_primary": formattedIsPrimary,
"organization_unique_id": organizationUniqueId,
"organization_name": organizationName,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,127 @@
// To parse this JSON data, do
//
// final dataTraining = dataTrainingFromJson(jsonString);
import 'dart:convert';
DataTraining dataTrainingFromJson(String str) =>
DataTraining.fromJson(json.decode(str));
String dataTrainingToJson(DataTraining data) => json.encode(data.toJson());
class DataTraining {
int? code;
String? message;
List<TrainingList>? data;
int? lastPage;
int? lastRow;
int? count;
DataTraining({
this.code,
this.message,
this.data,
this.lastPage,
this.lastRow,
this.count,
});
factory DataTraining.fromJson(Map<String, dynamic> json) => DataTraining(
code: json["code"],
message: json["message"],
data: json["data"] == null
? []
: List<TrainingList>.from(
json["data"]!.map((x) => TrainingList.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": data == null
? []
: List<dynamic>.from(data!.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class TrainingList {
String? uniqueId;
int? kolId;
int? orgId;
int? clientId;
dynamic organizationId;
dynamic degree;
dynamic specialty;
String? startDate;
String? endDate;
String? url;
dynamic switchedUserId;
String? createdByUser;
String? updatedByUser;
DateTime? formattedCreatedAt;
DateTime? formattedUpdatedAt;
TrainingList({
this.uniqueId,
this.kolId,
this.orgId,
this.clientId,
this.organizationId,
this.degree,
this.specialty,
this.startDate,
this.endDate,
this.url,
this.switchedUserId,
this.createdByUser,
this.updatedByUser,
this.formattedCreatedAt,
this.formattedUpdatedAt,
});
factory TrainingList.fromJson(Map<String, dynamic> json) => TrainingList(
uniqueId: json["unique_id"],
kolId: json["kol_id"],
orgId: json["org_id"],
clientId: json["client_id"],
organizationId: json["organization_id"],
degree: json["degree"],
specialty: json["specialty"],
startDate: json["start_date"],
endDate: json["end_date"],
url: json["url"],
switchedUserId: json["switched_user_id"],
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
formattedCreatedAt: json["formatted_created_at"] == null
? null
: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: json["formatted_updated_at"] == null
? null
: DateTime.parse(json["formatted_updated_at"]),
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"kol_id": kolId,
"org_id": orgId,
"client_id": clientId,
"organization_id": organizationId,
"degree": degree,
"specialty": specialty,
"start_date": startDate,
"end_date": endDate,
"url": url,
"switched_user_id": switchedUserId,
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"formatted_created_at": formattedCreatedAt?.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt?.toIso8601String(),
};
}

View File

@ -0,0 +1,272 @@
// To parse this JSON data, do
//
// final kolcontact = kolcontactFromJson(jsonString);
import 'dart:convert';
Kolcontact kolcontactFromJson(String str) =>
Kolcontact.fromJson(json.decode(str));
String kolcontactToJson(Kolcontact data) => json.encode(data.toJson());
class Kolcontact {
int code;
String message;
List<Datum> data;
int lastPage;
int lastRow;
int count;
Kolcontact({
required this.code,
required this.message,
required this.data,
required this.lastPage,
required this.lastRow,
required this.count,
});
factory Kolcontact.fromJson(Map<String, dynamic> json) => Kolcontact(
code: json["code"],
message: json["message"],
data: List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
lastPage: json["last_page"],
lastRow: json["last_row"],
count: json["count"],
);
Map<String, dynamic> toJson() => {
"code": code,
"message": message,
"data": List<dynamic>.from(data.map((x) => x.toJson())),
"last_page": lastPage,
"last_row": lastRow,
"count": count,
};
}
class Datum {
String uniqueId;
dynamic profileImage;
String? npiNum;
String fullName;
String? specialityName;
List<dynamic> subSpecialities;
dynamic primaryOrganization;
String? primaryEmail;
int? primaryPhoneNumber;
dynamic primaryFax;
dynamic primaryCountry;
dynamic primaryState;
dynamic primaryCity;
dynamic primaryPostalCode;
dynamic profileDocumentUniqueId;
dynamic profileDocumentImage;
dynamic latitude;
dynamic longitude;
List<dynamic> organizations;
List<Email> emails;
List<Address> address;
List<StateLicense> stateLicense;
String createdByUser;
String updatedByUser;
dynamic deletedByUser;
DateTime formattedCreatedAt;
DateTime formattedUpdatedAt;
dynamic formattedDeletedAt;
dynamic profile;
Datum({
required this.uniqueId,
required this.profileImage,
required this.npiNum,
required this.fullName,
required this.specialityName,
required this.subSpecialities,
required this.primaryOrganization,
required this.primaryEmail,
required this.primaryPhoneNumber,
required this.primaryFax,
required this.primaryCountry,
required this.primaryState,
required this.primaryCity,
required this.primaryPostalCode,
required this.profileDocumentUniqueId,
required this.profileDocumentImage,
required this.latitude,
required this.longitude,
required this.organizations,
required this.emails,
required this.address,
required this.stateLicense,
required this.createdByUser,
required this.updatedByUser,
required this.deletedByUser,
required this.formattedCreatedAt,
required this.formattedUpdatedAt,
required this.formattedDeletedAt,
required this.profile,
});
factory Datum.fromJson(Map<String, dynamic> json) => Datum(
uniqueId: json["unique_id"],
profileImage: json["profile_image"],
npiNum: json["npi_num"],
fullName: json["full_name"],
specialityName: json["speciality_name"],
subSpecialities:
List<dynamic>.from(json["sub_specialities"].map((x) => x)),
primaryOrganization: json["primary_organization"],
primaryEmail: json["primary_email"],
primaryPhoneNumber: json["primary_phone_number"],
primaryFax: json["primary_fax"],
primaryCountry: json["primary_country"],
primaryState: json["primary_state"],
primaryCity: json["primary_city"],
primaryPostalCode: json["primary_postal_code"],
profileDocumentUniqueId: json["profile_document_unique_id"],
profileDocumentImage: json["profile_document_image"],
latitude: json["latitude"],
longitude: json["longitude"],
organizations: List<dynamic>.from(json["organizations"].map((x) => x)),
emails: List<Email>.from(json["emails"].map((x) => Email.fromJson(x))),
address:
List<Address>.from(json["address"].map((x) => Address.fromJson(x))),
stateLicense: List<StateLicense>.from(
json["state_license"].map((x) => StateLicense.fromJson(x))),
createdByUser: json["created_by_user"],
updatedByUser: json["updated_by_user"],
deletedByUser: json["deleted_by_user"],
formattedCreatedAt: DateTime.parse(json["formatted_created_at"]),
formattedUpdatedAt: DateTime.parse(json["formatted_updated_at"]),
formattedDeletedAt: json["formatted_deleted_at"],
profile: json["profile"],
);
Map<String, dynamic> toJson() => {
"unique_id": uniqueId,
"profile_image": profileImage,
"npi_num": npiNum,
"full_name": fullName,
"speciality_name": specialityName,
"sub_specialities": List<dynamic>.from(subSpecialities.map((x) => x)),
"primary_organization": primaryOrganization,
"primary_email": primaryEmail,
"primary_phone_number": primaryPhoneNumber,
"primary_fax": primaryFax,
"primary_country": primaryCountry,
"primary_state": primaryState,
"primary_city": primaryCity,
"primary_postal_code": primaryPostalCode,
"profile_document_unique_id": profileDocumentUniqueId,
"profile_document_image": profileDocumentImage,
"latitude": latitude,
"longitude": longitude,
"organizations": List<dynamic>.from(organizations.map((x) => x)),
"emails": List<dynamic>.from(emails.map((x) => x.toJson())),
"address": List<dynamic>.from(address.map((x) => x.toJson())),
"state_license":
List<dynamic>.from(stateLicense.map((x) => x.toJson())),
"created_by_user": createdByUser,
"updated_by_user": updatedByUser,
"deleted_by_user": deletedByUser,
"formatted_created_at": formattedCreatedAt.toIso8601String(),
"formatted_updated_at": formattedUpdatedAt.toIso8601String(),
"formatted_deleted_at": formattedDeletedAt,
"profile": profile,
};
// @override
// String toString() {
// // TODO: implement toString
// return profileImage.toString();
// }
}
class Address {
String address1;
String? address2;
String country;
String? state;
City city;
Address({
required this.address1,
required this.address2,
required this.country,
required this.state,
required this.city,
});
factory Address.fromJson(Map<String, dynamic> json) => Address(
address1: json["address1"],
address2: json["address2"],
country: json["country"],
state: json["state"],
city: cityValues.map[json["city"]]!,
);
Map<String, dynamic> toJson() => {
"address1": address1,
"address2": address2,
"country": country,
"state": state,
"city": cityValues.reverse[city],
};
}
enum City { ONTARIO }
final cityValues = EnumValues({"Ontario": City.ONTARIO});
class Email {
dynamic type;
String phoneNo;
Email({
required this.type,
required this.phoneNo,
});
factory Email.fromJson(Map<String, dynamic> json) => Email(
type: json["type"],
phoneNo: json["phone_no"],
);
Map<String, dynamic> toJson() => {
"type": type,
"phone_no": phoneNo,
};
}
class StateLicense {
String licenseNumber;
dynamic stateCode;
StateLicense({
required this.licenseNumber,
required this.stateCode,
});
factory StateLicense.fromJson(Map<String, dynamic> json) => StateLicense(
licenseNumber: json["license_number"],
stateCode: json["state_code"],
);
Map<String, dynamic> toJson() => {
"license_number": licenseNumber,
"state_code": stateCode,
};
}
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,51 @@
// To parse this JSON data, do
//
// final loc = locFromJson(jsonString);
import 'dart:convert';
List<Loc> locFromJson(String str) =>
List<Loc>.from(json.decode(str).map((x) => Loc.fromJson(x)));
String locToJson(List<Loc> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Loc {
int id;
int userId;
String institution;
String address;
String city;
String state;
int postalCode;
Loc({
required this.id,
required this.userId,
required this.institution,
required this.address,
required this.city,
required this.state,
required this.postalCode,
});
factory Loc.fromJson(Map<String, dynamic> json) => Loc(
id: json["id"],
userId: json["user_id"],
institution: json["Institution"],
address: json["Address"],
city: json["City"],
state: json["State"],
postalCode: json["Postal_code"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Institution": institution,
"Address": address,
"City": city,
"State": state,
"Postal_code": postalCode,
};
}

View File

@ -0,0 +1,100 @@
// To parse this JSON data, do
//
// final nih = nihFromJson(jsonString);
import 'dart:convert';
List<Nih> nihFromJson(String str) =>
List<Nih>.from(json.decode(str).map((x) => Nih.fromJson(x)));
String nihToJson(List<Nih> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Nih {
int id;
int userId;
String piNames;
String firstName;
String middleName;
String lastName;
String organizationName;
String departmentName;
String orgCity;
String orgState;
String purpose;
String institute;
String totalCost;
String projectStart;
String projectEnd;
String budgetStart;
String budgetEnd;
String createdOn;
int piId;
Nih({
required this.id,
required this.userId,
required this.piNames,
required this.firstName,
required this.middleName,
required this.lastName,
required this.organizationName,
required this.departmentName,
required this.orgCity,
required this.orgState,
required this.purpose,
required this.institute,
required this.totalCost,
required this.projectStart,
required this.projectEnd,
required this.budgetStart,
required this.budgetEnd,
required this.createdOn,
required this.piId,
});
factory Nih.fromJson(Map<String, dynamic> json) => Nih(
id: json["id"],
userId: json["user_id"],
piNames: json["pi_names"],
firstName: json["first_name"],
middleName: json["middle_name"],
lastName: json["last_name"],
organizationName: json["organizationName"],
departmentName: json["departmentName"],
orgCity: json["org_city"],
orgState: json["org_state"],
purpose: json["purpose"],
institute: json["institute"],
totalCost: json["total_cost"],
projectStart: json["project_start"],
projectEnd: json["project_end"],
budgetStart: json["budget_start"],
budgetEnd: json["budget_end"],
createdOn: json["created_on"],
piId: json["pi_id"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"pi_names": piNames,
"first_name": firstName,
"middle_name": middleName,
"last_name": lastName,
"organizationName": organizationName,
"departmentName": departmentName,
"org_city": orgCity,
"org_state": orgState,
"purpose": purpose,
"institute": institute,
"total_cost": totalCost,
"project_start": projectStart,
"project_end": projectEnd,
"budget_start": budgetStart,
"budget_end": budgetEnd,
"created_on": createdOn,
"pi_id": piId,
};
}

View File

@ -0,0 +1,39 @@
// To parse this JSON data, do
//
// final patent = patentFromJson(jsonString);
import 'dart:convert';
List<Patent> patentFromJson(String str) =>
List<Patent>.from(json.decode(str).map((x) => Patent.fromJson(x)));
String patentToJson(List<Patent> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Patent {
int id;
int userId;
String patentTitle;
String status;
Patent({
required this.id,
required this.userId,
required this.patentTitle,
required this.status,
});
factory Patent.fromJson(Map<String, dynamic> json) => Patent(
id: json["id"],
userId: json["user_id"],
patentTitle: json["Patent Title"],
status: json["Status"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Patent Title": patentTitle,
"Status": status,
};
}

View File

@ -0,0 +1,43 @@
// To parse this JSON data, do
//
// final phoneno = phonenoFromJson(jsonString);
import 'dart:convert';
List<Phoneno> phonenoFromJson(String str) =>
List<Phoneno>.from(json.decode(str).map((x) => Phoneno.fromJson(x)));
String phonenoToJson(List<Phoneno> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Phoneno {
int id;
int userId;
String phoneType;
String locations;
String phoneNumber;
Phoneno({
required this.id,
required this.userId,
required this.phoneType,
required this.locations,
required this.phoneNumber,
});
factory Phoneno.fromJson(Map<String, dynamic> json) => Phoneno(
id: json["id"],
userId: json["user_id"],
phoneType: json["Phone type"],
locations: json["Locations"],
phoneNumber: json["phone Number"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Phone type": phoneType,
"Locations": locations,
"phone Number": phoneNumber,
};
}

View File

@ -0,0 +1,59 @@
// To parse this JSON data, do
//
// final pro = proFromJson(jsonString);
import 'dart:convert';
List<Pro> proFromJson(String str) =>
List<Pro>.from(json.decode(str).map((x) => Pro.fromJson(x)));
String proToJson(List<Pro> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Pro {
int id;
int userId;
int procedureCode;
String procedure;
String placeOfService;
int totalBeneficiaries;
int totalServices;
int totalBeneDayServices;
int programYear;
Pro({
required this.id,
required this.userId,
required this.procedureCode,
required this.procedure,
required this.placeOfService,
required this.totalBeneficiaries,
required this.totalServices,
required this.totalBeneDayServices,
required this.programYear,
});
factory Pro.fromJson(Map<String, dynamic> json) => Pro(
id: json["id"],
userId: json["user_id"],
procedureCode: json["Procedure code"],
procedure: json["Procedure"],
placeOfService: json["Place of Service"],
totalBeneficiaries: json["Total Beneficiaries"],
totalServices: json["Total Services"],
totalBeneDayServices: json["Total_bene_day_services"],
programYear: json["Program year"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Procedure code": procedureCode,
"Procedure": procedure,
"Place of Service": placeOfService,
"Total Beneficiaries": totalBeneficiaries,
"Total Services": totalServices,
"Total_bene_day_services": totalBeneDayServices,
"Program year": programYear,
};
}

View File

@ -0,0 +1,55 @@
// To parse this JSON data, do
//
// final publications = publicationsFromJson(jsonString);
import 'dart:convert';
List<Publications> publicationsFromJson(String str) => List<Publications>.from(
json.decode(str).map((x) => Publications.fromJson(x)));
String publicationsToJson(List<Publications> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Publications {
int id;
int userId;
String articalTitle;
String journalName;
DateTime date;
String author;
dynamic createdAt;
dynamic updatedAt;
Publications({
required this.id,
required this.userId,
required this.articalTitle,
required this.journalName,
required this.date,
required this.author,
required this.createdAt,
required this.updatedAt,
});
factory Publications.fromJson(Map<String, dynamic> json) => Publications(
id: json["id"],
userId: json["user_id"],
articalTitle: json["artical_title"],
journalName: json["journal_name"],
date: DateTime.parse(json["date"]),
author: json["author"],
createdAt: json["created_at"],
updatedAt: json["updated_at"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"artical_title": articalTitle,
"journal_name": journalName,
"date": date.toIso8601String(),
"author": author,
"created_at": createdAt,
"updated_at": updatedAt,
};
}

View File

@ -0,0 +1,103 @@
class Publication {
int id;
int userId;
String articleTitle;
String journalName;
DateTime date;
String author;
DateTime? createdAt;
DateTime? updatedAt;
Publication({
required this.id,
required this.userId,
required this.articleTitle,
required this.journalName,
required this.date,
required this.author,
this.createdAt,
this.updatedAt,
});
// Convert a Publication to a Map
Map<String, dynamic> toMap() {
return {
'id': id,
'user_id': userId,
'article_title': articleTitle,
'journal_name': journalName,
'date': date.toIso8601String(),
'author': author,
'created_at': createdAt?.toIso8601String(),
'updated_at': updatedAt?.toIso8601String(),
};
}
// Create a Publication from a Map
factory Publication.fromMap(Map<String, dynamic> map) {
return Publication(
id: map['id'],
userId: map['user_id'],
articleTitle: map['article_title'],
journalName: map['journal_name'],
date: DateTime.parse(map['date']),
author: map['author'],
createdAt:
map['created_at'] != null ? DateTime.parse(map['created_at']) : null,
updatedAt:
map['updated_at'] != null ? DateTime.parse(map['updated_at']) : null,
);
}
}
class Affiliation {
int id;
int userId;
String articleTitle;
String journalName;
DateTime date;
String author;
DateTime? createdAt;
DateTime? updatedAt;
Affiliation({
required this.id,
required this.userId,
required this.articleTitle,
required this.journalName,
required this.date,
required this.author,
this.createdAt,
this.updatedAt,
});
// Convert an Affiliation to a Map
Map<String, dynamic> toMap() {
return {
'id': id,
'user_id': userId,
'article_title': articleTitle,
'journal_name': journalName,
'date': date.toIso8601String(),
'author': author,
'created_at': createdAt?.toIso8601String(),
'updated_at': updatedAt?.toIso8601String(),
};
}
// Create an Affiliation from a Map
factory Affiliation.fromMap(Map<String, dynamic> map) {
return Affiliation(
id: map['id'],
userId: map['user_id'],
articleTitle: map['article_title'],
journalName: map['journal_name'],
date: DateTime.parse(map['date']),
author: map['author'],
createdAt:
map['created_at'] != null ? DateTime.parse(map['created_at']) : null,
updatedAt:
map['updated_at'] != null ? DateTime.parse(map['updated_at']) : null,
);
}
}

View File

@ -0,0 +1,82 @@
// To parse this JSON data, do
//
// final userdetails = userdetailsFromJson(jsonString);
import 'dart:convert';
Userdetails userdetailsFromJson(String str) =>
Userdetails.fromJson(json.decode(str));
String userdetailsToJson(Userdetails data) => json.encode(data.toJson());
class Userdetails {
int id;
String name;
String email;
DateTime emailVerifiedAt;
String summarry;
String addr;
int licenseNo;
String pSuffix;
String speciality;
String subSpeciality;
int phoneNo;
int rank;
int score;
dynamic createdAt;
dynamic updatedAt;
Userdetails({
required this.id,
required this.name,
required this.email,
required this.emailVerifiedAt,
required this.summarry,
required this.addr,
required this.licenseNo,
required this.pSuffix,
required this.speciality,
required this.subSpeciality,
required this.phoneNo,
required this.rank,
required this.score,
required this.createdAt,
required this.updatedAt,
});
factory Userdetails.fromJson(Map<String, dynamic> json) => Userdetails(
id: json["id"],
name: json["name"],
email: json["email"],
emailVerifiedAt: DateTime.parse(json["email_verified_at"]),
summarry: json["summarry"],
addr: json["addr"],
licenseNo: json["license_no"],
pSuffix: json["p_suffix"],
speciality: json["speciality"],
subSpeciality: json["sub_speciality"],
phoneNo: json["phone_no"],
rank: json["rank"],
score: json["score"],
createdAt: json["created_at"],
updatedAt: json["updated_at"],
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"email": email,
"email_verified_at": emailVerifiedAt.toIso8601String(),
"summarry": summarry,
"addr": addr,
"license_no": licenseNo,
"p_suffix": pSuffix,
"speciality": speciality,
"sub_speciality": subSpeciality,
"phone_no": phoneNo,
"rank": rank,
"score": score,
"created_at": createdAt,
"updated_at": updatedAt,
};
}

View File

@ -0,0 +1,55 @@
// To parse this JSON data, do
//
// final speaker = speakerFromJson(jsonString);
import 'dart:convert';
List<Speaker> speakerFromJson(String str) =>
List<Speaker>.from(json.decode(str).map((x) => Speaker.fromJson(x)));
String speakerToJson(List<Speaker> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Speaker {
int id;
String programtopic;
String speakername;
String role;
String evaluatorname;
String programdate;
DateTime createdAt;
DateTime updatedAt;
Speaker({
required this.id,
required this.programtopic,
required this.speakername,
required this.role,
required this.evaluatorname,
required this.programdate,
required this.createdAt,
required this.updatedAt,
});
factory Speaker.fromJson(Map<String, dynamic> json) => Speaker(
id: json["id"],
programtopic: json["programtopic"],
speakername: json["speakername"],
role: json["role"],
evaluatorname: json["evaluatorname"],
programdate: json["programdate"],
createdAt: DateTime.parse(json["created_at"]),
updatedAt: DateTime.parse(json["updated_at"]),
);
Map<String, dynamic> toJson() => {
"id": id,
"programtopic": programtopic,
"speakername": speakername,
"role": role,
"evaluatorname": evaluatorname,
"programdate": programdate,
"created_at": createdAt.toIso8601String(),
"updated_at": updatedAt.toIso8601String(),
};
}

View File

@ -0,0 +1,51 @@
// To parse this JSON data, do
//
// final traning = traningFromJson(jsonString);
import 'dart:convert';
List<Traning> traningFromJson(String str) =>
List<Traning>.from(json.decode(str).map((x) => Traning.fromJson(x)));
String traningToJson(List<Traning> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Traning {
int id;
int userId;
String educationType;
String institutionName;
String degree;
String specialty;
String timeFrame;
Traning({
required this.id,
required this.userId,
required this.educationType,
required this.institutionName,
required this.degree,
required this.specialty,
required this.timeFrame,
});
factory Traning.fromJson(Map<String, dynamic> json) => Traning(
id: json["id"],
userId: json["user_id"],
educationType: json["Education Type"],
institutionName: json["Institution Name"],
degree: json["Degree"],
specialty: json["Specialty"],
timeFrame: json["Time Frame"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"Education Type": educationType,
"Institution Name": institutionName,
"Degree": degree,
"Specialty": specialty,
"Time Frame": timeFrame,
};
}

View File

@ -0,0 +1,67 @@
// To parse this JSON data, do
//
// final trials = trialsFromJson(jsonString);
import 'dart:convert';
List<Trials> trialsFromJson(String str) =>
List<Trials>.from(json.decode(str).map((x) => Trials.fromJson(x)));
String trialsToJson(List<Trials> data) =>
json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Trials {
int id;
int userId;
String ctId;
String trialName;
String status;
String sponsors;
String condition;
String intervention;
String phase;
dynamic createdAt;
dynamic updatedAt;
Trials({
required this.id,
required this.userId,
required this.ctId,
required this.trialName,
required this.status,
required this.sponsors,
required this.condition,
required this.intervention,
required this.phase,
required this.createdAt,
required this.updatedAt,
});
factory Trials.fromJson(Map<String, dynamic> json) => Trials(
id: json["id"],
userId: json["user_id"],
ctId: json["ct_id"],
trialName: json["trial_name"],
status: json["status"],
sponsors: json["sponsors"],
condition: json["condition"],
intervention: json["intervention"],
phase: json["phase"],
createdAt: json["created_at"],
updatedAt: json["updated_at"],
);
Map<String, dynamic> toJson() => {
"id": id,
"user_id": userId,
"ct_id": ctId,
"trial_name": trialName,
"status": status,
"sponsors": sponsors,
"condition": condition,
"intervention": intervention,
"phase": phase,
"created_at": createdAt,
"updated_at": updatedAt,
};
}

View File

@ -0,0 +1,46 @@
import 'dart:convert';
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/storage_hive/aff_data/insert_aff.dart';
import 'package:flutter/cupertino.dart';
class AffiliationsProvider extends ChangeNotifier {
final affapi = Callapi();
List affiliations1 = [];
List allaffiliations1 = [];
List get adddta => affiliations1;
List get affiliationsAll => allaffiliations1;
getAffiliationsdata(text) async {
print("Affiliations_is: ${text}");
final affdata = await affapi.getaffiliationsdata(text);
print("Affiliations_is after:$affdata ");
// final Map<String, dynamic> jsonData = json.decode(affdata);
// // final List<dynamic> affiliations = jsonData['Affiliations'];
// print("Affiliations_is return:$jsonData ");
affiliations1 = affdata;
notifyListeners();
}
getAllAffiliationsdata() async {
print("Affiliations_is: ");
final affdata = await affapi.getallaffiliationsdata();
print("Affiliations_is after:$affdata ");
allaffiliations1 = affdata;
notifyListeners();
}
storeAff(row) async {
final affdata = await affapi.getaffiliationsdata(row);
print("Affiliations_MyStoringData:$affdata ");
await addAffiliation(affdata);
}
}

View File

@ -0,0 +1,22 @@
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/storage_hive/awa_data/crud_awa.dart';
import 'package:flutter/cupertino.dart';
class AwardProvider extends ChangeNotifier {
final apicall = Callapi();
List awalist = [];
List get awardlist => awalist;
awainfo(text) async {
print("Location_Text");
final email_result = await apicall.getawarddata(text);
awalist = email_result;
notifyListeners();
}
storeAwa(row) async {
final awaresult = await apicall.getawarddata(row);
await addAwa(awaresult);
}
}

View File

@ -0,0 +1,22 @@
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/storage_hive/cer_hive/crud_cer.dart';
import 'package:flutter/cupertino.dart';
class CertificateProvider extends ChangeNotifier {
final apicall = Callapi();
List cerlist = [];
List get certificatelist => cerlist;
certificateinfo(text) async {
print("Location_Text");
final email_result = await apicall.getcerlistdata(text);
cerlist = email_result;
notifyListeners();
}
storeCer(row) async {
final cerResult = await apicall.getcerlistdata(row);
await addCer(cerResult);
}
}

View File

@ -0,0 +1,22 @@
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/storage_hive/edu_data/crud_edu.dart';
import 'package:flutter/cupertino.dart';
class EducationProvider extends ChangeNotifier {
final apicall = Callapi();
List edulist = [];
List get educationlist => edulist;
eduinfo(text) async {
print("Location_Text");
final email_result = await apicall.getedulistdata(text);
edulist = email_result;
notifyListeners();
}
storeEdu(row) async {
final emailresult = await apicall.getedulistdata(row);
await addEdu(emailresult);
}
}

View File

@ -0,0 +1,22 @@
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/storage_hive/email_data/crud_email.dart';
import 'package:flutter/cupertino.dart';
class EmailProvider extends ChangeNotifier {
final apicall = Callapi();
List emaillist = [];
List get emailkollist => emaillist;
emailinfo(text) async {
print("Location_Text");
final email_result = await apicall.getemaildata(text);
emaillist = email_result;
notifyListeners();
}
storeEmail(row) async {
final emailresult = await apicall.getemaildata(row);
await addEmail(emailresult);
}
}

View File

@ -0,0 +1,79 @@
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:flutter/cupertino.dart';
class EnagagementProvider extends ChangeNotifier {
final callapi = Callapi();
List enagement = [];
List get engagementdata => enagement;
List enagementhcpname = [];
List get engagementhcppname => enagementhcpname;
List enagementhcpmain = [];
List get enagementhcppmain => enagementhcpmain;
List enagementhcprel = [];
List get enagementhcpprel => enagementhcprel;
List enagementhcplevel = [];
List get enagementhcpplevel => enagementhcplevel;
getengagementdata() async {
final engdata = await callapi.getEngdata();
enagement = engdata;
notifyListeners();
}
gethcpname() async {
if (enagementhcpname.isNotEmpty) {
enagementhcpname.clear();
}
for (var hname in engagementdata) {
enagementhcpname.add(hname['hcpname']);
//print("checkin_eng: ${hname['hcpname']}");
notifyListeners();
}
}
getmaintherepeutic() async {
if (enagementhcpmain.isNotEmpty) {
enagementhcpmain.clear();
}
for (var hname in engagementdata) {
enagementhcpmain.add(hname['main thereutic area']);
//print("checkin_eng: ${hname['hcpname']}");
notifyListeners();
}
}
getrelationship() async {
if (enagementhcprel.isNotEmpty) {
enagementhcprel.clear();
}
for (var hname in engagementdata) {
enagementhcprel.add(hname['relationship with chiesi']);
//print("checkin_eng: ${hname['hcpname']}");
notifyListeners();
}
}
getrelationlevel() async {
if (enagementhcplevel.isNotEmpty) {
enagementhcplevel.clear();
}
for (var hname in engagementdata) {
enagementhcplevel.add(hname['level of engagement']);
//print("checkin_eng: ${hname['hcpname']}");
notifyListeners();
}
}
}

View File

@ -0,0 +1,34 @@
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/storage_hive/events_data/crud_event.dart';
import 'package:flutter/cupertino.dart';
class EventProvider extends ChangeNotifier {
final apicall = Callapi();
List eventlist = [];
List get EventsList => eventlist;
List alleventlist = [];
List get allEventsList => alleventlist;
geteventdata(text) async {
final events = await apicall.geteventsdata(text);
eventlist = events;
notifyListeners();
}
allgeteventdata() async {
final events = await apicall.allgeteventsdata();
alleventlist = events;
notifyListeners();
}
storeEvent(row) async {
final events = await apicall.geteventsdata(row);
await addEvent(events);
}
}

View File

@ -0,0 +1,158 @@
// import 'package:discover_module/hive_fun.dart';
// import 'package:discover_module/service.dart/service.dart';
import 'package:discover_module/contacts_module/hive_fun.dart';
import 'package:discover_module/contacts_module/service.dart/service.dart';
import 'package:flutter/foundation.dart';
class hcpProvider extends ChangeNotifier {
final apicall = Callapi();
List _list = [];
List mulList = [];
List get list => _list;
getHCPProvider() async {
final jsondata = await apicall.getallhcpdata();
print("kkoollll_dataaaa: ${jsondata}");
_list = jsondata;
notifyListeners();
}
// getHCPHive() async {
// final jsondata = await apicall.getallhcpdata();
// _list = jsondata;
// notifyListeners();
// }
// List searchHCP(String query) {
// if (query.isEmpty) {
// return List.from(_list); // Return full list if query is empty
// } else {
// // return _list
// // .where(
// // (hcp) => hcp['name'].toLowerCase().contains(query.toLowerCase()))
// // .toList();
// print("JsonIssList: $_list");
// print("queryIssList: $query");
// return _list
// .where((hcp) =>
// hcp['name'].toLowerCase().contains(query.toLowerCase()) ||
// // (hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ??
// // hcp['spl'].toLowerCase().contains(query.toLowerCase())) ||
// hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ||
// hcp['addr'].toLowerCase().contains(query.toLowerCase()))
// .toList();
// // return _list.where((hcp) {
// // // Perform multiple checks using logical AND (&&)
// // return hcp['name'].toLowerCase().contains(query.toLowerCase()) &&
// // hcp['speciality'].toLowerCase().contains(query.toLowerCase()) &&
// // hcp['addr'].toLowerCase().contains(query.toLowerCase());
// // // Add more conditions as needed
// // }).toList();
// }
// }
List searchHCP(String query) {
if (query.isEmpty) {
return List.from(_list); // Return full list if query is empty
} else {
// return _list
// .where(
// (hcp) => hcp['name'].toLowerCase().contains(query.toLowerCase()))
// .toList();
print("JsonIssList: $_list");
print("queryIssList: $query");
List<String> selectedValuesList =
query.split(',').map((e) => e.trim()).toList();
return
// _list
// .where((hcp) =>
// hcp['name'].toLowerCase().contains(query.toLowerCase()) ||
// // (hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ??
// // hcp['spl'].toLowerCase().contains(query.toLowerCase())) ||
// hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ||
// hcp['addr'].toLowerCase().contains(query.toLowerCase()))
// .toList();
_list.where((hcp) {
// Check if the item matches any of the selected values
return selectedValuesList.any((selected) =>
hcp['name'].toLowerCase().contains(selected.toLowerCase())) ||
hcp['name'].toLowerCase().contains(query.toLowerCase());
}).toList();
}
}
getHCPProviderHive() async {
final jsondata = await HiveFunctions.gethcpdata();
print("JsonDtaa: ${jsondata}");
_list = jsondata;
print("JsonDtaaList: $_list");
notifyListeners();
//print("Get_hcp_dataaaL ${HiveFunctions.gethcpdata()}");
}
gethcpNamefilter(String? option) {
if (option == "HCP Name") {
return _list.map((e) => e["name"].toString()).toList();
} else {
return _list.map((e) => e["speciality"].toString()).toList();
}
}
getHCPProviderFilters(String? _selectedValue1, List<String> value) {
print("I_am Provider_filterr");
if (_selectedValue1 == "Profile Type") {
print("PPPP11");
return value = [
"All Profile",
'Full Profile',
'Basic Profile',
];
}
// else if (_selectedValue1 == "HCP Name") {
// print("FilterHcpNameee");
// fecthhcpbyname();
// } else if (_selectedValue1 == "Speciality") {
// print("kkk");
// fecthhcpbyspl();
// }
else if (_selectedValue1 == "Country") {
print("kkk");
return value = [
"United States",
"United States",
"United States",
];
} else if (_selectedValue1 == "State") {
print("kkk");
return value = [
"Karnataka",
'Karnataka',
'Karnataka',
];
} else if (_selectedValue1 == "City") {
print("kkk");
return value = [
"Hubli",
'Hubli',
'Hubli',
];
}
}
}

View File

@ -0,0 +1,29 @@
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/material.dart';
class AddNotesProvider extends ChangeNotifier {
var call_api = CallK2api();
List result = [];
List get RList => result;
List deleteresult = [];
List get DelList => deleteresult;
addnotes(String data, [uniqueId]) async {
final listallnotes = await call_api.addnotesapi(data, uniqueId);
print("Hiiiiiilistallnotes : ${listallnotes}");
result = listallnotes;
notifyListeners();
}
deletenotes(uniqueId) async {
final dellistallnotes = await call_api.deletenotesapi(uniqueId);
print("Hiiiiiilistallnotes : ${dellistallnotes}");
deleteresult = dellistallnotes;
notifyListeners();
}
}

View File

@ -0,0 +1,39 @@
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_aff_k2.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/cupertino.dart';
class AffiliationsProviderk2 extends ChangeNotifier {
final affapi = CallK2api();
List<AffList> affiliations1 = [];
List allaffiliations1 = [];
List get adddta => affiliations1;
List get affiliationsAll => allaffiliations1;
getAffiliationsdata(text) async {
print("Affiliations_is: ${text}");
final affdata = await affapi.getaffiliationsdata(text);
print("Affiliations_is after:$affdata ");
// final Map<String, dynamic> jsonData = json.decode(affdata);
// // final List<dynamic> affiliations = jsonData['Affiliations'];
// print("Affiliations_is return:$jsonData ");
affiliations1 = affdata!;
// print("Affiliations_is return:$affiliations1 ");
notifyListeners();
}
bool get hasData => affiliations1.isNotEmpty;
getAllAffiliationsdata() async {
print("Affiliations_is: ");
final affdata = await affapi.getallaffiliationsdata();
print("Affiliations_is after:$affdata ");
allaffiliations1 = affdata;
notifyListeners();
}
}

View File

@ -0,0 +1,19 @@
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_awards_k2.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/cupertino.dart';
class AwardProviderK2 extends ChangeNotifier {
final apicall = CallK2api();
List<AwardsList> awalist = [];
List get awardlist => awalist;
awainfo(text) async {
print("Location_Text");
final email_result = await apicall.getawarddata(text);
awalist = email_result!;
notifyListeners();
}
bool get hasData => awalist.isNotEmpty;
}

View File

@ -0,0 +1,19 @@
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_Certificate_k2.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/cupertino.dart';
class CertificateProviderK2 extends ChangeNotifier {
final apicall = CallK2api();
List<CertificateList> cerlist = [];
List get certificatelist => cerlist;
certificateinfo(text) async {
print("Location_Text");
final email_result = await apicall.getcerlistdata(text);
cerlist = email_result!;
notifyListeners();
}
bool get hasData => cerlist.isNotEmpty;
}

View File

@ -0,0 +1,19 @@
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_education_k2.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/cupertino.dart';
class EducationProviderK2 extends ChangeNotifier {
final apicall = CallK2api();
List<EducationList> edulist = [];
List get educationlist => edulist;
eduinfo(text) async {
print("Location_Text");
final email_result = await apicall.getedulistdata(text);
edulist = email_result!;
notifyListeners();
}
bool get hasData => edulist.isNotEmpty;
}

View File

@ -0,0 +1,25 @@
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_email_k2.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/cupertino.dart';
import 'package:discover_module/contacts_module/storage_hive/email_data/crud_email.dart';
class EmailProviderK2 extends ChangeNotifier {
final apicall = CallK2api();
List<EmailData> emaillist = [];
List get emailkollist => emaillist;
emailinfo(text) async {
print("Location_Text");
final email_result = await apicall.getemaildata(text);
emaillist = email_result!;
notifyListeners();
}
bool get hasData => emaillist.isNotEmpty;
storeEmail(row) async {
final emailresult = await apicall.getemaildata(row);
await k2addEmail(emailresult);
}
}

View File

@ -0,0 +1,110 @@
import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_event_k2.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/cupertino.dart';
class EventProviderK2 extends ChangeNotifier {
final apicall = CallK2api();
List<EventList> eventlist = [];
List<EventList> eventlistpagination = [];
bool _isLoading = false;
bool _hasMore = true;
int _page = 1;
final int _limit = 10;
List get EventsList => eventlist;
List alleventlist = [];
List get allEventsList => alleventlist;
List get eventsListpagination => eventlistpagination;
bool get isLoading => _isLoading;
bool get hasMore => _hasMore;
geteventdata(text) async {
if (_isLoading || !_hasMore) return;
try {
final events = await apicall.geteventsdata(text);
eventlist = events!;
notifyListeners();
} catch (e) {}
}
bool get hasData => eventlist.isNotEmpty;
allgeteventdata() async {
final events = await apicall.allgeteventsdata();
alleventlist = events;
notifyListeners();
}
Future<void> geteventsdatawithid() async {
if (_isLoading || !_hasMore) return;
_isLoading = true;
notifyListeners();
//
try {
final events = await apicall.geteventsdatapagelimit(_page, _limit);
if (events!.isEmpty) {
_hasMore = false;
} else {
eventlistpagination.addAll(events);
_page++;
// notifyListeners();
}
} catch (e) {
} finally {
_isLoading = false;
notifyListeners();
}
}
}
// import 'package:discover_module/contacts_module/model_class/k2_api_model/kol_event_k2.dart';
// import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
// import 'package:flutter/cupertino.dart';
// class EventProviderK2 extends ChangeNotifier {
// final apicall = CallK2api();
// List<EventList> eventlist = [];
// bool _isLoading = false;
// bool _hasMore = true;
// int _page = 1;
// final int _limit = 10;
// List get EventsList => eventlist;
// List alleventlist = [];
// List get allEventsList => alleventlist;
// bool get isLoading => _isLoading;
// bool get hasMore => _hasMore;
// geteventdata(text) async {
// final events = await apicall.geteventsdata(text);
// eventlist = events!;
// notifyListeners();
// }
// allgeteventdata() async {
// final events = await apicall.allgeteventsdata();
// alleventlist = events;
// notifyListeners();
// }
// }

View File

@ -0,0 +1,61 @@
import 'package:discover_module/contacts_module/hive_fun.dart';
import 'package:discover_module/contacts_module/service.dart/k2_service/Apicall_k2.dart';
import 'package:flutter/foundation.dart';
class KolListProvider extends ChangeNotifier {
final apicall = CallK2api();
List _list = [];
List get list => _list;
getHCPProvider() async {
final jsondata = await apicall.getallhcpdata();
print("kkoollll_dataaaa: ${jsondata}");
_list = jsondata;
notifyListeners();
}
List searchHCP(String query) {
if (query.isEmpty) {
return List.from(_list); // Return full list if query is empty
} else {
// return _list
// .where(
// (hcp) => hcp['name'].toLowerCase().contains(query.toLowerCase()))
// .toList();
print("JsonIssList: $_list");
print("queryIssList: $query");
return _list
.where((hcp) =>
hcp['full_name']
.toLowerCase()
.contains(query.toLowerCase()) ||
// (hcp['speciality'].toLowerCase().contains(query.toLowerCase()) ??
// hcp['spl'].toLowerCase().contains(query.toLowerCase())) ||
hcp['speciality_name']
.toLowerCase()
.contains(query.toLowerCase())
// ||
// hcp['addr'].toLowerCase().contains(query.toLowerCase())
)
.toList();
}
}
getHCPProviderHive() async {
final jsondata = await HiveFunctions.gethcpdata();
print("JsonDtaa: ${jsondata}");
_list = jsondata;
print("JsonDtaaList: $_list");
notifyListeners();
//print("Get_hcp_dataaaL ${HiveFunctions.gethcpdata()}");
}
}

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