snehalatha_dev #2
|
@ -0,0 +1,231 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"id": "CMSUMedInsight",
|
||||
"name": "ADD CMSU INSIGHT(SHARED WITH SALESFORCE)",
|
||||
"form-fields": [
|
||||
{
|
||||
"sectionName": "CMSU Insight",
|
||||
"multiple": false,
|
||||
"sectionList": [
|
||||
{
|
||||
"name": "HCP Name",
|
||||
"id": "hcpname",
|
||||
"depid": "",
|
||||
"widget": "label",
|
||||
"input": "label",
|
||||
"validation": {
|
||||
"isRequired": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Insight Open Date",
|
||||
"id": "date",
|
||||
"depid": "",
|
||||
"widget": "text",
|
||||
"input": "Date",
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Insight Modality",
|
||||
"param": "insight_modality",
|
||||
"id": "insight_modality",
|
||||
"selectedValue": [],
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "CT",
|
||||
"name": "CT"
|
||||
},
|
||||
{
|
||||
"id": "HIT",
|
||||
"name": "HIT"
|
||||
},
|
||||
{
|
||||
"id": "MI",
|
||||
"name": "MI"
|
||||
},
|
||||
{
|
||||
"id": "MR",
|
||||
"name": "MR"
|
||||
},
|
||||
{
|
||||
"id": "Postdoc",
|
||||
"name": "Postdoc"
|
||||
},
|
||||
{
|
||||
"id": "UL",
|
||||
"name": "UL"
|
||||
},
|
||||
{
|
||||
"id": "VL",
|
||||
"name": "VL"
|
||||
},
|
||||
{
|
||||
"id": "XR",
|
||||
"name": "XR"
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Discussion Type",
|
||||
"id": "discussion_type",
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Proactive",
|
||||
|
||||
"name": "Proactive"
|
||||
},
|
||||
{
|
||||
"id": "Reactive",
|
||||
|
||||
"name": "Reactive"
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Insight Temperature",
|
||||
"id": "insight_temperature",
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Green",
|
||||
"name": "Green"
|
||||
},
|
||||
{
|
||||
"id": "Red",
|
||||
"name": "Red"
|
||||
},
|
||||
{
|
||||
"id": "Yellow",
|
||||
"name": "Yellow "
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Insight Owners",
|
||||
"id": "insight_owners",
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Applications",
|
||||
|
||||
"name": "Applications"
|
||||
},
|
||||
{
|
||||
"id": "BU",
|
||||
|
||||
"name": "BU"
|
||||
},
|
||||
{
|
||||
"id": "Commercial",
|
||||
|
||||
"name": "Commercial"
|
||||
},
|
||||
{
|
||||
"id": "Service",
|
||||
|
||||
"name": "Service"
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Initiate Alert",
|
||||
"id": "initiate_alert",
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "No",
|
||||
|
||||
"name": "No"
|
||||
},
|
||||
{
|
||||
"id": "Yes",
|
||||
|
||||
"name": "Yes"
|
||||
}
|
||||
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Status",
|
||||
"id": "status",
|
||||
"depid": "sourcetype",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Open",
|
||||
|
||||
"name": "Open"
|
||||
},
|
||||
{
|
||||
"id": "Closed",
|
||||
|
||||
"name": "Closed"
|
||||
},
|
||||
{
|
||||
"id": "Cancelled",
|
||||
|
||||
"name": "Cancelled"
|
||||
}
|
||||
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"sectionName": "Comments",
|
||||
"multiple": false,
|
||||
"sectionList": [
|
||||
{
|
||||
"name": "Insight Comments",
|
||||
"id": "insight_comments",
|
||||
"depid": "",
|
||||
"widget": "text",
|
||||
"input": "textArea",
|
||||
"validation": {
|
||||
"isRequired": true,
|
||||
"maxchars": "300"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
<svg width="412" height="917" viewBox="0 0 412 917" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3978_4162)">
|
||||
<rect width="412" height="917" fill="white"/>
|
||||
<rect opacity="0.35" x="359.173" y="10.8333" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M381.673 14V18C382.478 17.6612 383.001 16.8731 383.001 16C383.001 15.1269 382.478 14.3388 381.673 14" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="360.673" y="12.3333" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M346.007 12.615C348.232 12.6151 350.371 13.4693 351.984 15.0008C352.105 15.1191 352.299 15.1176 352.419 14.9975L353.579 13.8272C353.64 13.7663 353.674 13.6837 353.673 13.5979C353.673 13.5121 353.638 13.4299 353.577 13.3697C349.345 9.31751 342.668 9.31751 338.437 13.3697C338.375 13.4299 338.34 13.512 338.34 13.5978C338.339 13.6837 338.373 13.7662 338.433 13.8272L339.594 14.9975C339.714 15.1178 339.908 15.1193 340.029 15.0008C341.642 13.4692 343.782 12.615 346.007 12.615ZM346.007 16.4226C347.229 16.4226 348.408 16.8765 349.314 17.6963C349.437 17.8126 349.63 17.8101 349.749 17.6906L350.908 16.5203C350.969 16.4589 351.003 16.3756 351.002 16.2891C351.002 16.2025 350.966 16.12 350.904 16.0598C348.145 13.4954 343.872 13.4954 341.112 16.0598C341.05 16.12 341.015 16.2026 341.014 16.2891C341.013 16.3757 341.047 16.459 341.108 16.5203L342.267 17.6906C342.387 17.8101 342.58 17.8126 342.702 17.6963C343.608 16.877 344.785 16.4231 346.007 16.4226ZM348.329 18.9845C348.331 19.0712 348.297 19.1549 348.235 19.2157L346.229 21.2377C346.171 21.2971 346.091 21.3306 346.007 21.3306C345.923 21.3306 345.843 21.2971 345.784 21.2377L343.779 19.2157C343.717 19.1549 343.683 19.0712 343.685 18.9844C343.686 18.8976 343.724 18.8154 343.788 18.7573C345.069 17.675 346.945 17.675 348.225 18.7573C348.29 18.8155 348.327 18.8977 348.329 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M332.34 10.6665H331.34C330.788 10.6665 330.34 11.1142 330.34 11.6665V20.3332C330.34 20.8855 330.788 21.3332 331.34 21.3332H332.34C332.892 21.3332 333.34 20.8855 333.34 20.3332V11.6665C333.34 11.1142 332.892 10.6665 332.34 10.6665ZM326.673 12.9998H327.673C328.225 12.9998 328.673 13.4476 328.673 13.9998V20.3332C328.673 20.8855 328.225 21.3332 327.673 21.3332H326.673C326.121 21.3332 325.673 20.8855 325.673 20.3332V13.9998C325.673 13.4476 326.121 12.9998 326.673 12.9998ZM323.007 15.3332H322.007C321.454 15.3332 321.007 15.7809 321.007 16.3332V20.3332C321.007 20.8855 321.454 21.3332 322.007 21.3332H323.007C323.559 21.3332 324.007 20.8855 324.007 20.3332V16.3332C324.007 15.7809 323.559 15.3332 323.007 15.3332ZM318.34 17.3332H317.34C316.788 17.3332 316.34 17.7809 316.34 18.3332V20.3332C316.34 20.8855 316.788 21.3332 317.34 21.3332H318.34C318.892 21.3332 319.34 20.8855 319.34 20.3332V18.3332C319.34 17.7809 318.892 17.3332 318.34 17.3332Z" fill="white"/>
|
||||
<path d="M37.1696 8.35C36.2096 8.35 35.3946 8.555 34.7246 8.965C34.0446 9.365 33.5246 9.95 33.1645 10.72C32.8046 11.49 32.6246 12.44 32.6246 13.57C32.6246 14.77 32.8446 15.785 33.2846 16.615C33.7146 17.445 34.3146 18.075 35.0846 18.505C35.8546 18.935 36.7496 19.15 37.7696 19.15C38.2996 19.15 38.8046 19.095 39.2846 18.985C39.7646 18.875 40.1796 18.705 40.5296 18.475L39.8096 17.005C39.5196 17.195 39.2046 17.33 38.8646 17.41C38.5246 17.48 38.1746 17.515 37.8146 17.515C36.8246 17.515 36.0396 17.21 35.4596 16.6C34.8796 15.99 34.5896 15.09 34.5896 13.9C34.5896 13.71 34.5946 13.49 34.6046 13.24C34.6146 12.98 34.6496 12.72 34.7096 12.46L34.1096 13.12C34.2796 13.53 34.5246 13.875 34.8446 14.155C35.1646 14.425 35.5396 14.63 35.9696 14.77C36.3996 14.91 36.8746 14.98 37.3946 14.98C38.0746 14.98 38.6896 14.85 39.2396 14.59C39.7796 14.32 40.2096 13.945 40.5296 13.465C40.8496 12.975 41.0096 12.405 41.0096 11.755C41.0096 11.055 40.8396 10.455 40.4996 9.955C40.1596 9.445 39.6996 9.05 39.1196 8.77C38.5296 8.49 37.8796 8.35 37.1696 8.35ZM37.0646 9.88C37.4646 9.88 37.8196 9.955 38.1296 10.105C38.4396 10.245 38.6846 10.45 38.8646 10.72C39.0346 10.98 39.1196 11.295 39.1196 11.665C39.1196 12.215 38.9296 12.65 38.5496 12.97C38.1696 13.29 37.6596 13.45 37.0196 13.45C36.5996 13.45 36.2296 13.375 35.9096 13.225C35.5896 13.065 35.3396 12.85 35.1596 12.58C34.9796 12.3 34.8896 11.99 34.8896 11.65C34.8896 11.32 34.9746 11.025 35.1446 10.765C35.3146 10.495 35.5596 10.28 35.8796 10.12C36.1996 9.96 36.5946 9.88 37.0646 9.88ZM30.4153 13.39C30.7553 13.39 31.0453 13.275 31.2853 13.045C31.5253 12.805 31.6453 12.505 31.6453 12.145C31.6453 11.765 31.5253 11.465 31.2853 11.245C31.0453 11.015 30.7553 10.9 30.4153 10.9C30.0753 10.9 29.7853 11.015 29.5453 11.245C29.3053 11.465 29.1853 11.765 29.1853 12.145C29.1853 12.505 29.3053 12.805 29.5453 13.045C29.7853 13.275 30.0753 13.39 30.4153 13.39ZM30.4153 19.105C30.7553 19.105 31.0453 18.99 31.2853 18.76C31.5253 18.52 31.6453 18.22 31.6453 17.86C31.6453 17.48 31.5253 17.18 31.2853 16.96C31.0453 16.73 30.7553 16.615 30.4153 16.615C30.0753 16.615 29.7853 16.73 29.5453 16.96C29.3053 17.18 29.1853 17.48 29.1853 17.86C29.1853 18.22 29.3053 18.52 29.5453 18.76C29.7853 18.99 30.0753 19.105 30.4153 19.105ZM28.3531 16.615V15.265L23.1781 8.5H21.0931L26.1931 15.265L27.1681 14.965H18.8431V16.615H28.3531ZM22.5931 19V16.615L22.5331 14.965V12.85H20.7031V19H22.5931ZM17.0033 19V9.25L16.1483 10.135H19.2233V8.5H15.0533V19H17.0033Z" fill="white"/>
|
||||
<circle cx="297.5" cy="458.5" r="257.5" fill="#E7F4FF"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3978_4162">
|
||||
<rect width="412" height="917" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,5 @@
|
|||
<svg width="78" height="79" viewBox="0 0 78 79" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.5 10.6623C48.5 13.562 47.2853 16.1722 45.347 17.9913C54.403 20.7722 61 29.3503 61 39.5012C61 49.6522 54.403 58.2302 45.347 61.0111C47.2853 62.8303 48.5 65.4404 48.5 68.3402C48.5 70.627 47.7445 72.7337 46.4745 74.4143C62.2132 70.9192 74 56.6154 74 39.5012C74 22.3871 62.2132 8.08329 46.4745 4.58813C47.7445 6.2688 48.5 8.37548 48.5 10.6623ZM30.9217 74.2745C15.4863 70.5517 4 56.3958 4 39.5012C4 22.6066 15.4863 8.45076 30.9217 4.72797C29.7144 6.38499 29 8.43847 29 10.6623C29 13.6253 30.2683 16.286 32.281 18.1093C23.4169 21.0084 17 29.4898 17 39.5012C17 49.5126 23.4169 57.9941 32.281 60.8932C30.2683 62.7165 29 65.3771 29 68.3402C29 70.564 29.7144 72.6175 30.9217 74.2745Z" fill="#4B93CF"/>
|
||||
<path d="M46.9535 10.9348C46.9535 15.3171 43.3922 18.8696 38.999 18.8696C34.6058 18.8696 31.0444 15.3171 31.0444 10.9348C31.0444 6.55253 34.6058 3 38.999 3C43.3922 3 46.9535 6.55253 46.9535 10.9348Z" fill="#F26635"/>
|
||||
<path d="M46.9535 68.0647C46.9535 72.4469 43.3922 75.9995 38.999 75.9995C34.6058 75.9995 31.0444 72.4469 31.0444 68.0647C31.0444 63.6824 34.6058 60.1299 38.999 60.1299C43.3922 60.1299 46.9535 63.6824 46.9535 68.0647Z" fill="#F26635"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,17 @@
|
|||
<svg width="412" height="917" viewBox="0 0 412 917" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3978_4219)">
|
||||
<rect width="412" height="917" transform="matrix(-1 0 0 1 412 0)" fill="white"/>
|
||||
<circle cx="257.5" cy="257.5" r="257.5" transform="matrix(-1 0 0 1 554 201)" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="-0.5" y="0.5" width="21" height="10.3333" rx="2.16667" transform="matrix(-1 0 0 1 52.3267 10.3334)" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M30.3267 14V18C29.5219 17.6612 28.9986 16.8731 28.9986 16C28.9986 15.1269 29.5219 14.3388 30.3267 14" fill="white" fill-opacity="0.6"/>
|
||||
<rect width="18" height="7.33333" rx="1.33333" transform="matrix(-1 0 0 1 51.3267 12.3334)" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.9931 12.6152C63.7684 12.6153 61.6287 13.4694 60.0163 15.001C59.8949 15.1192 59.7009 15.1177 59.5813 14.9976L58.4207 13.8273C58.3601 13.7664 58.3264 13.6839 58.3269 13.598C58.3274 13.5122 58.3621 13.4301 58.4233 13.3699C62.6553 9.31763 69.3316 9.31763 73.5635 13.3699C73.6248 13.43 73.6596 13.5121 73.6601 13.598C73.6607 13.6838 73.627 13.7663 73.5665 13.8273L72.4056 14.9976C72.2861 15.1179 72.0918 15.1194 71.9705 15.001C70.3579 13.4693 68.218 12.6152 65.9931 12.6152ZM65.9931 16.4227C64.7707 16.4227 63.592 16.8766 62.6859 17.6964C62.5634 17.8127 62.3703 17.8102 62.2509 17.6907L61.0916 16.5204C61.0306 16.459 60.9967 16.3757 60.9976 16.2892C60.9984 16.2027 61.034 16.1201 61.0963 16.0599C63.8555 13.4955 68.1284 13.4955 70.8875 16.0599C70.9499 16.1201 70.9854 16.2027 70.9862 16.2893C70.9871 16.3758 70.9531 16.4591 70.8919 16.5204L69.7329 17.6907C69.6135 17.8102 69.4204 17.8127 69.2979 17.6964C68.3924 16.8772 67.2146 16.4233 65.9931 16.4227ZM63.6709 18.9846C63.6691 19.0714 63.7032 19.155 63.7652 19.2158L65.7705 21.2378C65.8293 21.2972 65.9095 21.3307 65.9931 21.3307C66.0767 21.3307 66.1569 21.2972 66.2156 21.2378L68.2213 19.2158C68.2832 19.155 68.3173 19.0713 68.3155 18.9845C68.3136 18.8977 68.276 18.8156 68.2116 18.7574C66.9309 17.6751 65.0553 17.6751 63.7746 18.7574C63.7102 18.8156 63.6726 18.8978 63.6709 18.9846Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M79.6602 10.6667H80.6602C81.2124 10.6667 81.6602 11.1145 81.6602 11.6667V20.3334C81.6602 20.8857 81.2124 21.3334 80.6602 21.3334H79.6602C79.1079 21.3334 78.6602 20.8857 78.6602 20.3334V11.6667C78.6602 11.1145 79.1079 10.6667 79.6602 10.6667ZM85.3268 13.0001H84.3268C83.7745 13.0001 83.3268 13.4478 83.3268 14.0001V20.3334C83.3268 20.8857 83.7745 21.3334 84.3268 21.3334H85.3268C85.8791 21.3334 86.3268 20.8857 86.3268 20.3334V14.0001C86.3268 13.4478 85.8791 13.0001 85.3268 13.0001ZM88.9935 15.3334H89.9935C90.5458 15.3334 90.9935 15.7811 90.9935 16.3334V20.3334C90.9935 20.8857 90.5458 21.3334 89.9935 21.3334H88.9935C88.4412 21.3334 87.9935 20.8857 87.9935 20.3334V16.3334C87.9935 15.7811 88.4412 15.3334 88.9935 15.3334ZM93.6602 17.3334H94.6602C95.2124 17.3334 95.6602 17.7811 95.6602 18.3334V20.3334C95.6602 20.8857 95.2124 21.3334 94.6602 21.3334H93.6602C93.1079 21.3334 92.6602 20.8857 92.6602 20.3334V18.3334C92.6602 17.7811 93.1079 17.3334 93.6602 17.3334Z" fill="white"/>
|
||||
<path d="M375.33 8.35C376.29 8.35 377.105 8.555 377.775 8.965C378.455 9.365 378.975 9.95 379.335 10.72C379.695 11.49 379.875 12.44 379.875 13.57C379.875 14.77 379.655 15.785 379.215 16.615C378.785 17.445 378.185 18.075 377.415 18.505C376.645 18.935 375.75 19.15 374.73 19.15C374.2 19.15 373.695 19.095 373.215 18.985C372.735 18.875 372.32 18.705 371.97 18.475L372.69 17.005C372.98 17.195 373.295 17.33 373.635 17.41C373.975 17.48 374.325 17.515 374.685 17.515C375.675 17.515 376.46 17.21 377.04 16.6C377.62 15.99 377.91 15.09 377.91 13.9C377.91 13.71 377.905 13.49 377.895 13.24C377.885 12.98 377.85 12.72 377.79 12.46L378.39 13.12C378.22 13.53 377.975 13.875 377.655 14.155C377.335 14.425 376.96 14.63 376.53 14.77C376.1 14.91 375.625 14.98 375.105 14.98C374.425 14.98 373.81 14.85 373.26 14.59C372.72 14.32 372.29 13.945 371.97 13.465C371.65 12.975 371.49 12.405 371.49 11.755C371.49 11.055 371.66 10.455 372 9.955C372.34 9.445 372.8 9.05 373.38 8.77C373.97 8.49 374.62 8.35 375.33 8.35ZM375.435 9.88C375.035 9.88 374.68 9.955 374.37 10.105C374.06 10.245 373.815 10.45 373.635 10.72C373.465 10.98 373.38 11.295 373.38 11.665C373.38 12.215 373.57 12.65 373.95 12.97C374.33 13.29 374.84 13.45 375.48 13.45C375.9 13.45 376.27 13.375 376.59 13.225C376.91 13.065 377.16 12.85 377.34 12.58C377.52 12.3 377.61 11.99 377.61 11.65C377.61 11.32 377.525 11.025 377.355 10.765C377.185 10.495 376.94 10.28 376.62 10.12C376.3 9.96 375.905 9.88 375.435 9.88ZM382.085 13.39C381.745 13.39 381.455 13.275 381.215 13.045C380.975 12.805 380.855 12.505 380.855 12.145C380.855 11.765 380.975 11.465 381.215 11.245C381.455 11.015 381.745 10.9 382.085 10.9C382.425 10.9 382.715 11.015 382.955 11.245C383.195 11.465 383.315 11.765 383.315 12.145C383.315 12.505 383.195 12.805 382.955 13.045C382.715 13.275 382.425 13.39 382.085 13.39ZM382.085 19.105C381.745 19.105 381.455 18.99 381.215 18.76C380.975 18.52 380.855 18.22 380.855 17.86C380.855 17.48 380.975 17.18 381.215 16.96C381.455 16.73 381.745 16.615 382.085 16.615C382.425 16.615 382.715 16.73 382.955 16.96C383.195 17.18 383.315 17.48 383.315 17.86C383.315 18.22 383.195 18.52 382.955 18.76C382.715 18.99 382.425 19.105 382.085 19.105ZM384.147 16.615V15.265L389.322 8.5H391.407L386.307 15.265L385.332 14.965H393.657V16.615H384.147ZM389.907 19V16.615L389.967 14.965V12.85H391.797V19H389.907ZM395.497 19V9.25L396.352 10.135H393.277V8.5H397.447V19H395.497Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3978_4219">
|
||||
<rect width="412" height="917" fill="white" transform="matrix(-1 0 0 1 412 0)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 8.9 MiB |
|
@ -0,0 +1,16 @@
|
|||
<svg width="375" height="812" viewBox="0 0 375 812" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3978_4255)">
|
||||
<rect width="375" height="812" transform="matrix(-1 0 0 1 375 0)" fill="white"/>
|
||||
<circle cx="240.5" cy="240.5" r="240.5" transform="matrix(-1 0 0 1 521 208)" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="-0.5" y="0.5" width="21" height="10.3333" rx="2.16667" transform="matrix(-1 0 0 1 52.3267 10.3333)" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M30.3267 14V18C29.5219 17.6612 28.9986 16.8731 28.9986 16C28.9986 15.1269 29.5219 14.3388 30.3267 14" fill="white" fill-opacity="0.6"/>
|
||||
<rect width="18" height="7.33333" rx="1.33333" transform="matrix(-1 0 0 1 51.3267 12.3333)" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M65.9931 12.615C63.7684 12.6151 61.6287 13.4693 60.0163 15.0008C59.8949 15.1191 59.7009 15.1176 59.5813 14.9975L58.4207 13.8272C58.3601 13.7663 58.3264 13.6837 58.3269 13.5979C58.3274 13.5121 58.3621 13.4299 58.4233 13.3697C62.6553 9.31751 69.3316 9.31751 73.5635 13.3697C73.6248 13.4299 73.6596 13.512 73.6601 13.5978C73.6607 13.6837 73.627 13.7662 73.5665 13.8272L72.4056 14.9975C72.2861 15.1178 72.0918 15.1193 71.9705 15.0008C70.3579 13.4692 68.218 12.615 65.9931 12.615ZM65.9931 16.4226C64.7707 16.4226 63.592 16.8765 62.6859 17.6963C62.5634 17.8126 62.3703 17.8101 62.2509 17.6906L61.0916 16.5203C61.0306 16.4589 60.9967 16.3756 60.9976 16.2891C60.9984 16.2025 61.034 16.12 61.0963 16.0598C63.8555 13.4954 68.1284 13.4954 70.8875 16.0598C70.9499 16.12 70.9854 16.2026 70.9862 16.2891C70.9871 16.3757 70.9531 16.459 70.8919 16.5203L69.7329 17.6906C69.6135 17.8101 69.4204 17.8126 69.2979 17.6963C68.3924 16.877 67.2146 16.4231 65.9931 16.4226ZM63.6709 18.9845C63.6691 19.0712 63.7032 19.1549 63.7652 19.2157L65.7705 21.2377C65.8293 21.2971 65.9095 21.3306 65.9931 21.3306C66.0767 21.3306 66.1569 21.2971 66.2156 21.2377L68.2213 19.2157C68.2832 19.1549 68.3173 19.0712 68.3155 18.9844C68.3136 18.8976 68.276 18.8154 68.2116 18.7573C66.9309 17.675 65.0553 17.675 63.7746 18.7573C63.7102 18.8155 63.6726 18.8977 63.6709 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M79.6602 10.6665H80.6602C81.2124 10.6665 81.6602 11.1142 81.6602 11.6665V20.3332C81.6602 20.8855 81.2124 21.3332 80.6602 21.3332H79.6602C79.1079 21.3332 78.6602 20.8855 78.6602 20.3332V11.6665C78.6602 11.1142 79.1079 10.6665 79.6602 10.6665ZM85.3268 12.9998H84.3268C83.7745 12.9998 83.3268 13.4476 83.3268 13.9998V20.3332C83.3268 20.8855 83.7745 21.3332 84.3268 21.3332H85.3268C85.8791 21.3332 86.3268 20.8855 86.3268 20.3332V13.9998C86.3268 13.4476 85.8791 12.9998 85.3268 12.9998ZM88.9935 15.3332H89.9935C90.5458 15.3332 90.9935 15.7809 90.9935 16.3332V20.3332C90.9935 20.8855 90.5458 21.3332 89.9935 21.3332H88.9935C88.4412 21.3332 87.9935 20.8855 87.9935 20.3332V16.3332C87.9935 15.7809 88.4412 15.3332 88.9935 15.3332ZM93.6602 17.3332H94.6602C95.2124 17.3332 95.6602 17.7809 95.6602 18.3332V20.3332C95.6602 20.8855 95.2124 21.3332 94.6602 21.3332H93.6602C93.1079 21.3332 92.6602 20.8855 92.6602 20.3332V18.3332C92.6602 17.7809 93.1079 17.3332 93.6602 17.3332Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3978_4255">
|
||||
<rect width="375" height="812" fill="white" transform="matrix(-1 0 0 1 375 0)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,17 @@
|
|||
<svg width="375" height="812" viewBox="0 0 375 812" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3861_6297)">
|
||||
<rect width="375" height="812" rx="20" fill="white"/>
|
||||
<circle cx="94.5" cy="448.5" r="240.5" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="322.173" y="10.8333" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M344.673 14V18C345.478 17.6612 346.001 16.8731 346.001 16C346.001 15.1269 345.478 14.3388 344.673 14Z" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="323.673" y="12.3333" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M309.007 12.615C311.232 12.6151 313.371 13.4693 314.984 15.0008C315.105 15.1191 315.299 15.1176 315.419 14.9975L316.579 13.8272C316.64 13.7663 316.674 13.6837 316.673 13.5979C316.673 13.5121 316.638 13.4299 316.577 13.3697C312.345 9.31751 305.668 9.31751 301.437 13.3697C301.375 13.4299 301.34 13.512 301.34 13.5978C301.339 13.6837 301.373 13.7662 301.433 13.8272L302.594 14.9975C302.714 15.1178 302.908 15.1193 303.029 15.0008C304.642 13.4692 306.782 12.615 309.007 12.615ZM309.007 16.4226C310.229 16.4226 311.408 16.8765 312.314 17.6963C312.437 17.8126 312.63 17.8101 312.749 17.6906L313.908 16.5203C313.969 16.4589 314.003 16.3756 314.002 16.2891C314.002 16.2025 313.966 16.12 313.904 16.0598C311.145 13.4954 306.872 13.4954 304.112 16.0598C304.05 16.12 304.015 16.2026 304.014 16.2891C304.013 16.3757 304.047 16.459 304.108 16.5203L305.267 17.6906C305.387 17.8101 305.58 17.8126 305.702 17.6963C306.608 16.877 307.785 16.4231 309.007 16.4226ZM311.329 18.9845C311.331 19.0712 311.297 19.1549 311.235 19.2157L309.229 21.2377C309.171 21.2971 309.091 21.3306 309.007 21.3306C308.923 21.3306 308.843 21.2971 308.784 21.2377L306.779 19.2157C306.717 19.1549 306.683 19.0712 306.685 18.9844C306.686 18.8976 306.724 18.8154 306.788 18.7573C308.069 17.675 309.945 17.675 311.225 18.7573C311.29 18.8155 311.327 18.8977 311.329 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M295.34 10.6665H294.34C293.788 10.6665 293.34 11.1142 293.34 11.6665V20.3332C293.34 20.8855 293.788 21.3332 294.34 21.3332H295.34C295.892 21.3332 296.34 20.8855 296.34 20.3332V11.6665C296.34 11.1142 295.892 10.6665 295.34 10.6665ZM289.673 12.9998H290.673C291.225 12.9998 291.673 13.4476 291.673 13.9998V20.3332C291.673 20.8855 291.225 21.3332 290.673 21.3332H289.673C289.121 21.3332 288.673 20.8855 288.673 20.3332V13.9998C288.673 13.4476 289.121 12.9998 289.673 12.9998ZM286.007 15.3332H285.007C284.454 15.3332 284.007 15.7809 284.007 16.3332V20.3332C284.007 20.8855 284.454 21.3332 285.007 21.3332H286.007C286.559 21.3332 287.007 20.8855 287.007 20.3332V16.3332C287.007 15.7809 286.559 15.3332 286.007 15.3332ZM281.34 17.3332H280.34C279.788 17.3332 279.34 17.7809 279.34 18.3332V20.3332C279.34 20.8855 279.788 21.3332 280.34 21.3332H281.34C281.892 21.3332 282.34 20.8855 282.34 20.3332V18.3332C282.34 17.7809 281.892 17.3332 281.34 17.3332Z" fill="white"/>
|
||||
</g>
|
||||
<rect x="0.5" y="0.5" width="374" height="811" rx="19.5" stroke="black"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_3861_6297">
|
||||
<rect width="375" height="812" rx="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,17 @@
|
|||
<svg width="500" height="917" viewBox="0 0 500 917" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3978_4273)">
|
||||
<rect width="500" height="917" fill="white"/>
|
||||
<circle cx="144" cy="458" r="290" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="447.173" y="10.8333" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M469.673 14V18C470.478 17.6612 471.001 16.8731 471.001 16C471.001 15.1269 470.478 14.3388 469.673 14" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="448.673" y="12.3333" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M434.007 12.615C436.232 12.6151 438.371 13.4693 439.984 15.0008C440.105 15.1191 440.299 15.1176 440.419 14.9975L441.579 13.8272C441.64 13.7663 441.674 13.6837 441.673 13.5979C441.673 13.5121 441.638 13.4299 441.577 13.3697C437.345 9.31751 430.668 9.31751 426.437 13.3697C426.375 13.4299 426.34 13.512 426.34 13.5978C426.339 13.6837 426.373 13.7662 426.433 13.8272L427.594 14.9975C427.714 15.1178 427.908 15.1193 428.029 15.0008C429.642 13.4692 431.782 12.615 434.007 12.615ZM434.007 16.4226C435.229 16.4226 436.408 16.8765 437.314 17.6963C437.437 17.8126 437.63 17.8101 437.749 17.6906L438.908 16.5203C438.969 16.4589 439.003 16.3756 439.002 16.2891C439.002 16.2025 438.966 16.12 438.904 16.0598C436.145 13.4954 431.872 13.4954 429.112 16.0598C429.05 16.12 429.015 16.2026 429.014 16.2891C429.013 16.3757 429.047 16.459 429.108 16.5203L430.267 17.6906C430.387 17.8101 430.58 17.8126 430.702 17.6963C431.608 16.877 432.785 16.4231 434.007 16.4226ZM436.329 18.9845C436.331 19.0712 436.297 19.1549 436.235 19.2157L434.229 21.2377C434.171 21.2971 434.091 21.3306 434.007 21.3306C433.923 21.3306 433.843 21.2971 433.784 21.2377L431.779 19.2157C431.717 19.1549 431.683 19.0712 431.685 18.9844C431.686 18.8976 431.724 18.8154 431.788 18.7573C433.069 17.675 434.945 17.675 436.225 18.7573C436.29 18.8155 436.327 18.8977 436.329 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M420.34 10.6665H419.34C418.788 10.6665 418.34 11.1142 418.34 11.6665V20.3332C418.34 20.8855 418.788 21.3332 419.34 21.3332H420.34C420.892 21.3332 421.34 20.8855 421.34 20.3332V11.6665C421.34 11.1142 420.892 10.6665 420.34 10.6665ZM414.673 12.9998H415.673C416.225 12.9998 416.673 13.4476 416.673 13.9998V20.3332C416.673 20.8855 416.225 21.3332 415.673 21.3332H414.673C414.121 21.3332 413.673 20.8855 413.673 20.3332V13.9998C413.673 13.4476 414.121 12.9998 414.673 12.9998ZM411.007 15.3332H410.007C409.454 15.3332 409.007 15.7809 409.007 16.3332V20.3332C409.007 20.8855 409.454 21.3332 410.007 21.3332H411.007C411.559 21.3332 412.007 20.8855 412.007 20.3332V16.3332C412.007 15.7809 411.559 15.3332 411.007 15.3332ZM406.34 17.3332H405.34C404.788 17.3332 404.34 17.7809 404.34 18.3332V20.3332C404.34 20.8855 404.788 21.3332 405.34 21.3332H406.34C406.892 21.3332 407.34 20.8855 407.34 20.3332V18.3332C407.34 17.7809 406.892 17.3332 406.34 17.3332Z" fill="white"/>
|
||||
<path d="M80.6696 8.35C79.7096 8.35 78.8946 8.555 78.2246 8.965C77.5446 9.365 77.0246 9.95 76.6646 10.72C76.3046 11.49 76.1246 12.44 76.1246 13.57C76.1246 14.77 76.3446 15.785 76.7846 16.615C77.2146 17.445 77.8146 18.075 78.5846 18.505C79.3546 18.935 80.2496 19.15 81.2696 19.15C81.7996 19.15 82.3046 19.095 82.7846 18.985C83.2646 18.875 83.6796 18.705 84.0296 18.475L83.3096 17.005C83.0196 17.195 82.7046 17.33 82.3646 17.41C82.0246 17.48 81.6746 17.515 81.3146 17.515C80.3246 17.515 79.5396 17.21 78.9596 16.6C78.3796 15.99 78.0896 15.09 78.0896 13.9C78.0896 13.71 78.0946 13.49 78.1046 13.24C78.1146 12.98 78.1496 12.72 78.2096 12.46L77.6096 13.12C77.7796 13.53 78.0246 13.875 78.3446 14.155C78.6646 14.425 79.0396 14.63 79.4696 14.77C79.8996 14.91 80.3746 14.98 80.8946 14.98C81.5746 14.98 82.1896 14.85 82.7396 14.59C83.2796 14.32 83.7096 13.945 84.0296 13.465C84.3496 12.975 84.5096 12.405 84.5096 11.755C84.5096 11.055 84.3396 10.455 83.9996 9.955C83.6596 9.445 83.1996 9.05 82.6196 8.77C82.0296 8.49 81.3796 8.35 80.6696 8.35ZM80.5646 9.88C80.9646 9.88 81.3196 9.955 81.6296 10.105C81.9396 10.245 82.1846 10.45 82.3646 10.72C82.5346 10.98 82.6196 11.295 82.6196 11.665C82.6196 12.215 82.4296 12.65 82.0496 12.97C81.6696 13.29 81.1596 13.45 80.5196 13.45C80.0996 13.45 79.7296 13.375 79.4096 13.225C79.0896 13.065 78.8396 12.85 78.6596 12.58C78.4796 12.3 78.3896 11.99 78.3896 11.65C78.3896 11.32 78.4746 11.025 78.6446 10.765C78.8146 10.495 79.0596 10.28 79.3796 10.12C79.6996 9.96 80.0946 9.88 80.5646 9.88ZM73.9153 13.39C74.2553 13.39 74.5453 13.275 74.7853 13.045C75.0253 12.805 75.1453 12.505 75.1453 12.145C75.1453 11.765 75.0253 11.465 74.7853 11.245C74.5453 11.015 74.2553 10.9 73.9153 10.9C73.5753 10.9 73.2853 11.015 73.0453 11.245C72.8053 11.465 72.6853 11.765 72.6853 12.145C72.6853 12.505 72.8053 12.805 73.0453 13.045C73.2853 13.275 73.5753 13.39 73.9153 13.39ZM73.9153 19.105C74.2553 19.105 74.5453 18.99 74.7853 18.76C75.0253 18.52 75.1453 18.22 75.1453 17.86C75.1453 17.48 75.0253 17.18 74.7853 16.96C74.5453 16.73 74.2553 16.615 73.9153 16.615C73.5753 16.615 73.2853 16.73 73.0453 16.96C72.8053 17.18 72.6853 17.48 72.6853 17.86C72.6853 18.22 72.8053 18.52 73.0453 18.76C73.2853 18.99 73.5753 19.105 73.9153 19.105ZM71.8531 16.615V15.265L66.6781 8.5H64.5931L69.6931 15.265L70.6681 14.965H62.3431V16.615H71.8531ZM66.0931 19V16.615L66.0331 14.965V12.85H64.2031V19H66.0931ZM60.5033 19V9.25L59.6483 10.135H62.7233V8.5H58.5533V19H60.5033Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3978_4273">
|
||||
<rect width="500" height="917" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 155 KiB |
|
@ -0,0 +1,17 @@
|
|||
<svg width="500" height="917" viewBox="0 0 500 917" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3978_4291)">
|
||||
<rect width="500" height="917" fill="white"/>
|
||||
<circle cx="356" cy="458" r="290" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="447.173" y="10.8334" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M469.673 14V18C470.478 17.6612 471.001 16.8731 471.001 16C471.001 15.1269 470.478 14.3388 469.673 14" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="448.673" y="12.3334" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M434.007 12.6152C436.232 12.6153 438.371 13.4694 439.984 15.001C440.105 15.1192 440.299 15.1177 440.419 14.9976L441.579 13.8273C441.64 13.7664 441.674 13.6839 441.673 13.598C441.673 13.5122 441.638 13.4301 441.577 13.3699C437.345 9.31763 430.668 9.31763 426.437 13.3699C426.375 13.43 426.34 13.5121 426.34 13.598C426.339 13.6838 426.373 13.7663 426.433 13.8273L427.594 14.9976C427.714 15.1179 427.908 15.1194 428.029 15.001C429.642 13.4693 431.782 12.6152 434.007 12.6152ZM434.007 16.4227C435.229 16.4227 436.408 16.8766 437.314 17.6964C437.437 17.8127 437.63 17.8102 437.749 17.6907L438.908 16.5204C438.969 16.459 439.003 16.3757 439.002 16.2892C439.002 16.2027 438.966 16.1201 438.904 16.0599C436.145 13.4955 431.872 13.4955 429.112 16.0599C429.05 16.1201 429.015 16.2027 429.014 16.2893C429.013 16.3758 429.047 16.4591 429.108 16.5204L430.267 17.6907C430.387 17.8102 430.58 17.8127 430.702 17.6964C431.608 16.8772 432.785 16.4233 434.007 16.4227ZM436.329 18.9846C436.331 19.0714 436.297 19.155 436.235 19.2158L434.229 21.2378C434.171 21.2972 434.091 21.3307 434.007 21.3307C433.923 21.3307 433.843 21.2972 433.784 21.2378L431.779 19.2158C431.717 19.155 431.683 19.0713 431.685 18.9845C431.686 18.8977 431.724 18.8156 431.788 18.7574C433.069 17.6751 434.945 17.6751 436.225 18.7574C436.29 18.8156 436.327 18.8978 436.329 18.9846Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M420.34 10.6667H419.34C418.788 10.6667 418.34 11.1145 418.34 11.6667V20.3334C418.34 20.8857 418.788 21.3334 419.34 21.3334H420.34C420.892 21.3334 421.34 20.8857 421.34 20.3334V11.6667C421.34 11.1145 420.892 10.6667 420.34 10.6667ZM414.673 13.0001H415.673C416.225 13.0001 416.673 13.4478 416.673 14.0001V20.3334C416.673 20.8857 416.225 21.3334 415.673 21.3334H414.673C414.121 21.3334 413.673 20.8857 413.673 20.3334V14.0001C413.673 13.4478 414.121 13.0001 414.673 13.0001ZM411.007 15.3334H410.007C409.454 15.3334 409.007 15.7811 409.007 16.3334V20.3334C409.007 20.8857 409.454 21.3334 410.007 21.3334H411.007C411.559 21.3334 412.007 20.8857 412.007 20.3334V16.3334C412.007 15.7811 411.559 15.3334 411.007 15.3334ZM406.34 17.3334H405.34C404.788 17.3334 404.34 17.7811 404.34 18.3334V20.3334C404.34 20.8857 404.788 21.3334 405.34 21.3334H406.34C406.892 21.3334 407.34 20.8857 407.34 20.3334V18.3334C407.34 17.7811 406.892 17.3334 406.34 17.3334Z" fill="white"/>
|
||||
<path d="M80.6696 8.35C79.7096 8.35 78.8946 8.555 78.2246 8.965C77.5446 9.365 77.0246 9.95 76.6646 10.72C76.3046 11.49 76.1246 12.44 76.1246 13.57C76.1246 14.77 76.3446 15.785 76.7846 16.615C77.2146 17.445 77.8146 18.075 78.5846 18.505C79.3546 18.935 80.2496 19.15 81.2696 19.15C81.7996 19.15 82.3046 19.095 82.7846 18.985C83.2646 18.875 83.6796 18.705 84.0296 18.475L83.3096 17.005C83.0196 17.195 82.7046 17.33 82.3646 17.41C82.0246 17.48 81.6746 17.515 81.3146 17.515C80.3246 17.515 79.5396 17.21 78.9596 16.6C78.3796 15.99 78.0896 15.09 78.0896 13.9C78.0896 13.71 78.0946 13.49 78.1046 13.24C78.1146 12.98 78.1496 12.72 78.2096 12.46L77.6096 13.12C77.7796 13.53 78.0246 13.875 78.3446 14.155C78.6646 14.425 79.0396 14.63 79.4696 14.77C79.8996 14.91 80.3746 14.98 80.8946 14.98C81.5746 14.98 82.1896 14.85 82.7396 14.59C83.2796 14.32 83.7096 13.945 84.0296 13.465C84.3496 12.975 84.5096 12.405 84.5096 11.755C84.5096 11.055 84.3396 10.455 83.9996 9.955C83.6596 9.445 83.1996 9.05 82.6196 8.77C82.0296 8.49 81.3796 8.35 80.6696 8.35ZM80.5646 9.88C80.9646 9.88 81.3196 9.955 81.6296 10.105C81.9396 10.245 82.1846 10.45 82.3646 10.72C82.5346 10.98 82.6196 11.295 82.6196 11.665C82.6196 12.215 82.4296 12.65 82.0496 12.97C81.6696 13.29 81.1596 13.45 80.5196 13.45C80.0996 13.45 79.7296 13.375 79.4096 13.225C79.0896 13.065 78.8396 12.85 78.6596 12.58C78.4796 12.3 78.3896 11.99 78.3896 11.65C78.3896 11.32 78.4746 11.025 78.6446 10.765C78.8146 10.495 79.0596 10.28 79.3796 10.12C79.6996 9.96 80.0946 9.88 80.5646 9.88ZM73.9153 13.39C74.2553 13.39 74.5453 13.275 74.7853 13.045C75.0253 12.805 75.1453 12.505 75.1453 12.145C75.1453 11.765 75.0253 11.465 74.7853 11.245C74.5453 11.015 74.2553 10.9 73.9153 10.9C73.5753 10.9 73.2853 11.015 73.0453 11.245C72.8053 11.465 72.6853 11.765 72.6853 12.145C72.6853 12.505 72.8053 12.805 73.0453 13.045C73.2853 13.275 73.5753 13.39 73.9153 13.39ZM73.9153 19.105C74.2553 19.105 74.5453 18.99 74.7853 18.76C75.0253 18.52 75.1453 18.22 75.1453 17.86C75.1453 17.48 75.0253 17.18 74.7853 16.96C74.5453 16.73 74.2553 16.615 73.9153 16.615C73.5753 16.615 73.2853 16.73 73.0453 16.96C72.8053 17.18 72.6853 17.48 72.6853 17.86C72.6853 18.22 72.8053 18.52 73.0453 18.76C73.2853 18.99 73.5753 19.105 73.9153 19.105ZM71.8531 16.615V15.265L66.6781 8.5H64.5931L69.6931 15.265L70.6681 14.965H62.3431V16.615H71.8531ZM66.0931 19V16.615L66.0331 14.965V12.85H64.2031V19H66.0931ZM60.5033 19V9.25L59.6483 10.135H62.7233V8.5H58.5533V19H60.5033Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3978_4291">
|
||||
<rect width="500" height="917" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 8.9 MiB |
After Width: | Height: | Size: 229 KiB |
After Width: | Height: | Size: 228 KiB |
|
@ -0,0 +1,16 @@
|
|||
<svg width="375" height="812" viewBox="0 0 375 812" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3861_6297)">
|
||||
<rect width="375" height="812" fill="white"/>
|
||||
<circle cx="94.5" cy="448.5" r="240.5" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="322.173" y="10.8333" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M344.673 14V18C345.478 17.6612 346.001 16.8731 346.001 16C346.001 15.1269 345.478 14.3388 344.673 14Z" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="323.673" y="12.3333" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M309.007 12.615C311.232 12.6151 313.371 13.4693 314.984 15.0008C315.105 15.1191 315.299 15.1176 315.419 14.9975L316.579 13.8272C316.64 13.7663 316.674 13.6837 316.673 13.5979C316.673 13.5121 316.638 13.4299 316.577 13.3697C312.345 9.31751 305.668 9.31751 301.437 13.3697C301.375 13.4299 301.34 13.512 301.34 13.5978C301.339 13.6837 301.373 13.7662 301.433 13.8272L302.594 14.9975C302.714 15.1178 302.908 15.1193 303.029 15.0008C304.642 13.4692 306.782 12.615 309.007 12.615ZM309.007 16.4226C310.229 16.4226 311.408 16.8765 312.314 17.6963C312.437 17.8126 312.63 17.8101 312.749 17.6906L313.908 16.5203C313.969 16.4589 314.003 16.3756 314.002 16.2891C314.002 16.2025 313.966 16.12 313.904 16.0598C311.145 13.4954 306.872 13.4954 304.112 16.0598C304.05 16.12 304.015 16.2026 304.014 16.2891C304.013 16.3757 304.047 16.459 304.108 16.5203L305.267 17.6906C305.387 17.8101 305.58 17.8126 305.702 17.6963C306.608 16.877 307.785 16.4231 309.007 16.4226ZM311.329 18.9845C311.331 19.0712 311.297 19.1549 311.235 19.2157L309.229 21.2377C309.171 21.2971 309.091 21.3306 309.007 21.3306C308.923 21.3306 308.843 21.2971 308.784 21.2377L306.779 19.2157C306.717 19.1549 306.683 19.0712 306.685 18.9844C306.686 18.8976 306.724 18.8154 306.788 18.7573C308.069 17.675 309.945 17.675 311.225 18.7573C311.29 18.8155 311.327 18.8977 311.329 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M295.34 10.6665H294.34C293.788 10.6665 293.34 11.1142 293.34 11.6665V20.3332C293.34 20.8855 293.788 21.3332 294.34 21.3332H295.34C295.892 21.3332 296.34 20.8855 296.34 20.3332V11.6665C296.34 11.1142 295.892 10.6665 295.34 10.6665ZM289.673 12.9998H290.673C291.225 12.9998 291.673 13.4476 291.673 13.9998V20.3332C291.673 20.8855 291.225 21.3332 290.673 21.3332H289.673C289.121 21.3332 288.673 20.8855 288.673 20.3332V13.9998C288.673 13.4476 289.121 12.9998 289.673 12.9998ZM286.007 15.3332H285.007C284.454 15.3332 284.007 15.7809 284.007 16.3332V20.3332C284.007 20.8855 284.454 21.3332 285.007 21.3332H286.007C286.559 21.3332 287.007 20.8855 287.007 20.3332V16.3332C287.007 15.7809 286.559 15.3332 286.007 15.3332ZM281.34 17.3332H280.34C279.788 17.3332 279.34 17.7809 279.34 18.3332V20.3332C279.34 20.8855 279.788 21.3332 280.34 21.3332H281.34C281.892 21.3332 282.34 20.8855 282.34 20.3332V18.3332C282.34 17.7809 281.892 17.3332 281.34 17.3332Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3861_6297">
|
||||
<rect width="375" height="812" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,18 @@
|
|||
<svg width="428" height="926" viewBox="0 0 428 926" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3861_6208)">
|
||||
<rect width="428" height="926" rx="20" fill="white"/>
|
||||
<circle cx="320" cy="449" r="270" fill="#E7F4FF"/>
|
||||
<rect opacity="0.35" x="375.173" y="10.8333" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M397.673 14V18C398.478 17.6612 399.001 16.8731 399.001 16C399.001 15.1269 398.478 14.3388 397.673 14" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="376.673" y="12.3333" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M362.007 12.615C364.232 12.6151 366.371 13.4693 367.984 15.0008C368.105 15.1191 368.299 15.1176 368.419 14.9975L369.579 13.8272C369.64 13.7663 369.674 13.6837 369.673 13.5979C369.673 13.5121 369.638 13.4299 369.577 13.3697C365.345 9.31751 358.668 9.31751 354.437 13.3697C354.375 13.4299 354.34 13.512 354.34 13.5978C354.339 13.6837 354.373 13.7662 354.433 13.8272L355.594 14.9975C355.714 15.1178 355.908 15.1193 356.029 15.0008C357.642 13.4692 359.782 12.615 362.007 12.615ZM362.007 16.4226C363.229 16.4226 364.408 16.8765 365.314 17.6963C365.437 17.8126 365.63 17.8101 365.749 17.6906L366.908 16.5203C366.969 16.4589 367.003 16.3756 367.002 16.2891C367.002 16.2025 366.966 16.12 366.904 16.0598C364.145 13.4954 359.872 13.4954 357.112 16.0598C357.05 16.12 357.015 16.2026 357.014 16.2891C357.013 16.3757 357.047 16.459 357.108 16.5203L358.267 17.6906C358.387 17.8101 358.58 17.8126 358.702 17.6963C359.608 16.877 360.785 16.4231 362.007 16.4226ZM364.329 18.9845C364.331 19.0712 364.297 19.1549 364.235 19.2157L362.229 21.2377C362.171 21.2971 362.091 21.3306 362.007 21.3306C361.923 21.3306 361.843 21.2971 361.784 21.2377L359.779 19.2157C359.717 19.1549 359.683 19.0712 359.685 18.9844C359.686 18.8976 359.724 18.8154 359.788 18.7573C361.069 17.675 362.945 17.675 364.225 18.7573C364.29 18.8155 364.327 18.8977 364.329 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M348.34 10.6665H347.34C346.788 10.6665 346.34 11.1142 346.34 11.6665V20.3332C346.34 20.8855 346.788 21.3332 347.34 21.3332H348.34C348.892 21.3332 349.34 20.8855 349.34 20.3332V11.6665C349.34 11.1142 348.892 10.6665 348.34 10.6665ZM342.673 12.9998H343.673C344.225 12.9998 344.673 13.4476 344.673 13.9998V20.3332C344.673 20.8855 344.225 21.3332 343.673 21.3332H342.673C342.121 21.3332 341.673 20.8855 341.673 20.3332V13.9998C341.673 13.4476 342.121 12.9998 342.673 12.9998ZM339.007 15.3332H338.007C337.454 15.3332 337.007 15.7809 337.007 16.3332V20.3332C337.007 20.8855 337.454 21.3332 338.007 21.3332H339.007C339.559 21.3332 340.007 20.8855 340.007 20.3332V16.3332C340.007 15.7809 339.559 15.3332 339.007 15.3332ZM334.34 17.3332H333.34C332.788 17.3332 332.34 17.7809 332.34 18.3332V20.3332C332.34 20.8855 332.788 21.3332 333.34 21.3332H334.34C334.892 21.3332 335.34 20.8855 335.34 20.3332V18.3332C335.34 17.7809 334.892 17.3332 334.34 17.3332Z" fill="white"/>
|
||||
<path d="M25.64 12.35C27.08 12.35 28.195 12.8 28.985 13.7C29.785 14.6 30.185 15.89 30.185 17.57C30.185 18.75 29.97 19.76 29.54 20.6C29.11 21.43 28.505 22.065 27.725 22.505C26.955 22.935 26.06 23.15 25.04 23.15C24.5 23.15 23.99 23.095 23.51 22.985C23.04 22.865 22.63 22.695 22.28 22.475L23 21.005C23.52 21.345 24.185 21.515 24.995 21.515C26.005 21.515 26.795 21.205 27.365 20.585C27.935 19.965 28.22 19.07 28.22 17.9V17.885C27.91 18.245 27.515 18.52 27.035 18.71C26.555 18.89 26.015 18.98 25.415 18.98C24.725 18.98 24.105 18.85 23.555 18.59C23.005 18.32 22.575 17.94 22.265 17.45C21.955 16.96 21.8 16.395 21.8 15.755C21.8 15.075 21.97 14.48 22.31 13.97C22.65 13.45 23.11 13.05 23.69 12.77C24.27 12.49 24.92 12.35 25.64 12.35ZM25.79 17.45C26.42 17.45 26.93 17.28 27.32 16.94C27.72 16.6 27.92 16.17 27.92 15.65C27.92 15.14 27.725 14.72 27.335 14.39C26.955 14.05 26.425 13.88 25.745 13.88C25.135 13.88 24.64 14.045 24.26 14.375C23.88 14.695 23.69 15.125 23.69 15.665C23.69 16.215 23.88 16.65 24.26 16.97C24.64 17.29 25.15 17.45 25.79 17.45ZM32.3943 17.39C32.0543 17.39 31.7643 17.275 31.5243 17.045C31.2843 16.805 31.1643 16.505 31.1643 16.145C31.1643 15.775 31.2793 15.475 31.5093 15.245C31.7493 15.015 32.0443 14.9 32.3943 14.9C32.7443 14.9 33.0343 15.015 33.2643 15.245C33.5043 15.475 33.6243 15.775 33.6243 16.145C33.6243 16.505 33.5043 16.805 33.2643 17.045C33.0243 17.275 32.7343 17.39 32.3943 17.39ZM32.3943 23.105C32.0543 23.105 31.7643 22.99 31.5243 22.76C31.2843 22.52 31.1643 22.22 31.1643 21.86C31.1643 21.49 31.2793 21.19 31.5093 20.96C31.7493 20.73 32.0443 20.615 32.3943 20.615C32.7443 20.615 33.0343 20.73 33.2643 20.96C33.5043 21.19 33.6243 21.49 33.6243 21.86C33.6243 22.22 33.5043 22.52 33.2643 22.76C33.0243 22.99 32.7343 23.105 32.3943 23.105ZM43.9664 20.615H42.1064V23H40.2164V20.615H34.4564V19.265L39.6314 12.5H41.7164L36.8414 18.965H40.2764V16.85H42.1064V18.965H43.9664V20.615ZM48.1371 12.5V23H46.1871V14.135H43.9671V12.5H48.1371Z" fill="white"/>
|
||||
</g>
|
||||
<rect x="0.5" y="0.5" width="427" height="925" rx="19.5" stroke="black"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_3861_6208">
|
||||
<rect width="428" height="926" rx="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,16 @@
|
|||
<svg width="375" height="812" viewBox="0 0 375 812" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3861_6208)">
|
||||
<rect width="375" height="812" fill="white"/>
|
||||
<rect opacity="0.35" x="322.173" y="10.8333" width="21" height="10.3333" rx="2.16667" stroke="white" stroke-opacity="0.6"/>
|
||||
<path opacity="0.4" d="M344.673 14V18C345.478 17.6612 346.001 16.8731 346.001 16C346.001 15.1269 345.478 14.3388 344.673 14Z" fill="white" fill-opacity="0.6"/>
|
||||
<rect x="323.673" y="12.3333" width="18" height="7.33333" rx="1.33333" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M309.007 12.615C311.232 12.6151 313.371 13.4693 314.984 15.0008C315.105 15.1191 315.299 15.1176 315.419 14.9975L316.579 13.8272C316.64 13.7663 316.674 13.6837 316.673 13.5979C316.673 13.5121 316.638 13.4299 316.577 13.3697C312.345 9.31751 305.668 9.31751 301.437 13.3697C301.375 13.4299 301.34 13.512 301.34 13.5978C301.339 13.6837 301.373 13.7662 301.433 13.8272L302.594 14.9975C302.714 15.1178 302.908 15.1193 303.029 15.0008C304.642 13.4692 306.782 12.615 309.007 12.615ZM309.007 16.4226C310.229 16.4226 311.408 16.8765 312.314 17.6963C312.437 17.8126 312.63 17.8101 312.749 17.6906L313.908 16.5203C313.969 16.4589 314.003 16.3756 314.002 16.2891C314.002 16.2025 313.966 16.12 313.904 16.0598C311.145 13.4954 306.872 13.4954 304.112 16.0598C304.05 16.12 304.015 16.2026 304.014 16.2891C304.013 16.3757 304.047 16.459 304.108 16.5203L305.267 17.6906C305.387 17.8101 305.58 17.8126 305.702 17.6963C306.608 16.877 307.785 16.4231 309.007 16.4226ZM311.329 18.9845C311.331 19.0712 311.297 19.1549 311.235 19.2157L309.229 21.2377C309.171 21.2971 309.091 21.3306 309.007 21.3306C308.923 21.3306 308.843 21.2971 308.784 21.2377L306.779 19.2157C306.717 19.1549 306.683 19.0712 306.685 18.9844C306.686 18.8976 306.724 18.8154 306.788 18.7573C308.069 17.675 309.945 17.675 311.225 18.7573C311.29 18.8155 311.327 18.8977 311.329 18.9845Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M295.34 10.6665H294.34C293.788 10.6665 293.34 11.1142 293.34 11.6665V20.3332C293.34 20.8855 293.788 21.3332 294.34 21.3332H295.34C295.892 21.3332 296.34 20.8855 296.34 20.3332V11.6665C296.34 11.1142 295.892 10.6665 295.34 10.6665ZM289.673 12.9998H290.673C291.225 12.9998 291.673 13.4476 291.673 13.9998V20.3332C291.673 20.8855 291.225 21.3332 290.673 21.3332H289.673C289.121 21.3332 288.673 20.8855 288.673 20.3332V13.9998C288.673 13.4476 289.121 12.9998 289.673 12.9998ZM286.007 15.3332H285.007C284.454 15.3332 284.007 15.7809 284.007 16.3332V20.3332C284.007 20.8855 284.454 21.3332 285.007 21.3332H286.007C286.559 21.3332 287.007 20.8855 287.007 20.3332V16.3332C287.007 15.7809 286.559 15.3332 286.007 15.3332ZM281.34 17.3332H280.34C279.788 17.3332 279.34 17.7809 279.34 18.3332V20.3332C279.34 20.8855 279.788 21.3332 280.34 21.3332H281.34C281.892 21.3332 282.34 20.8855 282.34 20.3332V18.3332C282.34 17.7809 281.892 17.3332 281.34 17.3332Z" fill="white"/>
|
||||
<circle cx="280.5" cy="448.5" r="240.5" fill="#E7F4FF"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3861_6208">
|
||||
<rect width="375" height="812" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -38,11 +38,11 @@
|
|||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "1",
|
||||
"id": "Acute Neurology1",
|
||||
"name": "Acute Neurology1"
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"id": "Cystic Fibrosis",
|
||||
"name": "Cystic Fibrosis"
|
||||
}
|
||||
],
|
||||
|
@ -58,18 +58,18 @@
|
|||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "11",
|
||||
"pid": "1",
|
||||
"id": "Prometra Pump",
|
||||
"pid": "Acute Neurology1",
|
||||
"name": "Prometra Pump"
|
||||
},
|
||||
{
|
||||
"id": "12",
|
||||
"pid": "2",
|
||||
"id": "Prometra Pump",
|
||||
"pid": "Cystic Fibrosis",
|
||||
"name": "Prometra Pump"
|
||||
},
|
||||
{
|
||||
"id": "13",
|
||||
"pid": "2",
|
||||
"id": "Prometra Catheter",
|
||||
"pid": "Cystic Fibrosis",
|
||||
"name": "Prometra Catheter"
|
||||
}
|
||||
],
|
||||
|
@ -85,15 +85,15 @@
|
|||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "21",
|
||||
"id": "Advisory Board/Expert Committee",
|
||||
"name": "Advisory Board/Expert Committee"
|
||||
},
|
||||
{
|
||||
"id": "22",
|
||||
"id": "Congress",
|
||||
"name": "Congress"
|
||||
},
|
||||
{
|
||||
"id": "23",
|
||||
"id": "Industry professional direct knowledge ",
|
||||
"name": "Industry professional direct knowledge "
|
||||
}
|
||||
],
|
||||
|
@ -109,13 +109,13 @@
|
|||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "31",
|
||||
"pid": "22",
|
||||
"id": "Industry professional",
|
||||
"pid": "Congress",
|
||||
"name": "Industry professional"
|
||||
},
|
||||
{
|
||||
"id": "32",
|
||||
"pid": "22",
|
||||
"id": "Symposium",
|
||||
"pid": "Congress",
|
||||
"name": "Symposium"
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,7 @@
|
|||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "41",
|
||||
"id": "Data Gap",
|
||||
"name": "Data Gap"
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,216 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"id": "MedInsight",
|
||||
"name": "Medical Insights Form",
|
||||
"form-fields": [
|
||||
{
|
||||
"sectionName": "Medical Insight",
|
||||
"multiple": false,
|
||||
"sectionList": [
|
||||
{
|
||||
"name": "HCP Name",
|
||||
"id": "hcpname",
|
||||
"depid": "",
|
||||
"widget": "label",
|
||||
"input": "label",
|
||||
"validation": {
|
||||
"isRequired": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Date",
|
||||
"id": "date",
|
||||
"depid": "",
|
||||
"widget": "text",
|
||||
"input": "Date",
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Therapeutic Area",
|
||||
"param": "therapeutic_area",
|
||||
"id": "therapeutic",
|
||||
"selectedValue": [],
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Acute Neurology1",
|
||||
"name": "Acute Neurology1"
|
||||
},
|
||||
{
|
||||
"id": "Cystic Fibrosis",
|
||||
"name": "Cystic Fibrosis"
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Product",
|
||||
"id": "product",
|
||||
"depid": "therapeutic",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Prometra Pump",
|
||||
"pid": "Acute Neurology1",
|
||||
"name": "Prometra Pump"
|
||||
},
|
||||
{
|
||||
"id": "Prometra Pump",
|
||||
"pid": "Cystic Fibrosis",
|
||||
"name": "Prometra Pump"
|
||||
},
|
||||
{
|
||||
"id": "Prometra Catheter",
|
||||
"pid": "Cystic Fibrosis",
|
||||
"name": "Prometra Catheter"
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Source Type",
|
||||
"id": "sourcetype",
|
||||
"depid": "",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Advisory Board/Expert Committee",
|
||||
"name": "Advisory Board/Expert Committee"
|
||||
},
|
||||
{
|
||||
"id": "Congress",
|
||||
"name": "Congress"
|
||||
},
|
||||
{
|
||||
"id": "Industry professional direct knowledge ",
|
||||
"name": "Industry professional direct knowledge "
|
||||
}
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Congress Source",
|
||||
"id": "congresssource",
|
||||
"depid": "sourcetype",
|
||||
"widget": "dropdown",
|
||||
"input": "dropdown",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Industry professional",
|
||||
"pid": "Congress",
|
||||
"name": "Industry professional"
|
||||
},
|
||||
{
|
||||
"id": "Symposium",
|
||||
"pid": "Congress",
|
||||
"name": "Symposium"
|
||||
}
|
||||
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Congress Name",
|
||||
"id": "congressName",
|
||||
"depid": "sourcetype",
|
||||
"widget": "text",
|
||||
"input": "text",
|
||||
"validation": {
|
||||
"isRequired": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"sectionName": "Medical Insights Details",
|
||||
"multiple": false,
|
||||
"sectionList": [
|
||||
{
|
||||
"name": "Key Insight Topics",
|
||||
"id": "keyinsighttopics",
|
||||
"depid": "",
|
||||
"param": "keyinsighttopics",
|
||||
"widget": "multiselect",
|
||||
"input": "multiselect",
|
||||
"inputList": [
|
||||
{
|
||||
"id": "Data Gap",
|
||||
"name": "Data Gap"
|
||||
}
|
||||
|
||||
],
|
||||
"validation": {
|
||||
"isRequired": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Medical Insight Summary",
|
||||
"id": "summary",
|
||||
"depid": "",
|
||||
"widget": "text",
|
||||
"input": "textArea",
|
||||
"validation": {
|
||||
"isRequired": true,
|
||||
"maxchars": "300"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -490,7 +490,7 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 44SNAJ6T8L;
|
||||
DEVELOPMENT_TEAM = 69ERN967NS;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
|
@ -671,7 +671,7 @@
|
|||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 44SNAJ6T8L;
|
||||
DEVELOPMENT_TEAM = 69ERN967NS;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
|
|
|
@ -209,7 +209,7 @@ class ConfigDataProvider extends ChangeNotifier {
|
|||
|
||||
Future<List<InteractionConfigData>> fetchLocalMedicalInsight() async {
|
||||
dynamic jsonResult = jsonDecode(
|
||||
await rootBundle.loadString("assets/medicalinsightform.json"));
|
||||
await rootBundle.loadString("assets/sarepta_medicalinsights.json"));
|
||||
//dynamic jsonResult = await MockApiCall().getConfigDataMedical();
|
||||
|
||||
List<InteractionConfigData> interactionConfigData = [];
|
||||
|
|
|
@ -4,6 +4,10 @@
|
|||
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:konectar_events/utils/hivetypeids.dart';
|
||||
part 'events_details.g.dart';
|
||||
|
||||
EventsOverviewDetails eventsOverviewDetailsFromJson(String str) =>
|
||||
EventsOverviewDetails.fromJson(json.decode(str));
|
||||
|
||||
|
@ -11,7 +15,7 @@ String eventsOverviewDetailsToJson(EventsOverviewDetails data) =>
|
|||
json.encode(data.toJson());
|
||||
|
||||
class EventsOverviewDetails {
|
||||
OverviewData? data;
|
||||
EventsOverviewData? data;
|
||||
|
||||
EventsOverviewDetails({
|
||||
this.data,
|
||||
|
@ -19,7 +23,9 @@ class EventsOverviewDetails {
|
|||
|
||||
factory EventsOverviewDetails.fromJson(Map<String, dynamic> json) =>
|
||||
EventsOverviewDetails(
|
||||
data: json["data"] == null ? null : OverviewData.fromJson(json["data"]),
|
||||
data: json["data"] == null
|
||||
? null
|
||||
: EventsOverviewData.fromJson(json["data"]),
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
|
@ -27,13 +33,13 @@ class EventsOverviewDetails {
|
|||
};
|
||||
}
|
||||
|
||||
class OverviewData {
|
||||
class EventsOverviewData {
|
||||
int? projectKolAttendee;
|
||||
bool? cal;
|
||||
int? grid;
|
||||
String? eventFor;
|
||||
String? eventId;
|
||||
List<TopSpeakers>? eventData;
|
||||
List<TopSpeakers>? topSpeakers;
|
||||
dynamic eventTopics;
|
||||
List<EventSponser>? eventSponsers;
|
||||
bool? eventUserAttendee;
|
||||
|
@ -41,13 +47,13 @@ class OverviewData {
|
|||
List<ArrEvent>? arrEvents;
|
||||
int? attendeeCount;
|
||||
|
||||
OverviewData({
|
||||
EventsOverviewData({
|
||||
this.projectKolAttendee,
|
||||
this.cal,
|
||||
this.grid,
|
||||
this.eventFor,
|
||||
this.eventId,
|
||||
this.eventData,
|
||||
this.topSpeakers,
|
||||
this.eventTopics,
|
||||
this.eventSponsers,
|
||||
this.eventUserAttendee,
|
||||
|
@ -56,13 +62,14 @@ class OverviewData {
|
|||
this.attendeeCount,
|
||||
});
|
||||
|
||||
factory OverviewData.fromJson(Map<String, dynamic> json) => OverviewData(
|
||||
factory EventsOverviewData.fromJson(Map<String, dynamic> json) =>
|
||||
EventsOverviewData(
|
||||
projectKolAttendee: json["project_kol_attendee"],
|
||||
cal: json["cal"],
|
||||
grid: json["grid"],
|
||||
eventFor: json["eventFor"],
|
||||
eventId: json["eventId"],
|
||||
eventData: json["eventData"] == null
|
||||
topSpeakers: json["eventData"] == null
|
||||
? []
|
||||
: List<TopSpeakers>.from(
|
||||
json["eventData"]!.map((x) => TopSpeakers.fromJson(x))),
|
||||
|
@ -86,9 +93,9 @@ class OverviewData {
|
|||
"grid": grid,
|
||||
"eventFor": eventFor,
|
||||
"eventId": eventId,
|
||||
"eventData": eventData == null
|
||||
"eventData": topSpeakers == null
|
||||
? []
|
||||
: List<dynamic>.from(eventData!.map((x) => x.toJson())),
|
||||
: List<dynamic>.from(topSpeakers!.map((x) => x.toJson())),
|
||||
"eventTopics": eventTopics,
|
||||
"eventSponsers": eventSponsers == null
|
||||
? []
|
||||
|
@ -290,10 +297,15 @@ class ArrEvent {
|
|||
};
|
||||
}
|
||||
|
||||
@HiveType(typeId: HiveTypeIdConstants.topspeakersHiveId)
|
||||
class TopSpeakers {
|
||||
@HiveField(0)
|
||||
String? firstName;
|
||||
@HiveField(1)
|
||||
dynamic middleName;
|
||||
@HiveField(2)
|
||||
dynamic lastName;
|
||||
@HiveField(3)
|
||||
String? numSess;
|
||||
|
||||
TopSpeakers({
|
||||
|
@ -318,10 +330,15 @@ class TopSpeakers {
|
|||
};
|
||||
}
|
||||
|
||||
@HiveType(typeId: HiveTypeIdConstants.topSponsorsHiveId)
|
||||
class EventSponser {
|
||||
@HiveField(0)
|
||||
String? numSess;
|
||||
@HiveField(1)
|
||||
String? sessionSponsor;
|
||||
@HiveField(2)
|
||||
String? type;
|
||||
@HiveField(3)
|
||||
String? sponsorsType;
|
||||
|
||||
EventSponser({
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'events_details.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// TypeAdapterGenerator
|
||||
// **************************************************************************
|
||||
|
||||
class TopSpeakersAdapter extends TypeAdapter<TopSpeakers> {
|
||||
@override
|
||||
final int typeId = 103;
|
||||
|
||||
@override
|
||||
TopSpeakers read(BinaryReader reader) {
|
||||
final numOfFields = reader.readByte();
|
||||
final fields = <int, dynamic>{
|
||||
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
|
||||
};
|
||||
return TopSpeakers(
|
||||
firstName: fields[0] as String?,
|
||||
middleName: fields[1] as dynamic,
|
||||
lastName: fields[2] as dynamic,
|
||||
numSess: fields[3] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, TopSpeakers obj) {
|
||||
writer
|
||||
..writeByte(4)
|
||||
..writeByte(0)
|
||||
..write(obj.firstName)
|
||||
..writeByte(1)
|
||||
..write(obj.middleName)
|
||||
..writeByte(2)
|
||||
..write(obj.lastName)
|
||||
..writeByte(3)
|
||||
..write(obj.numSess);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => typeId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is TopSpeakersAdapter &&
|
||||
runtimeType == other.runtimeType &&
|
||||
typeId == other.typeId;
|
||||
}
|
||||
|
||||
class EventSponserAdapter extends TypeAdapter<EventSponser> {
|
||||
@override
|
||||
final int typeId = 104;
|
||||
|
||||
@override
|
||||
EventSponser read(BinaryReader reader) {
|
||||
final numOfFields = reader.readByte();
|
||||
final fields = <int, dynamic>{
|
||||
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
|
||||
};
|
||||
return EventSponser(
|
||||
numSess: fields[0] as String?,
|
||||
sessionSponsor: fields[1] as String?,
|
||||
type: fields[2] as String?,
|
||||
sponsorsType: fields[3] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, EventSponser obj) {
|
||||
writer
|
||||
..writeByte(4)
|
||||
..writeByte(0)
|
||||
..write(obj.numSess)
|
||||
..writeByte(1)
|
||||
..write(obj.sessionSponsor)
|
||||
..writeByte(2)
|
||||
..write(obj.type)
|
||||
..writeByte(3)
|
||||
..write(obj.sponsorsType);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => typeId.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is EventSponserAdapter &&
|
||||
runtimeType == other.runtimeType &&
|
||||
typeId == other.typeId;
|
||||
}
|
|
@ -0,0 +1,211 @@
|
|||
// To parse this JSON data, do
|
||||
//
|
||||
// final eventSpeakersResponse = eventSpeakersResponseFromJson(jsonString);
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
EventSpeakersResponse eventSpeakersResponseFromJson(String str) =>
|
||||
EventSpeakersResponse.fromJson(json.decode(str));
|
||||
|
||||
String eventSpeakersResponseToJson(EventSpeakersResponse data) =>
|
||||
json.encode(data.toJson());
|
||||
|
||||
class EventSpeakersResponse {
|
||||
List<EventSpeakersData>? data;
|
||||
|
||||
EventSpeakersResponse({
|
||||
this.data,
|
||||
});
|
||||
|
||||
factory EventSpeakersResponse.fromJson(Map<String, dynamic> json) =>
|
||||
EventSpeakersResponse(
|
||||
data: json["data"] == null
|
||||
? []
|
||||
: List<EventSpeakersData>.from(
|
||||
json["data"]!.map((x) => EventSpeakersData.fromJson(x))),
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"data": data == null
|
||||
? []
|
||||
: List<dynamic>.from(data!.map((x) => x.toJson())),
|
||||
};
|
||||
}
|
||||
|
||||
class EventSpeakersData {
|
||||
String? eid;
|
||||
dynamic eventTopics;
|
||||
String? npiNum;
|
||||
String? hcpPinAlias;
|
||||
String? sessionName;
|
||||
String? name;
|
||||
String? kolId;
|
||||
String? firstName;
|
||||
dynamic middleName;
|
||||
dynamic lastName;
|
||||
String? orgName;
|
||||
String? country;
|
||||
String? region;
|
||||
String? city;
|
||||
String? numSess;
|
||||
dynamic optInOutStatus;
|
||||
String? url1;
|
||||
dynamic sessionNote;
|
||||
String? cntNotes;
|
||||
String? eventAttendeesId;
|
||||
dynamic medicalInsightId;
|
||||
String? cntMedicalInsight;
|
||||
String? kId;
|
||||
String? id;
|
||||
int? projKolId;
|
||||
String? eventsSession;
|
||||
int? restEventsSessionCount;
|
||||
String? restEventsSession;
|
||||
String? eventsTopic;
|
||||
int? restEventsTopicCount;
|
||||
String? restEventsTopic;
|
||||
String? kolName;
|
||||
String? kolFullName;
|
||||
|
||||
EventSpeakersData({
|
||||
this.eid,
|
||||
this.eventTopics,
|
||||
this.npiNum,
|
||||
this.hcpPinAlias,
|
||||
this.sessionName,
|
||||
this.name,
|
||||
this.kolId,
|
||||
this.firstName,
|
||||
this.middleName,
|
||||
this.lastName,
|
||||
this.orgName,
|
||||
this.country,
|
||||
this.region,
|
||||
this.city,
|
||||
this.numSess,
|
||||
this.optInOutStatus,
|
||||
this.url1,
|
||||
this.sessionNote,
|
||||
this.cntNotes,
|
||||
this.eventAttendeesId,
|
||||
this.medicalInsightId,
|
||||
this.cntMedicalInsight,
|
||||
this.kId,
|
||||
this.id,
|
||||
this.projKolId,
|
||||
this.eventsSession,
|
||||
this.restEventsSessionCount,
|
||||
this.restEventsSession,
|
||||
this.eventsTopic,
|
||||
this.restEventsTopicCount,
|
||||
this.restEventsTopic,
|
||||
this.kolName,
|
||||
this.kolFullName,
|
||||
});
|
||||
|
||||
factory EventSpeakersData.fromJson(Map<String, dynamic> json) =>
|
||||
EventSpeakersData(
|
||||
eid: json["eid"],
|
||||
eventTopics: json["event_topics"],
|
||||
npiNum: json["npi_num"],
|
||||
hcpPinAlias: json["hcp_pin_alias"],
|
||||
sessionName: json["session_name"],
|
||||
name: json["name"],
|
||||
kolId: json["kol_id"],
|
||||
firstName: json["first_name"],
|
||||
middleName: json["middle_name"],
|
||||
lastName: json["last_name"],
|
||||
orgName: json["org_name"],
|
||||
country: json["Country"],
|
||||
region: json["Region"],
|
||||
city: json["City"],
|
||||
numSess: json["num_sess"],
|
||||
optInOutStatus: json["opt_in_out_status"],
|
||||
url1: json["url1"],
|
||||
sessionNote: json["session_note"],
|
||||
cntNotes: json["cnt_notes"],
|
||||
eventAttendeesId: json["event_attendees_id"],
|
||||
medicalInsightId: json["medical_insight_id"],
|
||||
cntMedicalInsight: json["cnt_medical_insight"],
|
||||
kId: json["k_id"],
|
||||
id: json["id"],
|
||||
projKolId: json["proj_kol_id"],
|
||||
eventsSession: json["events_session"],
|
||||
restEventsSessionCount: json["rest_events_session_count"],
|
||||
restEventsSession: json["rest_events_session"],
|
||||
eventsTopic: json["events_topic"],
|
||||
restEventsTopicCount: json["rest_events_topic_count"],
|
||||
restEventsTopic: json["rest_events_topic"],
|
||||
kolName: json["kol_name"],
|
||||
kolFullName: json["kol_full_name"],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"eid": eid,
|
||||
"event_topics": eventTopics,
|
||||
"npi_num": npiNum,
|
||||
"hcp_pin_alias": hcpPinAlias,
|
||||
"session_name": sessionName,
|
||||
"name": nameValues.reverse[name],
|
||||
"kol_id": kolId,
|
||||
"first_name": firstName,
|
||||
"middle_name": middleName,
|
||||
"last_name": lastName,
|
||||
"org_name": orgName,
|
||||
"Country": countryValues.reverse[country],
|
||||
"Region": region,
|
||||
"City": city,
|
||||
"num_sess": numSess,
|
||||
"opt_in_out_status": optInOutStatus,
|
||||
"url1": url1,
|
||||
"session_note": sessionNote,
|
||||
"cnt_notes": cntNotes,
|
||||
"event_attendees_id": eventAttendeesId,
|
||||
"medical_insight_id": medicalInsightId,
|
||||
"cnt_medical_insight": cntMedicalInsight,
|
||||
"k_id": kId,
|
||||
"id": id,
|
||||
"proj_kol_id": projKolId,
|
||||
"events_session": eventsSession,
|
||||
"rest_events_session_count": restEventsSessionCount,
|
||||
"rest_events_session": restEventsSession,
|
||||
"events_topic": eventsTopic,
|
||||
"rest_events_topic_count": restEventsTopicCount,
|
||||
"rest_events_topic": restEventsTopic,
|
||||
"kol_name": kolName,
|
||||
"kol_full_name": kolFullName,
|
||||
};
|
||||
}
|
||||
|
||||
enum Country { BELGIUM, GERMANY, UNITED_STATES }
|
||||
|
||||
final countryValues = EnumValues({
|
||||
"Belgium": Country.BELGIUM,
|
||||
"Germany": Country.GERMANY,
|
||||
"United States": Country.UNITED_STATES
|
||||
});
|
||||
|
||||
enum Name { THE_2036_AMERICAN_ACADEMY_OF_AAI }
|
||||
|
||||
final nameValues = EnumValues({
|
||||
"2036 American Academy of (AAI)": Name.THE_2036_AMERICAN_ACADEMY_OF_AAI
|
||||
});
|
||||
|
||||
enum RestEventsSession { BUSINESS_MEETING_AND_FORUM, EMPTY }
|
||||
|
||||
final restEventsSessionValues = EnumValues({
|
||||
" Business Meeting and Forum": RestEventsSession.BUSINESS_MEETING_AND_FORUM,
|
||||
"": RestEventsSession.EMPTY
|
||||
});
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -250,7 +250,7 @@ class EventsList {
|
|||
@HiveField(62)
|
||||
String? sponsors;
|
||||
@HiveField(63)
|
||||
bool? eventUserInterest = false;
|
||||
late bool? eventUserInterest;
|
||||
|
||||
EventsList({
|
||||
this.city,
|
||||
|
|
|
@ -80,13 +80,14 @@ class EventsListAdapter extends TypeAdapter<EventsList> {
|
|||
url1: fields[54] as String?,
|
||||
url2: fields[55] as String?,
|
||||
userCount: fields[56] as String?,
|
||||
eventUserInterest: fields[63] as bool?,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void write(BinaryWriter writer, EventsList obj) {
|
||||
writer
|
||||
..writeByte(63)
|
||||
..writeByte(64)
|
||||
..writeByte(0)
|
||||
..write(obj.city)
|
||||
..writeByte(1)
|
||||
|
@ -212,7 +213,9 @@ class EventsListAdapter extends TypeAdapter<EventsList> {
|
|||
..writeByte(61)
|
||||
..write(obj.topSpeakers)
|
||||
..writeByte(62)
|
||||
..write(obj.sponsors);
|
||||
..write(obj.sponsors)
|
||||
..writeByte(63)
|
||||
..write(obj.eventUserInterest);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -0,0 +1,102 @@
|
|||
// To parse this JSON data, do
|
||||
//
|
||||
// final sessionTopicsResponse = sessionTopicsResponseFromJson(jsonString);
|
||||
|
||||
import 'dart:convert';
|
||||
|
||||
SessionTopicsResponse sessionTopicsResponseFromJson(String str) =>
|
||||
SessionTopicsResponse.fromJson(json.decode(str));
|
||||
|
||||
String sessionTopicsResponseToJson(SessionTopicsResponse data) =>
|
||||
json.encode(data.toJson());
|
||||
|
||||
class SessionTopicsResponse {
|
||||
List<SessionsTopicsData>? data;
|
||||
|
||||
SessionTopicsResponse({
|
||||
this.data,
|
||||
});
|
||||
|
||||
factory SessionTopicsResponse.fromJson(Map<String, dynamic> json) =>
|
||||
SessionTopicsResponse(
|
||||
data: json["data"] == null
|
||||
? []
|
||||
: List<SessionsTopicsData>.from(
|
||||
json["data"]!.map((x) => SessionsTopicsData.fromJson(x))),
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"data": data == null
|
||||
? []
|
||||
: List<dynamic>.from(data!.map((x) => x.toJson())),
|
||||
};
|
||||
}
|
||||
|
||||
class SessionsTopicsData {
|
||||
String? sessionName;
|
||||
String? eventTopics;
|
||||
String? kolEventsId;
|
||||
String? eventAttendeesId;
|
||||
String? myEventId;
|
||||
String? note;
|
||||
String? kolId;
|
||||
String? id;
|
||||
bool? canEditNotes;
|
||||
bool? canAddNotes;
|
||||
String? noteCount;
|
||||
String? projKolId;
|
||||
bool? canAddInsights;
|
||||
bool? canEditInsights;
|
||||
|
||||
SessionsTopicsData({
|
||||
this.sessionName,
|
||||
this.eventTopics,
|
||||
this.kolEventsId,
|
||||
this.eventAttendeesId,
|
||||
this.myEventId,
|
||||
this.note,
|
||||
this.kolId,
|
||||
this.id,
|
||||
this.canEditNotes,
|
||||
this.canAddNotes,
|
||||
this.noteCount,
|
||||
this.projKolId,
|
||||
this.canAddInsights,
|
||||
this.canEditInsights,
|
||||
});
|
||||
|
||||
factory SessionsTopicsData.fromJson(Map<String, dynamic> json) =>
|
||||
SessionsTopicsData(
|
||||
sessionName: json["session_name"],
|
||||
eventTopics: json["event_topics"],
|
||||
kolEventsId: json["kol_events_id"],
|
||||
eventAttendeesId: json["event_attendees_id"],
|
||||
myEventId: json["my_event_id"],
|
||||
note: json["note"],
|
||||
kolId: json["kol_id"],
|
||||
id: json["id"],
|
||||
canEditNotes: json["can_edit_notes"],
|
||||
canAddNotes: json["can_add_notes"],
|
||||
noteCount: json["note_count"],
|
||||
projKolId: json["proj_kol_id"],
|
||||
canAddInsights: json["can_add_insights"],
|
||||
canEditInsights: json["can_edit_insights"],
|
||||
);
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
"session_name": sessionName,
|
||||
"event_topics": eventTopics,
|
||||
"kol_events_id": kolEventsId,
|
||||
"event_attendees_id": eventAttendeesId,
|
||||
"my_event_id": myEventId,
|
||||
"note": note,
|
||||
"kol_id": kolId,
|
||||
"id": id,
|
||||
"can_edit_notes": canEditNotes,
|
||||
"can_add_notes": canAddNotes,
|
||||
"note_count": noteCount,
|
||||
"proj_kol_id": projKolId,
|
||||
"can_add_insights": canAddInsights,
|
||||
"can_edit_insights": canEditInsights,
|
||||
};
|
||||
}
|
|
@ -5,7 +5,9 @@ import 'package:dio/dio.dart';
|
|||
import 'package:dio/io.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:konectar_events/model/affiliationsmodel.dart';
|
||||
import 'package:konectar_events/model/events_details.dart';
|
||||
import 'package:konectar_events/model/events_list_resp_2.dart';
|
||||
import 'package:konectar_events/model/events_speakers_k1.dart';
|
||||
import 'package:konectar_events/model/eventsdetailmodel.dart';
|
||||
import 'package:konectar_events/model/eventsmodel.dart';
|
||||
import 'package:konectar_events/model/eventsoverview.dart';
|
||||
|
@ -14,6 +16,7 @@ import 'package:konectar_events/model/keywords_model.dart';
|
|||
import 'package:konectar_events/model/neweventsmodel.dart';
|
||||
import 'package:konectar_events/model/scope_model.dart';
|
||||
import 'package:konectar_events/model/sessionnotesmodel.dart';
|
||||
import 'package:konectar_events/model/sessionstopics_model.dart';
|
||||
import 'package:konectar_events/model/specialtymodel.dart';
|
||||
import 'package:konectar_events/model/topics_cloud_model.dart';
|
||||
import 'package:konectar_events/utils/constants.dart';
|
||||
|
@ -113,22 +116,22 @@ class ApiCall {
|
|||
var formData = FormData.fromMap({
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"project_id": "",
|
||||
"start": DateTime.now().toString,
|
||||
"end": "",
|
||||
"order_by": "7",
|
||||
"type": type ?? "1"
|
||||
"start": DateTime(2024, 10, 14).toIso8601String(),
|
||||
"end": DateTime(2024, 12, 14).toIso8601String(),
|
||||
"order_by": 7,
|
||||
"type": type ?? 1
|
||||
});
|
||||
response = await dio.post(
|
||||
'${EventsConstants.devUrl}${EventsConstants.eventslistapi}',
|
||||
options: Options(),
|
||||
queryParameters: {
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"project_id": "",
|
||||
"start": DateTime.now().toString,
|
||||
"end": "",
|
||||
"order_by": "7",
|
||||
"type": type ?? "1"
|
||||
},
|
||||
// queryParameters: {
|
||||
// "user_email": "vinodh@aissel.com",
|
||||
// "project_id": "",
|
||||
// "start": 2024 - 11 - 22,
|
||||
// "end": "",
|
||||
// "order_by": 7,
|
||||
// "type": 1,
|
||||
// },
|
||||
data: formData);
|
||||
print("response user eventssssss here!!!!!!!!!!!!!!!!!!!!! ");
|
||||
print(response.data.toString());
|
||||
|
@ -196,6 +199,7 @@ class ApiCall {
|
|||
required String startDate,
|
||||
required String endDate,
|
||||
}) async {
|
||||
print("CHECK_DATE $startDate $endDate $eventid");
|
||||
Dio dio = Dio();
|
||||
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
||||
(HttpClient client) {
|
||||
|
@ -204,12 +208,13 @@ class ApiCall {
|
|||
return client;
|
||||
};
|
||||
Response response;
|
||||
//ventId=4937&type='1'&sd=2024-07-30&ed=2024-08-03&user_email=vinodh@aissel.com
|
||||
var formData = FormData.fromMap({
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"eventId": eventid,
|
||||
"sd": "\"$startDate\"",
|
||||
"ed": "\"$endDate\"",
|
||||
"type": "\"1\"",
|
||||
"sd": startDate,
|
||||
"ed": endDate,
|
||||
"type": 1,
|
||||
});
|
||||
print("FORMDATA:${formData.toString()},$startDate,$endDate");
|
||||
response = await dio.post(
|
||||
|
@ -314,7 +319,7 @@ class ApiCall {
|
|||
return data;
|
||||
}
|
||||
|
||||
Future<OverviewData> getEventsOverview(
|
||||
Future<EventsOverviewData> getEventsOverview(
|
||||
String eventid, String startDate, String endDate) async {
|
||||
Dio dio = Dio();
|
||||
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
||||
|
@ -326,26 +331,125 @@ class ApiCall {
|
|||
Response response;
|
||||
var formData = FormData.fromMap({
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"start": startDate,
|
||||
"end": endDate,
|
||||
"event_id": eventid,
|
||||
});
|
||||
response = await dio.post(
|
||||
'${EventsConstants.stagingUrl}${EventsConstants.eventslistapi}',
|
||||
'${EventsConstants.devUrl}${EventsConstants.eventdetailsapi}',
|
||||
options: Options(),
|
||||
queryParameters: {
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"event_id": eventid,
|
||||
},
|
||||
data: formData);
|
||||
print("response user eventssssss here!!!!!!!!!!!!!!!!!!!!! ");
|
||||
print(response.data.toString());
|
||||
Map<String, dynamic> jsondata = json.decode(response.data);
|
||||
EventsDetailsResp? eventdata = EventsDetailsResp.fromJson(jsondata);
|
||||
OverviewData overviewData = eventdata.data;
|
||||
EventsOverviewDetails? eventdata = EventsOverviewDetails.fromJson(jsondata);
|
||||
EventsOverviewData overviewData = eventdata.data!;
|
||||
|
||||
return overviewData;
|
||||
}
|
||||
|
||||
Future<List<EventSpeakersData>> getEventsSpeakersFromK1(
|
||||
String eventid) async {
|
||||
Dio dio = Dio();
|
||||
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
||||
(HttpClient client) {
|
||||
client.badCertificateCallback =
|
||||
(X509Certificate cert, String host, int port) => true;
|
||||
return client;
|
||||
};
|
||||
Response response;
|
||||
var formData = FormData.fromMap({
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"event_id": eventid,
|
||||
"sd": "2024-07-30",
|
||||
"ed": "2024-08-03",
|
||||
});
|
||||
response = await dio.post(
|
||||
'${EventsConstants.devUrl}${EventsConstants.speakerslistapi}',
|
||||
options: Options(),
|
||||
queryParameters: {
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"event_id": eventid,
|
||||
},
|
||||
data: formData);
|
||||
print("response user eventssssss here!!!!!!!!!!!!!!!!!!!!! ");
|
||||
print(response.data.toString());
|
||||
Map<String, dynamic> jsondata = json.decode(response.data);
|
||||
EventSpeakersResponse? eventdata = EventSpeakersResponse.fromJson(jsondata);
|
||||
List<EventSpeakersData> data = eventdata.data!;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
Future<List<SessionsTopicsData>> getSessionsTopics(
|
||||
String eventid, String kolid, String kid) async {
|
||||
Dio dio = Dio();
|
||||
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
||||
(HttpClient client) {
|
||||
client.badCertificateCallback =
|
||||
(X509Certificate cert, String host, int port) => true;
|
||||
return client;
|
||||
};
|
||||
Response response;
|
||||
print("formdata : eventid:$eventid kolid:$kolid kid:$kid");
|
||||
var formData = FormData.fromMap({
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"event_id": "eventid",
|
||||
"kol_id": kolid,
|
||||
"k_id": kid,
|
||||
"proj_kol_id": 0,
|
||||
});
|
||||
response = await dio.post(
|
||||
'${EventsConstants.devUrl}${EventsConstants.showEventsTopicsAndSession}',
|
||||
options: Options(),
|
||||
queryParameters: {
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"event_id": eventid,
|
||||
},
|
||||
data: formData);
|
||||
print("response user SESSIONTOPICS here!!!!!!!!!!!!!!!!!!!!! ");
|
||||
print(response.data.toString());
|
||||
Map<String, dynamic> jsondata = json.decode(response.data);
|
||||
SessionTopicsResponse sessionTopicsResponse =
|
||||
SessionTopicsResponse.fromJson(jsondata);
|
||||
List<SessionsTopicsData> data = sessionTopicsResponse.data!;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
Future<dynamic> addSessionNotes(String eventid, String kolid,
|
||||
String event_attendees_id, String kid, String notes) async {
|
||||
Dio dio = Dio();
|
||||
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
||||
(HttpClient client) {
|
||||
client.badCertificateCallback =
|
||||
(X509Certificate cert, String host, int port) => true;
|
||||
return client;
|
||||
};
|
||||
Response response;
|
||||
var formData = FormData.fromMap({
|
||||
"user_email": "vinodh@aissel.com",
|
||||
"kol_events_id": eventid,
|
||||
"kol_id": kolid,
|
||||
"event_attendees_id": event_attendees_id,
|
||||
"notes": notes,
|
||||
});
|
||||
response = await dio.post(
|
||||
'${EventsConstants.devUrl}${EventsConstants.showEventsTopicsAndSession}',
|
||||
options: Options(),
|
||||
data: formData);
|
||||
print("response user ADDSESSION here!!!!!!!!!!!!!!!!!!!!! ");
|
||||
print(response.data.toString());
|
||||
Map<String, dynamic> jsondata = json.decode(response.data);
|
||||
// SessionTopicsResponse sessionTopicsResponse =
|
||||
// SessionTopicsResponse.fromJson(jsondata);
|
||||
// List<SessionsTopicsData> data = sessionTopicsResponse.data!;
|
||||
|
||||
return jsondata;
|
||||
}
|
||||
|
||||
//************ K2 API CALLS ***********************************************************************************************************************************
|
||||
|
||||
Future<List<EventsList>> getEventsFromK2(int page, String search,
|
||||
|
@ -646,8 +750,8 @@ class ApiCall {
|
|||
var formData = {
|
||||
"page": page,
|
||||
"limit": 40,
|
||||
"id": eventid,
|
||||
"event_id": event_unique_id,
|
||||
"id": "da8cb02cdeddd174bf0fd0ae08247ca1",
|
||||
"event_id": "1a0029ea72bf4adc5e6bbfd91ace364a",
|
||||
"hcp_full_name": searchkey
|
||||
// "conditions": [
|
||||
// {"field": eventfield, "type": "like", "value": searchkey}
|
||||
|
|
|
@ -22,6 +22,8 @@ class AppColors {
|
|||
static const Color contentColorPink = Color(0xFFFF3AF2);
|
||||
static const Color contentColorRed = Color(0xFFE80054);
|
||||
static const Color contentColorCyan = Color(0xFF50E4FF);
|
||||
//background: #F3F3F3;
|
||||
|
||||
List<Color> appcolors = [
|
||||
contentColorYellow,
|
||||
contentColorBlue,
|
||||
|
|
|
@ -12,23 +12,33 @@ class EventsConstants {
|
|||
static const Color fonttopic = Color.fromARGB(255, 68, 68, 68);
|
||||
static const Color btnGreenColor = Color.fromARGB(255, 46, 166, 100);
|
||||
static const Color btnBlueColor = Color.fromARGB(255, 0, 102, 204);
|
||||
static const Color homeCardBackgound =
|
||||
Color.fromRGBO(229, 229, 229, 1); //rgba(243, 243, 243, 1)
|
||||
static const Color onboardButtonColor = Color.fromRGBO(3, 126, 238, 1);
|
||||
// static const String domainUrl = "http://192.0.0.2:8007/api/method/";
|
||||
static const String domainUrl = "http://192.168.2.109:8007/api/method/";
|
||||
|
||||
//192.0.0.2:8007 - iphone
|
||||
// 192.168.2.109:8007 - office
|
||||
|
||||
//K1 API~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
static const String stagingUrl =
|
||||
"https://cardio-staging.konectar.io/reports/";
|
||||
static const String devUrl = "http://192.168.2.130/konectar-sandbox/reports/";
|
||||
static const String eventslistapi = "load_future_events";
|
||||
static const String followUnfollowEvent = "save_user_interested_event/";
|
||||
static const String attendNotAttendEvent = "save_user_attending_event/";
|
||||
static const String specialtyOfSpeakers = "get_top_specialities_donut_chart";
|
||||
static const String insightsTopicsCloud = "get_topic_clouds_chart/";
|
||||
static const String insightsBarChart = "get_top_affiliation_bar_chart/";
|
||||
static const String speakerslistapi = "view_micro_event_data";
|
||||
static const String eventdetailsapi = "view_micro_event";
|
||||
static const String devUrl =
|
||||
"http://192.168.2.130/konectar-sandbox/eventapis/";
|
||||
static const String eventslistapi = "loadFutureEvents/";
|
||||
static const String followUnfollowEvent = "saveUserInterestedEvent/";
|
||||
static const String attendNotAttendEvent = "saveUserAttendingEvent/";
|
||||
static const String specialtyOfSpeakers = "getSpecialitiesDonutChart";
|
||||
static const String insightsTopicsCloud = "getTopicCloudChart/";
|
||||
static const String insightsBarChart = "getTopAffiliationBarChart/";
|
||||
static const String speakerslistapi = "eventSpeakers";
|
||||
static const String eventdetailsapi = "eventOverview";
|
||||
static const String showEventsTopicsAndSession = "showEventsTopicsAndSession";
|
||||
static const String getTopicNotes = "getTopicNotes";
|
||||
static const String saveEventsTopicNote = "saveEventsTopicNote";
|
||||
static const String eventUserAnalytics = "eventUserAnalytics";
|
||||
|
||||
//K1 API END~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
static const String eventslistapifromk2 =
|
||||
"http://192.168.2.130:8888/api/kolevents/v1/en/fetch";
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class HiveTypeIdConstants {
|
||||
static const int topspeakersHiveId = 103;
|
||||
static const int topSponsorsHiveId = 104;
|
||||
static const int topTopicsHiveId = 105;
|
||||
}
|
|
@ -3,6 +3,14 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/configprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/new_dynamicform.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/viewinteractionprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/medical_insight.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_editinteraction.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_viewinteraction.dart';
|
||||
import 'package:konectar_events/model/events_speakers_k1.dart';
|
||||
import 'package:konectar_events/model/eventsdetailmodel.dart';
|
||||
import 'package:konectar_events/model/eventspeakers.dart';
|
||||
import 'package:konectar_events/model/neweventsmodel.dart';
|
||||
|
@ -36,22 +44,30 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
bool isExtended = false;
|
||||
bool isExtendedInterested = false;
|
||||
final ScrollController _scrollController = ScrollController();
|
||||
final PagingController<int, SpeakersList> pagingController =
|
||||
PagingController(firstPageKey: 1);
|
||||
final PagingController<int, EventSpeakersData> pagingController =
|
||||
PagingController(firstPageKey: 0);
|
||||
static const _pageSize = 20;
|
||||
int lastIndex = 0;
|
||||
String searchSpeaker = "";
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_tabController = TabController(length: 2, vsync: this);
|
||||
final provider = Provider.of<EventsProvider>(context, listen: false);
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
||||
init();
|
||||
});
|
||||
pagingController.addPageRequestListener((pageKey) {
|
||||
_fetchPage(pageKey);
|
||||
_fetchPages(pageKey, provider);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
}
|
||||
|
||||
Future<void> _fetchPage(int pageKey) async {
|
||||
//await initConnectivity();
|
||||
// if (connectionStatus.toString().contains("ConnectivityResult.none")) {
|
||||
|
@ -70,10 +86,12 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
// _pagingController.error = error;
|
||||
// }
|
||||
// } else {
|
||||
print("FIRST PAGINATION");
|
||||
try {
|
||||
final newItems = await Provider.of<EventsProvider>(context, listen: false)
|
||||
.getSpeakersDetails(pageKey, widget.event.eventId!,
|
||||
widget.event.eventUniqueId!, searchSpeaker);
|
||||
.getSpeakersDetails(pageKey, widget.event.id!,
|
||||
widget.event.eventUniqueId!, searchSpeaker, lastIndex);
|
||||
lastIndex = newItems.length - 1;
|
||||
final isLastPage = newItems.isEmpty;
|
||||
if (isLastPage) {
|
||||
pagingController.appendLastPage(newItems);
|
||||
|
@ -88,14 +106,27 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
// }
|
||||
}
|
||||
|
||||
Future<void> _fetchPages(int pageKey, EventsProvider provider) async {
|
||||
List<EventSpeakersData> list = await provider
|
||||
.getInitialSpeakersDetails("47336", searchkey: searchSpeaker);
|
||||
print("CHECK LENGTH ${list.length}");
|
||||
final isLastPage = pageKey + _pageSize >= list.length;
|
||||
final nextItems =
|
||||
list.skip(pageKey).take(_pageSize).toList(); // Get next batch of items
|
||||
|
||||
if (isLastPage) {
|
||||
pagingController.appendLastPage(nextItems);
|
||||
} else {
|
||||
final nextPageKey = pageKey + nextItems.length;
|
||||
pagingController.appendPage(nextItems, nextPageKey);
|
||||
}
|
||||
}
|
||||
|
||||
init() async {
|
||||
String start = CustomDateFormatter().formatYearDate(
|
||||
CustomDateFormatter().convertStringToDate(widget.event.start!));
|
||||
String end = CustomDateFormatter().formatYearDate(
|
||||
CustomDateFormatter().convertStringToDate(widget.event.end!));
|
||||
// await Provider.of<EventsProvider>(context, listen: false)
|
||||
// .getSessionCount(widget.event.eventId!, widget.event.eventUniqueId!);
|
||||
final provider = Provider.of<EventsProvider>(context, listen: false);
|
||||
|
||||
// pagingController.addPageRequestListener((pageKey) {
|
||||
// _fetchPage(pageKey);
|
||||
|
@ -103,14 +134,20 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
// await Provider.of<EventsProvider>(context, listen: false)
|
||||
// .getEventsDetails(widget.event.eventId!);
|
||||
// await Provider.of<EventsProvider>(context, listen: false).getSessionCount();
|
||||
// await Provider.of<EventsProvider>(context, listen: false)
|
||||
// .getTopicsCloud(widget.event);
|
||||
print("FIRST INITIAL");
|
||||
await Provider.of<EventsProvider>(context, listen: false)
|
||||
.getTopicsCloud(widget.event);
|
||||
.getInitialSpeakersDetails(widget.event.id!, searchkey: searchSpeaker);
|
||||
Provider.of<EventsProvider>(context, listen: false).getSessionCount();
|
||||
|
||||
await Provider.of<EventsProvider>(context, listen: false)
|
||||
.getOverviewData(widget.event.id!, start, end);
|
||||
await Provider.of<EventsProvider>(context, listen: false)
|
||||
.getSpecialtyData(widget.event);
|
||||
await Provider.of<EventsProvider>(context, listen: false)
|
||||
.getAffiliations(widget.event);
|
||||
// await Provider.of<EventsProvider>(context, listen: false)
|
||||
// .getOverviewData(widget.event.eventId!, start, end);
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
|
@ -206,6 +243,159 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
);
|
||||
}
|
||||
|
||||
Widget medicalInsights() {
|
||||
return Consumer<ViewInteractionProvider>(
|
||||
builder: (BuildContext context, provider, Widget? child) {
|
||||
return Container(
|
||||
color: EventsConstants.bgcolor,
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Center(
|
||||
child: FloatingActionButton.extended(
|
||||
backgroundColor: Colors.green,
|
||||
onPressed: () async {
|
||||
final ConfigDataProvider configDataProvider =
|
||||
ConfigDataProvider();
|
||||
|
||||
await configDataProvider.initConfigUIDataMediccalInsight();
|
||||
await Provider.of<InteractionProvider>(context, listen: false)
|
||||
.initConfigData();
|
||||
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) => InteractionScreen1(
|
||||
index: 0,
|
||||
form: Provider.of<InteractionProvider>(context,
|
||||
listen: false)
|
||||
.intConfigDataList[0]
|
||||
.name,
|
||||
title: "Hope Nueman",
|
||||
)));
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => const InteractionListScreen()));
|
||||
},
|
||||
heroTag: 'medicalinsights',
|
||||
elevation: 0,
|
||||
label: const Text("Add Medical Insights",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
)),
|
||||
icon: const Icon(
|
||||
Icons.add,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
provider.savedList.isEmpty
|
||||
? SizedBox.shrink()
|
||||
: ListView.builder(
|
||||
itemCount: provider.savedList.length,
|
||||
shrinkWrap: true,
|
||||
cacheExtent:
|
||||
double.parse(provider.savedList.length.toString()),
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
ListTile(
|
||||
subtitle: Text(
|
||||
'Updated on ${CustomDateFormatter().convertDateTimeToDate(provider.savedList[index].updatedTime!)}',
|
||||
//style: TextStyle(fontStyle: FontStyle.italic),
|
||||
),
|
||||
title: Text(
|
||||
provider.savedList[index].id,
|
||||
),
|
||||
trailing: SizedBox(
|
||||
width: 100,
|
||||
child: Row(children: [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
ViewInteractionScreen1(
|
||||
saveInteraction:
|
||||
provider.savedList[index],
|
||||
)));
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.info_outline,
|
||||
size: 24,
|
||||
color: Color.fromARGB(255, 8, 39, 92),
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () async {
|
||||
await provider.initConfigData().then({
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(
|
||||
// builder: (BuildContext context) =>
|
||||
// EditInteractionScreen(
|
||||
// saveInteraction: provider
|
||||
// .savedList[index],
|
||||
// )))
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
EditInteractionScreen1(
|
||||
saveInteraction: provider
|
||||
.savedList[index],
|
||||
)))
|
||||
});
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.edit,
|
||||
size: 24,
|
||||
color: Color.fromARGB(255, 8, 39, 92),
|
||||
),
|
||||
),
|
||||
// IconButton(
|
||||
// onPressed: () {
|
||||
// showDeleteRecordAlertDialog(
|
||||
// context,
|
||||
// provider.savedList[index].id,
|
||||
// provider.savedList[index]);
|
||||
// },
|
||||
// icon: const Icon(
|
||||
// Icons.delete,
|
||||
// size: 24,
|
||||
// color: Color.fromARGB(255, 8, 39, 92),
|
||||
// ),
|
||||
// ),
|
||||
]),
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
ViewInteractionScreen1(
|
||||
saveInteraction:
|
||||
provider.savedList[index],
|
||||
)));
|
||||
},
|
||||
),
|
||||
const Divider(),
|
||||
],
|
||||
);
|
||||
}),
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Widget headerview(BuildContext context, EventsProvider provider) {
|
||||
//return SafeArea(
|
||||
return Container(
|
||||
|
@ -535,7 +725,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
ProfileInfoItem(
|
||||
"Session(s)", provider.eventSessionCount),
|
||||
ProfileInfoItem(
|
||||
"Speaker(s)", provider.speakercount),
|
||||
"Speaker(s)", provider.speakersList.length),
|
||||
//ProfileInfoItem("Note(s)", 1),
|
||||
], widget.event, provider),
|
||||
SizedBox(
|
||||
|
@ -549,7 +739,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
pinned: true,
|
||||
floating: true,
|
||||
delegate: ContestTabHeader(
|
||||
const TabBar(
|
||||
TabBar(
|
||||
indicatorSize: TabBarIndicatorSize.tab,
|
||||
labelColor: Colors.black,
|
||||
tabAlignment: TabAlignment.fill,
|
||||
|
@ -559,6 +749,17 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
labelPadding: EdgeInsets.all(2),
|
||||
onTap: (index) {
|
||||
// print(controller.index);
|
||||
// print(index);
|
||||
if (index == 1) {
|
||||
print('Same Tab Clicked');
|
||||
// await provider
|
||||
// .getInitialSpeakersDetails(widget.event.id!);
|
||||
|
||||
pagingController.refresh();
|
||||
}
|
||||
},
|
||||
tabs: _tabs,
|
||||
),
|
||||
),
|
||||
|
@ -568,7 +769,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
body: TabBarView(
|
||||
//controller: _tabController,
|
||||
children: [
|
||||
expandableDetails(),
|
||||
expandableDetails(provider),
|
||||
speakersList(context, provider),
|
||||
EventsInsights(
|
||||
eventid: widget.event.eventId!,
|
||||
|
@ -576,6 +777,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
specialtyList: provider.specialtyList,
|
||||
affiliations: provider.affiliations,
|
||||
),
|
||||
// medicalInsights(),
|
||||
//SocialMedia(),
|
||||
],
|
||||
),
|
||||
|
@ -1305,7 +1507,22 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
);
|
||||
}
|
||||
|
||||
Widget expandableDetails() {
|
||||
Widget expandableDetails(EventsProvider provider) {
|
||||
List<String> topSpeakers = [];
|
||||
List<String> topSponsors = [];
|
||||
List<String> topTopics = [];
|
||||
|
||||
if (provider.overviewData!.topSpeakers!.length != 0) {
|
||||
for (var obj in provider.overviewData!.topSpeakers!) {
|
||||
topSpeakers.add(obj.firstName!);
|
||||
}
|
||||
}
|
||||
if (provider.overviewData!.eventSponsers!.length != 0) {
|
||||
for (var obj in provider.overviewData!.eventSponsers!) {
|
||||
topSponsors.add(obj.sessionSponsor!);
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
// isTablet
|
||||
// ? Container(
|
||||
|
@ -1328,21 +1545,22 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
color: EventsConstants.bgcolor,
|
||||
padding: EdgeInsets.only(left: 8, right: 8),
|
||||
child: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
listViewTopicCard("Top 3 topics", widget.event.topTopics ?? "", true),
|
||||
SizedBox(
|
||||
height: 3,
|
||||
),
|
||||
listViewTopicCard("Speakers with most sessions",
|
||||
widget.event.topSpeakers ?? "", true),
|
||||
SizedBox(
|
||||
height: 3,
|
||||
),
|
||||
listViewTopicCard("Sponsors", widget.event.sponsors ?? "", true)
|
||||
]),
|
||||
child: Expanded(
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
listViewTopicCard("Top 3 topics", topTopics, true),
|
||||
SizedBox(
|
||||
height: 3,
|
||||
),
|
||||
listViewTopicCard("Speakers with most sessions", topSpeakers, true),
|
||||
SizedBox(
|
||||
height: 3,
|
||||
),
|
||||
listViewTopicCard("Sponsors", topSponsors, true)
|
||||
]),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -1378,7 +1596,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
);
|
||||
}
|
||||
|
||||
Widget listViewTopicCard(String title, String content, bool visible) {
|
||||
Widget listViewTopicCard(String title, List<String> content, bool visible) {
|
||||
return Visibility(
|
||||
visible: visible,
|
||||
child: Card(
|
||||
|
@ -1407,13 +1625,24 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
Text(
|
||||
content,
|
||||
style: TextStyle(
|
||||
fontSize: isTablet ? 22 : 14,
|
||||
color: Colors.grey[900],
|
||||
),
|
||||
),
|
||||
content.isNotEmpty
|
||||
? SizedBox(
|
||||
height: 70,
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: content.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Text(
|
||||
"${index + 1}. ${content[index]}",
|
||||
style: TextStyle(
|
||||
fontSize: isTablet ? 22 : 14,
|
||||
color: Colors.grey[900],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
: SizedBox.shrink(),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -1488,9 +1717,9 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
),
|
||||
),
|
||||
Expanded(
|
||||
child: PagedListView<int, SpeakersList>.separated(
|
||||
child: PagedListView<int, EventSpeakersData>.separated(
|
||||
pagingController: pagingController,
|
||||
builderDelegate: PagedChildBuilderDelegate<SpeakersList>(
|
||||
builderDelegate: PagedChildBuilderDelegate<EventSpeakersData>(
|
||||
//padding: const EdgeInsets.all(8),
|
||||
// itemCount: provider.isSearchSpeakers
|
||||
// ? provider.srcheventdetailList.length
|
||||
|
@ -1502,15 +1731,24 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => HCPProfileScreen(
|
||||
eventsdetail: detail,
|
||||
eventid: widget.event.eventId!,
|
||||
title: widget.event.name1!,
|
||||
if (widget.event.eventUserInterest!) {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => HCPProfileScreen(
|
||||
eventsdetail: detail,
|
||||
eventid: "47336",
|
||||
title: widget.event.name1!,
|
||||
sessionNames: detail.sessionName != ""
|
||||
? detail.sessionName!.split(",")
|
||||
: [],
|
||||
topics: detail.eventTopics != ""
|
||||
? detail.eventTopics!.split("|")
|
||||
: [],
|
||||
kolFullName: detail.kolFullName!,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
);
|
||||
}
|
||||
},
|
||||
child: Container(
|
||||
// height: double.infinity,
|
||||
|
@ -1528,7 +1766,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
// color: Colors.white,
|
||||
// ),
|
||||
child: Text(
|
||||
detail.hcpFullName![0],
|
||||
detail.kolFullName![0],
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white),
|
||||
|
@ -1557,7 +1795,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
"$index : ${detail.hcpFullName!}",
|
||||
"$index : ${detail.kolFullName!}",
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 14,
|
||||
|
@ -1573,7 +1811,7 @@ class _EventsListingScreenState extends State<EventsListingScreen>
|
|||
: MediaQuery.of(context).size.width *
|
||||
0.5,
|
||||
child: Text(
|
||||
detail.topics!.join(" | "),
|
||||
detail.eventTopics ?? "",
|
||||
maxLines: 3,
|
||||
style: TextStyle(
|
||||
// decoration: TextDecoration.underline,
|
||||
|
@ -1767,7 +2005,7 @@ const _tabs = [
|
|||
Tab(text: "Details"),
|
||||
Tab(text: "Speakers"),
|
||||
Tab(text: "Insights"),
|
||||
//Tab(text: "Social Media"),
|
||||
// Tab(text: "Medical Insights"),
|
||||
];
|
||||
|
||||
class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate {
|
||||
|
|
|
@ -155,6 +155,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
// final newItems =
|
||||
// await Provider.of<EventsProvider>(context, listen: false)
|
||||
// .getOfflineMyEvents();
|
||||
//OLD
|
||||
final isLastPage = newItems.length < _pageSize;
|
||||
if (isLastPage) {
|
||||
pagingController.appendLastPage(newItems);
|
||||
|
@ -162,6 +163,19 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
final nextPageKey = pageKey + newItems.length;
|
||||
pagingController.appendPage(newItems, nextPageKey);
|
||||
}
|
||||
//NEW
|
||||
// final isLastPage = pageKey + _pageSize >= newItems.length;
|
||||
// final nextItems = newItems
|
||||
// .skip(pageKey)
|
||||
// .take(_pageSize)
|
||||
// .toList(); // Get next batch of items
|
||||
|
||||
// if (isLastPage) {
|
||||
// pagingController.appendLastPage(nextItems);
|
||||
// } else {
|
||||
// final nextPageKey = pageKey + nextItems.length;
|
||||
// pagingController.appendPage(nextItems, nextPageKey);
|
||||
// }
|
||||
} catch (error) {
|
||||
pagingController.error = error;
|
||||
}
|
||||
|
@ -441,7 +455,8 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
];
|
||||
},
|
||||
body: Container(
|
||||
color: EventsConstants.bgcolor,
|
||||
//color: EventsConstants.bgcolor,
|
||||
color: Colors.white,
|
||||
child: buildPaginationListView(context, provider)),
|
||||
),
|
||||
),
|
||||
|
@ -474,7 +489,8 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
),
|
||||
),
|
||||
Container(
|
||||
color: EventsConstants.bgcolor,
|
||||
//color: EventsConstants.bgcolor,
|
||||
color: Colors.white,
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.only(left: 16, right: 16, top: 8, bottom: 4),
|
||||
|
@ -1449,8 +1465,11 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
onRefresh: () async => pagingController.refresh(),
|
||||
child: PagedListView<int, EventsList>(
|
||||
pagingController: pagingController,
|
||||
padding: EdgeInsets.zero,
|
||||
builderDelegate: PagedChildBuilderDelegate<EventsList>(
|
||||
itemBuilder: (BuildContext context, item, int index) {
|
||||
print(
|
||||
"VALUE RENDER ${item.eventId} - ${item.name1}- ${item.eventUserInterest}");
|
||||
final int count = provider.eventList.length > 10
|
||||
? 10
|
||||
: provider.eventList.length;
|
||||
|
@ -1499,7 +1518,9 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
},
|
||||
child: Card(
|
||||
elevation: 4,
|
||||
//color: EventsConstants.homeCardBackgound,
|
||||
surfaceTintColor: Colors.white,
|
||||
//surfaceTintColor: EventsConstants.homeCardBackgound,
|
||||
// shadowColor: Constants.bgcolor,
|
||||
child: buildCardView(context, eventsList, provider),
|
||||
),
|
||||
|
@ -1563,7 +1584,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
// fullscreenDialog: true));
|
||||
},
|
||||
child: Card(
|
||||
elevation: 2,
|
||||
elevation: 1,
|
||||
shadowColor: EventsConstants.bgcolor,
|
||||
child: buildCardView(
|
||||
context, provider.eventList[index], provider)));
|
||||
|
@ -1576,7 +1597,10 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
);
|
||||
}
|
||||
|
||||
buildCardView(BuildContext context, dynamic event, EventsProvider provider) {
|
||||
buildCardView(
|
||||
BuildContext context, EventsList event, EventsProvider provider) {
|
||||
print(
|
||||
"CHECK EVENT INTERESTED : ${provider.checkIfUserInterested(event.eventId!)}}");
|
||||
double height = isTablet
|
||||
? MediaQuery.of(context).size.height * 0.35
|
||||
: MediaQuery.of(context).size.height * 0.65;
|
||||
|
@ -1587,8 +1611,10 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
// color: Color.fromARGB(179, 248, 238, 238),
|
||||
|
||||
color: Colors.white,
|
||||
// color: EventsConstants.homeCardBackgound,
|
||||
borderRadius: BorderRadius.all(Radius.circular(20))),
|
||||
// height: MediaQuery.of(context).size.height * 0.2,
|
||||
// height: 136,
|
||||
// height: double.minPositive,
|
||||
padding: isTablet
|
||||
? EdgeInsets.symmetric(horizontal: 8.0, vertical: 2.0)
|
||||
|
@ -1641,7 +1667,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
),
|
||||
])),
|
||||
),
|
||||
|
||||
//const Spacer(),
|
||||
SizedBox(
|
||||
height: 14,
|
||||
),
|
||||
|
@ -1650,7 +1676,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
Align(
|
||||
alignment: FractionalOffset.bottomLeft,
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
|
@ -1665,7 +1691,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
),
|
||||
TextSpan(
|
||||
text:
|
||||
' ${CustomDateFormatter().formatYearDate(CustomDateFormatter().convertStringToDate(event.start))} to ${CustomDateFormatter().formatYearDate(CustomDateFormatter().convertStringToDate(event.end))}',
|
||||
' ${CustomDateFormatter().formatYearDate(CustomDateFormatter().convertStringToDate(event.start!))} to ${CustomDateFormatter().formatYearDate(CustomDateFormatter().convertStringToDate(event.end!))}',
|
||||
style: TextStyle(
|
||||
color: Colors.black,
|
||||
//fontStyle: FontStyle.italic,
|
||||
|
@ -1722,10 +1748,11 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
elevation: 1,
|
||||
shape: CircleBorder(),
|
||||
backgroundColor: EventsConstants.bgcolor,
|
||||
//backgroundColor: EventsConstants.homeCardBackgound,
|
||||
onPressed: () async {
|
||||
// event.isfav = !event.isfav;
|
||||
|
||||
if (event.isfav) {
|
||||
if (event.eventUserInterest!) {
|
||||
//If event is added to fav then unfollow
|
||||
String msg = await provider
|
||||
.removeEventsToFavs(event.eventId!);
|
||||
|
@ -1776,7 +1803,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
|
|||
SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
event.eventUserInterest
|
||||
event.eventUserInterest!
|
||||
? RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:io';
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:konectar_events/firebaseexample.dart';
|
||||
import 'package:konectar_events/model/userdata_model.dart';
|
||||
import 'package:konectar_events/utils/apicall.dart';
|
||||
|
@ -87,26 +88,35 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||
return OrientationBuilder(
|
||||
builder: (BuildContext context, Orientation orientation) {
|
||||
return Scaffold(
|
||||
appBar: CustomAppBar(
|
||||
backgroundcolor: EventsConstants.blueColor,
|
||||
title: "Sign In",
|
||||
),
|
||||
// appBar: CustomAppBar(
|
||||
// backgroundcolor: EventsConstants.blueColor,
|
||||
// title: "Sign In",
|
||||
// ),
|
||||
// resizeToAvoidBottomInset: true,
|
||||
body: Container(
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/background_login.jpg"),
|
||||
fit: BoxFit.fitHeight,
|
||||
),
|
||||
),
|
||||
child: orientation == Orientation.portrait
|
||||
? Column(
|
||||
children: _buildBody(orientation, provider),
|
||||
)
|
||||
: Row(
|
||||
children: _buildBody(orientation, provider),
|
||||
),
|
||||
));
|
||||
body: Stack(children: [
|
||||
SvgPicture.asset(
|
||||
'assets/images/sc2bg500.svg',
|
||||
fit: BoxFit.cover,
|
||||
// width: MediaQuery.of(context).size.width,
|
||||
// height: MediaQuery.of(context).size.height,
|
||||
),
|
||||
Container(
|
||||
// decoration: BoxDecoration(
|
||||
// image: DecorationImage(
|
||||
// image: AssetImage("assets/images/background_login.jpg"),
|
||||
// fit: BoxFit.fitHeight,
|
||||
// ),
|
||||
// ),
|
||||
child: orientation == Orientation.portrait
|
||||
? Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: _buildBody(orientation, provider),
|
||||
)
|
||||
: Row(
|
||||
children: _buildBody(orientation, provider),
|
||||
),
|
||||
),
|
||||
]));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -155,202 +165,243 @@ class _LoginScreenState extends State<LoginScreen> {
|
|||
// ),
|
||||
// ),
|
||||
// ),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
SvgPicture.asset(
|
||||
"assets/images/konectar_logo.svg",
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Container(
|
||||
// decoration: const BoxDecoration(
|
||||
// gradient: LinearGradient(
|
||||
// begin: Alignment.topRight,
|
||||
// end: Alignment.bottomLeft,
|
||||
// colors: [
|
||||
// Color.fromARGB(255, 126, 134, 147),
|
||||
// Color.fromARGB(255, 193, 198, 209),
|
||||
// Color.fromARGB(255, 214, 217, 223),
|
||||
// ],
|
||||
// )),
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 30,
|
||||
vertical: orientation == Orientation.portrait ? 20 : 0),
|
||||
// decoration: const BoxDecoration(
|
||||
// gradient: LinearGradient(
|
||||
// begin: Alignment.topRight,
|
||||
// end: Alignment.bottomLeft,
|
||||
// colors: [
|
||||
// Color.fromARGB(255, 126, 134, 147),
|
||||
// Color.fromARGB(255, 193, 198, 209),
|
||||
// Color.fromARGB(255, 214, 217, 223),
|
||||
// ],
|
||||
// )),
|
||||
child: _buildform(provider),
|
||||
child: Center(
|
||||
child: Container(
|
||||
// decoration: const BoxDecoration(
|
||||
// gradient: LinearGradient(
|
||||
// begin: Alignment.topRight,
|
||||
// end: Alignment.bottomLeft,
|
||||
// colors: [
|
||||
// Color.fromARGB(255, 126, 134, 147),
|
||||
// Color.fromARGB(255, 193, 198, 209),
|
||||
// Color.fromARGB(255, 214, 217, 223),
|
||||
// ],
|
||||
// )),
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 30,
|
||||
vertical: orientation == Orientation.portrait ? 20 : 0),
|
||||
// decoration: const BoxDecoration(
|
||||
// gradient: LinearGradient(
|
||||
// begin: Alignment.topRight,
|
||||
// end: Alignment.bottomLeft,
|
||||
// colors: [
|
||||
// Color.fromARGB(255, 126, 134, 147),
|
||||
// Color.fromARGB(255, 193, 198, 209),
|
||||
// Color.fromARGB(255, 214, 217, 223),
|
||||
// ],
|
||||
// )),
|
||||
child: _buildform(provider),
|
||||
),
|
||||
),
|
||||
)
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(20.0),
|
||||
child: Align(
|
||||
alignment: Alignment.center,
|
||||
child: Column(
|
||||
children: [
|
||||
Center(
|
||||
child: Text(
|
||||
"By continuing, you agree to the Aissel Conditions of Use Privacy Notice.",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 14),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Text(
|
||||
"Contact Helpdesk : Support@aissel.com",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 14),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
Widget _buildform(LoginProvider provider) {
|
||||
return SingleChildScrollView(
|
||||
child: Column(mainAxisAlignment: MainAxisAlignment.start, children: [
|
||||
// Text(
|
||||
// 'Please fill the details',
|
||||
// style: TextStyle(
|
||||
// fontSize: isTablet ? 22.0 : 16,
|
||||
// fontWeight: FontWeight.bold,
|
||||
// color: Colors.blue[900]),
|
||||
// ),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Text(
|
||||
// 'Please fill the details',
|
||||
// style: TextStyle(
|
||||
// fontSize: isTablet ? 22.0 : 16,
|
||||
// fontWeight: FontWeight.bold,
|
||||
// color: Colors.blue[900]),
|
||||
// ),
|
||||
|
||||
SizedBox(
|
||||
height: 30,
|
||||
child: Image.asset(
|
||||
"assets/images/konector_image_logo.png",
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 40,
|
||||
),
|
||||
// CustomTextField(labelText: "Name", controller: nameTextController),
|
||||
// const SizedBox(
|
||||
// height: 20,
|
||||
// ),
|
||||
// const SizedBox(
|
||||
// height: 40,
|
||||
// ),
|
||||
// CustomTextField(labelText: "Name", controller: nameTextController),
|
||||
// const SizedBox(
|
||||
// height: 20,
|
||||
// ),
|
||||
|
||||
CustomTextField(labelText: "Email", controller: emailTextController),
|
||||
// const SizedBox(),
|
||||
// CustomTextField(
|
||||
// labelText: "Application url", controller: domainTextConrtroller),
|
||||
provider.showCodeField
|
||||
? Column(
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
CustomTextField(
|
||||
labelText: "Enter code",
|
||||
obscure: true,
|
||||
controller: secretKeyTextConrtroller),
|
||||
],
|
||||
)
|
||||
: SizedBox.shrink(),
|
||||
|
||||
SizedBox(
|
||||
height: isTablet ? 40 : 20,
|
||||
),
|
||||
CustomButton(
|
||||
backgroundColor: EventsConstants.blueColor,
|
||||
onPressed: () async {
|
||||
setState(() {
|
||||
print("loading");
|
||||
provider.loading = true;
|
||||
});
|
||||
|
||||
if (textFieldsValidation(provider).isEmpty) {
|
||||
print("email:${emailTextController.text}");
|
||||
// if (await _logout) {
|
||||
// print("LOGOUT");
|
||||
// provider.code = secretKeyTextConrtroller.text;
|
||||
// Map<String, dynamic> resp = await provider.verifyCode(
|
||||
// emailTextController.text, secretKeyTextConrtroller.text);
|
||||
// if (resp["code"] == "1200") {
|
||||
// provider.loading = false;
|
||||
// provider.showCodeField = false;
|
||||
// provider.showMessage = true;
|
||||
// _displaySnackBar("You have logged in successfully");
|
||||
// _saveprefs(resp["token"], emailTextController.text,
|
||||
// secretKeyTextConrtroller.text, true)
|
||||
// .then((value) {
|
||||
// Navigator.of(context).pushReplacement(
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => NavigationHomeScreen()),
|
||||
// );
|
||||
// });
|
||||
// } else {
|
||||
// provider.message = resp["message"];
|
||||
// }
|
||||
// } else {
|
||||
print("FIRST LOGIN");
|
||||
if (!provider.showCodeField) {
|
||||
provider.email = emailTextController.text;
|
||||
String encoded =
|
||||
base64.encode(utf8.encode(provider.deviceId));
|
||||
|
||||
Map<String, dynamic> resp = await provider.verifyEmail(
|
||||
emailTextController.text, encoded, platform);
|
||||
print("resp:${resp["code"]}");
|
||||
if (resp.isEmpty) {
|
||||
print("isEmplty");
|
||||
}
|
||||
|
||||
if (resp["code"] == "1200") {
|
||||
provider.loading = false;
|
||||
provider.showCodeField = true;
|
||||
provider.showMessage = true;
|
||||
} else {
|
||||
provider.loading = false;
|
||||
provider.showCodeField = false;
|
||||
provider.showMessage = true;
|
||||
}
|
||||
|
||||
provider.message = resp["message"];
|
||||
setState(() {
|
||||
emailTextController.text = provider.email!;
|
||||
});
|
||||
} else {
|
||||
provider.code = secretKeyTextConrtroller.text;
|
||||
Map<String, dynamic> resp = await provider.verifyCode(
|
||||
emailTextController.text, secretKeyTextConrtroller.text);
|
||||
if (resp["code"] == "1200") {
|
||||
provider.loading = false;
|
||||
provider.showCodeField = false;
|
||||
provider.showMessage = true;
|
||||
_displaySnackBar("You have logged in successfully");
|
||||
_saveprefs(resp["token"], emailTextController.text,
|
||||
secretKeyTextConrtroller.text, true)
|
||||
.then((value) {
|
||||
Navigator.of(context).pushReplacement(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => NavigationHomeScreen()),
|
||||
);
|
||||
});
|
||||
} else {
|
||||
provider.message = resp["message"];
|
||||
}
|
||||
setState(() {
|
||||
emailTextController.text = provider.email!;
|
||||
secretKeyTextConrtroller.text = provider.code!;
|
||||
});
|
||||
}
|
||||
// }
|
||||
|
||||
//_joinMeeting(roomText.text, "demo meet2");
|
||||
// _saveprefs(
|
||||
|
||||
// emailTextController.text,
|
||||
|
||||
// true)
|
||||
// .then((value) {
|
||||
// Navigator.of(context).pushReplacement(
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => FirebaseExample(
|
||||
// title: secretKeyTextConrtroller.text,
|
||||
// )),
|
||||
// );
|
||||
// }
|
||||
// );
|
||||
} else {
|
||||
_displaySnackBar(textFieldsValidation(provider));
|
||||
}
|
||||
},
|
||||
textColor: Colors.white,
|
||||
fontsize: isTablet ? 22 : 18,
|
||||
title: provider.showCodeField ? "Verify" : "Submit"),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
provider.showMessage
|
||||
? Text(provider.message!)
|
||||
: provider.loading
|
||||
? Center(child: CircularProgressIndicator())
|
||||
Text(
|
||||
"Sign-In to your account",
|
||||
style: TextStyle(fontSize: 20),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
CustomTextField(
|
||||
labelText: "Email", controller: emailTextController),
|
||||
// const SizedBox(),
|
||||
// CustomTextField(
|
||||
// labelText: "Application url", controller: domainTextConrtroller),
|
||||
provider.showCodeField
|
||||
? Column(
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
CustomTextField(
|
||||
labelText: "Enter code",
|
||||
obscure: true,
|
||||
controller: secretKeyTextConrtroller),
|
||||
],
|
||||
)
|
||||
: SizedBox.shrink(),
|
||||
]),
|
||||
|
||||
SizedBox(
|
||||
height: isTablet ? 40 : 20,
|
||||
),
|
||||
Center(
|
||||
child: CustomButton(
|
||||
backgroundColor: EventsConstants.onboardButtonColor,
|
||||
onPressed: () async {
|
||||
setState(() {
|
||||
print("loading");
|
||||
provider.loading = true;
|
||||
});
|
||||
|
||||
if (textFieldsValidation(provider).isEmpty) {
|
||||
print("email:${emailTextController.text}");
|
||||
// if (await _logout) {
|
||||
// print("LOGOUT");
|
||||
// provider.code = secretKeyTextConrtroller.text;
|
||||
// Map<String, dynamic> resp = await provider.verifyCode(
|
||||
// emailTextController.text, secretKeyTextConrtroller.text);
|
||||
// if (resp["code"] == "1200") {
|
||||
// provider.loading = false;
|
||||
// provider.showCodeField = false;
|
||||
// provider.showMessage = true;
|
||||
// _displaySnackBar("You have logged in successfully");
|
||||
// _saveprefs(resp["token"], emailTextController.text,
|
||||
// secretKeyTextConrtroller.text, true)
|
||||
// .then((value) {
|
||||
// Navigator.of(context).pushReplacement(
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => NavigationHomeScreen()),
|
||||
// );
|
||||
// });
|
||||
// } else {
|
||||
// provider.message = resp["message"];
|
||||
// }
|
||||
// } else {
|
||||
print("FIRST LOGIN");
|
||||
if (!provider.showCodeField) {
|
||||
provider.email = emailTextController.text;
|
||||
String encoded =
|
||||
base64.encode(utf8.encode(provider.deviceId));
|
||||
|
||||
Map<String, dynamic> resp = await provider.verifyEmail(
|
||||
emailTextController.text, encoded, platform);
|
||||
print("resp:${resp["code"]}");
|
||||
if (resp.isEmpty) {
|
||||
print("isEmplty");
|
||||
}
|
||||
|
||||
if (resp["code"] == "1200") {
|
||||
provider.loading = false;
|
||||
provider.showCodeField = true;
|
||||
provider.showMessage = true;
|
||||
} else {
|
||||
provider.loading = false;
|
||||
provider.showCodeField = false;
|
||||
provider.showMessage = true;
|
||||
}
|
||||
|
||||
provider.message = resp["message"];
|
||||
setState(() {
|
||||
emailTextController.text = provider.email!;
|
||||
});
|
||||
} else {
|
||||
provider.code = secretKeyTextConrtroller.text;
|
||||
Map<String, dynamic> resp = await provider.verifyCode(
|
||||
emailTextController.text,
|
||||
secretKeyTextConrtroller.text);
|
||||
if (resp["code"] == "1200") {
|
||||
provider.loading = false;
|
||||
provider.showCodeField = false;
|
||||
provider.showMessage = true;
|
||||
_displaySnackBar("You have logged in successfully");
|
||||
_saveprefs(resp["token"], emailTextController.text,
|
||||
secretKeyTextConrtroller.text, true)
|
||||
.then((value) {
|
||||
Navigator.of(context).pushReplacement(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => NavigationHomeScreen()),
|
||||
);
|
||||
});
|
||||
} else {
|
||||
provider.message = resp["message"];
|
||||
}
|
||||
setState(() {
|
||||
emailTextController.text = provider.email!;
|
||||
secretKeyTextConrtroller.text = provider.code!;
|
||||
});
|
||||
}
|
||||
// }
|
||||
|
||||
//_joinMeeting(roomText.text, "demo meet2");
|
||||
// _saveprefs(
|
||||
|
||||
// emailTextController.text,
|
||||
|
||||
// true)
|
||||
// .then((value) {
|
||||
// Navigator.of(context).pushReplacement(
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => FirebaseExample(
|
||||
// title: secretKeyTextConrtroller.text,
|
||||
// )),
|
||||
// );
|
||||
// }
|
||||
// );
|
||||
} else {
|
||||
_displaySnackBar(textFieldsValidation(provider));
|
||||
}
|
||||
},
|
||||
textColor: Colors.white,
|
||||
fontsize: isTablet ? 22 : 18,
|
||||
title: provider.showCodeField ? "Verify" : "Sign In"),
|
||||
),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
provider.showMessage
|
||||
? Text(provider.message!)
|
||||
: provider.loading
|
||||
? Center(child: CircularProgressIndicator())
|
||||
: SizedBox.shrink(),
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
class CareView extends StatelessWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -74,46 +75,64 @@ class CareView extends StatelessWidget {
|
|||
position: _firstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _secondHalfAnimation,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
SlideTransition(
|
||||
position: _relaxFirstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _relaxSecondHalfAnimation,
|
||||
child: Text(
|
||||
"Track Events Everywhere",
|
||||
style:
|
||||
TextStyle(fontSize: 26.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 64, right: 64, bottom: 16, top: 16),
|
||||
child: Text(
|
||||
"Available on your phone,tablet and laptop",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _imageFirstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _imageSecondHalfAnimation,
|
||||
child: Container(
|
||||
constraints: BoxConstraints(maxWidth: 350, maxHeight: 250),
|
||||
child: Image.asset(
|
||||
'assets/introduction_animation/events3.jpg',
|
||||
fit: BoxFit.contain,
|
||||
child: Stack(children: [
|
||||
SvgPicture.asset(
|
||||
'assets/images/sc2bg500.svg',
|
||||
fit: BoxFit.fill,
|
||||
// width: MediaQuery.of(context).size.width,
|
||||
// height: MediaQuery.of(context).size.height,
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
SlideTransition(
|
||||
position: _relaxFirstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _relaxSecondHalfAnimation,
|
||||
child: Center(
|
||||
//child: Padding(
|
||||
// padding: EdgeInsets.only(
|
||||
// left: 34, right: 64, bottom: 16, top: 30),
|
||||
child: Text(
|
||||
"Discover, Profile & Engage Top HCPs! ",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 22.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
//),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 64, right: 64, bottom: 16, top: 30),
|
||||
child: Text(
|
||||
"Tier & segment top HCPs, access detailed profiles for effective engagement.",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _imageFirstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _imageSecondHalfAnimation,
|
||||
child: Container(
|
||||
constraints:
|
||||
BoxConstraints(maxWidth: 350, maxHeight: 250),
|
||||
child: Image.asset(
|
||||
'assets/images/sc2img2x.png',
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:animations/animations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:konectar_events/utils/constants.dart';
|
||||
|
||||
class CenterNextButton extends StatelessWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -42,7 +43,7 @@ class CenterNextButton extends StatelessWidget {
|
|||
|
||||
return Padding(
|
||||
padding:
|
||||
EdgeInsets.only(bottom: 16 + MediaQuery.of(context).padding.bottom),
|
||||
EdgeInsets.only(bottom: 2 + MediaQuery.of(context).padding.bottom),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
|
@ -74,7 +75,8 @@ class CenterNextButton extends StatelessWidget {
|
|||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(
|
||||
8 + 32 * (1 - _signUpMoveAnimation.value)),
|
||||
color: Color(0xff132137),
|
||||
//color: Color(0xff132137),
|
||||
color: EventsConstants.onboardButtonColor,
|
||||
),
|
||||
child: PageTransitionSwitcher(
|
||||
duration: Duration(milliseconds: 480),
|
||||
|
@ -92,7 +94,7 @@ class CenterNextButton extends StatelessWidget {
|
|||
transitionType: SharedAxisTransitionType.vertical,
|
||||
);
|
||||
},
|
||||
child: _signUpMoveAnimation.value > 0.7
|
||||
child: _signUpMoveAnimation.value > 0.5
|
||||
? InkWell(
|
||||
key: ValueKey('Sign Up button'),
|
||||
onTap: onNextClick,
|
||||
|
@ -103,7 +105,7 @@ class CenterNextButton extends StatelessWidget {
|
|||
MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Sign In',
|
||||
'Sign Up',
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 18,
|
||||
|
@ -165,9 +167,10 @@ class CenterNextButton extends StatelessWidget {
|
|||
Widget _pageView() {
|
||||
int _selectedIndex = 0;
|
||||
|
||||
if (animationController.value >= 0.7) {
|
||||
_selectedIndex = 3;
|
||||
} else if (animationController.value >= 0.5) {
|
||||
// if (animationController.value >= 0.7) {
|
||||
// _selectedIndex = 3;
|
||||
// } else
|
||||
if (animationController.value >= 0.5) {
|
||||
_selectedIndex = 2;
|
||||
} else if (animationController.value >= 0.3) {
|
||||
_selectedIndex = 1;
|
||||
|
@ -180,7 +183,7 @@ class CenterNextButton extends StatelessWidget {
|
|||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
for (var i = 0; i < 4; i++)
|
||||
for (var i = 0; i < 3; i++)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(4),
|
||||
child: AnimatedContainer(
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:konectar_events/utils/constants.dart';
|
||||
import 'package:konectar_events/view/home.dart';
|
||||
import 'package:konectar_events/view/login.dart';
|
||||
import 'package:konectar_events/view/login_components/care_view.dart';
|
||||
import 'package:konectar_events/view/login_components/center_next_button.dart';
|
||||
|
@ -9,6 +11,7 @@ import 'package:konectar_events/view/login_components/splash_view.dart';
|
|||
import 'package:konectar_events/view/login_components/top_back_skip_view.dart';
|
||||
import 'package:konectar_events/view/login_components/welcome_view.dart';
|
||||
import 'package:konectar_events/view/navigation_home_screen.dart';
|
||||
import 'package:konectar_events/widgets/home_drawer.dart';
|
||||
|
||||
class IntroductionAnimationScreen extends StatefulWidget {
|
||||
const IntroductionAnimationScreen({Key? key}) : super(key: key);
|
||||
|
@ -39,51 +42,55 @@ class _IntroductionAnimationScreenState
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print(_animationController?.value);
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: EventsConstants.bgcolor,
|
||||
title: Container(
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
child: Image.asset(
|
||||
'assets/introduction_animation/introduction_image1.png',
|
||||
fit: BoxFit.contain,
|
||||
return SafeArea(
|
||||
top: true,
|
||||
child: Scaffold(
|
||||
// appBar: AppBar(
|
||||
// backgroundColor: EventsConstants.bgcolor,
|
||||
// title: Container(
|
||||
// // constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
// child: Image.asset(
|
||||
// 'assets/images/onboardklogo.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// centerTitle: true,
|
||||
// ),
|
||||
backgroundColor: Colors.white,
|
||||
body: ClipRect(
|
||||
child: Stack(
|
||||
children: [
|
||||
SplashView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
|
||||
CareView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
RelaxView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
// CareView(
|
||||
// animationController: _animationController!,
|
||||
// ),
|
||||
MoodDiaryVew(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
// WelcomeView(
|
||||
// animationController: _animationController!,
|
||||
// ),
|
||||
TopBackSkipView(
|
||||
onBackClick: _onBackClick,
|
||||
onSkipClick: _onSkipClick,
|
||||
animationController: _animationController!,
|
||||
),
|
||||
CenterNextButton(
|
||||
animationController: _animationController!,
|
||||
onNextClick: _onNextClick,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
centerTitle: true,
|
||||
),
|
||||
backgroundColor: EventsConstants.bgcolor,
|
||||
body: ClipRect(
|
||||
child: Stack(
|
||||
children: [
|
||||
// SplashView(
|
||||
// animationController: _animationController!,
|
||||
// ),
|
||||
CareView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
RelaxView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
CareView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
// MoodDiaryVew(
|
||||
// animationController: _animationController!,
|
||||
// ),
|
||||
WelcomeView(
|
||||
animationController: _animationController!,
|
||||
),
|
||||
TopBackSkipView(
|
||||
onBackClick: _onBackClick,
|
||||
onSkipClick: _onSkipClick,
|
||||
animationController: _animationController!,
|
||||
),
|
||||
CenterNextButton(
|
||||
animationController: _animationController!,
|
||||
onNextClick: _onNextClick,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -97,20 +104,24 @@ class _IntroductionAnimationScreenState
|
|||
// if (_animationController!.value >= 0 &&
|
||||
// _animationController!.value <= 0.2) {
|
||||
// _animationController?.animateTo(0.0);
|
||||
// } else
|
||||
// }
|
||||
// else
|
||||
if (_animationController!.value > 0.2 &&
|
||||
_animationController!.value <= 0.4) {
|
||||
_animationController?.animateTo(0.2);
|
||||
} else if (_animationController!.value > 0.4 &&
|
||||
_animationController!.value <= 0.6) {
|
||||
_animationController?.animateTo(0.4);
|
||||
} else if (_animationController!.value > 0.6 &&
|
||||
_animationController!.value <= 0.8) {
|
||||
_animationController?.animateTo(0.6);
|
||||
} else if (_animationController!.value > 0.8 &&
|
||||
_animationController!.value <= 1.0) {
|
||||
_animationController?.animateTo(0.8);
|
||||
}
|
||||
//else
|
||||
// if (_animationController!.value > 0.6 &&
|
||||
// _animationController!.value <= 0.8) {
|
||||
// _animationController?.animateTo(0.6);
|
||||
// } else
|
||||
// if (_animationController!.value > 0.8 &&
|
||||
// _animationController!.value <= 1.0) {
|
||||
// _animationController?.animateTo(0.8);
|
||||
// }
|
||||
}
|
||||
|
||||
void _onNextClick() {
|
||||
|
@ -122,11 +133,12 @@ class _IntroductionAnimationScreenState
|
|||
_animationController?.animateTo(0.6);
|
||||
} else if (_animationController!.value > 0.4 &&
|
||||
_animationController!.value <= 0.6) {
|
||||
_animationController?.animateTo(0.8);
|
||||
} else if (_animationController!.value > 0.6 &&
|
||||
_animationController!.value <= 0.8) {
|
||||
_signUpClick();
|
||||
}
|
||||
// else if (_animationController!.value > 0.4 &&
|
||||
// _animationController!.value <= 0.8) {
|
||||
// _signUpClick();
|
||||
// }
|
||||
}
|
||||
|
||||
void _signUpClick() {
|
||||
|
@ -135,3 +147,65 @@ class _IntroductionAnimationScreenState
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
// void _onSkipClick() {
|
||||
// _animationController?.animateTo(0.8,
|
||||
// duration: Duration(milliseconds: 1200));
|
||||
// }
|
||||
|
||||
// void _onBackClick() {
|
||||
// // if (_animationController!.value >= 0 &&
|
||||
// // _animationController!.value <= 0.2) {
|
||||
// // _animationController?.animateTo(0.0);
|
||||
// // } else
|
||||
// // if (_animationController!.value > 0.2 &&
|
||||
// // _animationController!.value <= 0.4) {
|
||||
// // _animationController?.animateTo(0.2);
|
||||
// // } else
|
||||
// if (_animationController!.value > 0.4 &&
|
||||
// _animationController!.value <= 0.6) {
|
||||
// _animationController?.animateTo(0.4);
|
||||
// } else if (_animationController!.value > 0.6 &&
|
||||
// _animationController!.value <= 0.8) {
|
||||
// _animationController?.animateTo(0.6);
|
||||
// } else if (_animationController!.value > 0.8 &&
|
||||
// _animationController!.value <= 1.0) {
|
||||
// _animationController?.animateTo(0.8);
|
||||
// }
|
||||
// }
|
||||
|
||||
// void _onNextClick() {
|
||||
// // if (_animationController!.value <= 0.2) {
|
||||
// // _animationController?.animateTo(0.0);
|
||||
// // } else
|
||||
// // if (_animationController!.value > 0.2 &&
|
||||
// // _animationController!.value <= 0.4) {
|
||||
// // _animationController?.animateTo(0.2);
|
||||
// // } else
|
||||
// if (_animationController!.value > 0.4 &&
|
||||
// _animationController!.value <= 0.6) {
|
||||
// _animationController?.animateTo(0.4);
|
||||
// } else if (_animationController!.value > 0.6 &&
|
||||
// _animationController!.value <= 0.8) {
|
||||
// _animationController?.animateTo(0.6);
|
||||
// } else if (_animationController!.value > 0.8 &&
|
||||
// _animationController!.value <= 1.0) {
|
||||
// _signUpClick();
|
||||
// }
|
||||
|
||||
// if (_animationController!.value >= 0 &&
|
||||
// _animationController!.value <= 0.2) {
|
||||
// _animationController?.animateTo(0.4);
|
||||
// } else if (_animationController!.value > 0.2 &&
|
||||
// _animationController!.value <= 0.4) {
|
||||
// _animationController?.animateTo(0.6);
|
||||
// } else if (_animationController!.value > 0.4 &&
|
||||
// _animationController!.value <= 0.6) {
|
||||
// _animationController?.animateTo(0.8);
|
||||
// } else if (_animationController!.value > 0.6 &&
|
||||
// _animationController!.value <= 0.8) {
|
||||
// _signUpClick();
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
class MoodDiaryVew extends StatelessWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -15,7 +16,7 @@ class MoodDiaryVew extends StatelessWidget {
|
|||
curve: Interval(
|
||||
0.4,
|
||||
0.6,
|
||||
curve: Curves.fastOutSlowIn,
|
||||
curve: Curves.fastEaseInToSlowEaseOut,
|
||||
),
|
||||
));
|
||||
final _secondHalfAnimation =
|
||||
|
@ -74,45 +75,72 @@ class MoodDiaryVew extends StatelessWidget {
|
|||
position: _firstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _secondHalfAnimation,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
"Mood Dairy",
|
||||
style: TextStyle(fontSize: 26.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _moodFirstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _moodSecondHalfAnimation,
|
||||
child: Stack(children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 4.0),
|
||||
child: SvgPicture.asset(
|
||||
'assets/images/sc1bg1500.svg',
|
||||
fit: BoxFit.cover,
|
||||
// width: MediaQuery.of(context).size.width,
|
||||
// height: MediaQuery.of(context).size.height,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// SlideTransition(
|
||||
// position: _relaxAnimation,
|
||||
// child: Container(
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
// child: Image.asset(
|
||||
// 'assets/introduction_animation/introduction_image1.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
Center(
|
||||
child: SlideTransition(
|
||||
position: _secondHalfAnimation,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 20,
|
||||
),
|
||||
child: Text(
|
||||
"Stay updated on medical events tailored to your areas of interest",
|
||||
style: TextStyle(
|
||||
fontSize: 18.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _secondHalfAnimation,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 64, right: 64, top: 16, bottom: 16),
|
||||
left: 64, right: 64, top: 30, bottom: 16),
|
||||
child: Text(
|
||||
"Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore",
|
||||
"Get curated conference listings to optimize event participation, KOL strategies and outreach.",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _imageFirstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
SlideTransition(
|
||||
position: _imageSecondHalfAnimation,
|
||||
child: Container(
|
||||
constraints: BoxConstraints(maxWidth: 350, maxHeight: 250),
|
||||
child: Image.asset(
|
||||
'assets/introduction_animation/mood_dairy_image.png',
|
||||
fit: BoxFit.contain,
|
||||
'assets/images/sc3img2x.png',
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:flutter_svg_provider/flutter_svg_provider.dart';
|
||||
|
||||
class RelaxView extends StatelessWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -68,52 +70,64 @@ class RelaxView extends StatelessWidget {
|
|||
position: _firstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _secondHalfAnimation,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// SlideTransition(
|
||||
// position: _relaxAnimation,
|
||||
// child: Container(
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
// child: Image.asset(
|
||||
// 'assets/introduction_animation/introduction_image1.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
SlideTransition(
|
||||
position: _relaxAnimation,
|
||||
child: Text(
|
||||
"There's a plan for every event ",
|
||||
style: TextStyle(fontSize: 26.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _textAnimation,
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 64, right: 64, top: 16, bottom: 16),
|
||||
child: Text(
|
||||
"Single solution for more impactful event experience",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _imageAnimation,
|
||||
child: Container(
|
||||
constraints: BoxConstraints(maxWidth: 350, maxHeight: 250),
|
||||
child: Image.asset(
|
||||
'assets/introduction_animation/events3.jpg',
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Stack(children: [
|
||||
SvgPicture.asset(
|
||||
'assets/images/sc1bg1500.svg',
|
||||
fit: BoxFit.cover,
|
||||
// width: MediaQuery.of(context).size.width,
|
||||
// height: MediaQuery.of(context).size.height,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// SlideTransition(
|
||||
// position: _relaxAnimation,
|
||||
// child: Container(
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
// child: Image.asset(
|
||||
// 'assets/introduction_animation/introduction_image1.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
|
||||
Center(
|
||||
child: SlideTransition(
|
||||
position: _relaxAnimation,
|
||||
child: Text(
|
||||
"Welcome!",
|
||||
style: TextStyle(
|
||||
fontSize: 30.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _textAnimation,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 64, right: 64, top: 30, bottom: 16),
|
||||
child: Text(
|
||||
"An AI-powered platform that offers intelligent, data-driven insights into the HCP landscape.",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
SlideTransition(
|
||||
position: _imageAnimation,
|
||||
child: Container(
|
||||
constraints: BoxConstraints(maxWidth: 350, maxHeight: 250),
|
||||
child: Image.asset(
|
||||
'assets/images/sc1img2x.png',
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
class SplashView extends StatefulWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -31,71 +32,68 @@ class _SplashViewState extends State<SplashView> {
|
|||
padding: const EdgeInsets.only(bottom: 100.0),
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 40,
|
||||
),
|
||||
// Padding(
|
||||
// padding: EdgeInsets.all(8.0),
|
||||
// child: SizedBox(
|
||||
// //width: MediaQuery.of(context).size.width,
|
||||
// child: Image.asset(
|
||||
// 'assets/introduction_animation/introduction_image1.png',
|
||||
// child: SvgPicture.asset(
|
||||
// 'assets/klogo.svg',
|
||||
// fit: BoxFit.cover,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
SizedBox(
|
||||
height: 80,
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 8.0, bottom: 8.0),
|
||||
child: Text(
|
||||
"Track Events Everywhere",
|
||||
style: TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: 64, right: 64),
|
||||
child: Text(
|
||||
"Available on your phone,tablet and laptop",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 100,
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
bottom: MediaQuery.of(context).padding.bottom),
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
widget.animationController.animateTo(0.2);
|
||||
},
|
||||
child: Container(
|
||||
height: 58,
|
||||
padding: EdgeInsets.only(
|
||||
left: 56.0,
|
||||
right: 56.0,
|
||||
top: 16,
|
||||
bottom: 16,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(38.0),
|
||||
color: Color(0xff132137),
|
||||
),
|
||||
child: Text(
|
||||
"Let's begin",
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
// SizedBox(
|
||||
// height: 80,
|
||||
// ),
|
||||
// Padding(
|
||||
// padding: EdgeInsets.only(top: 8.0, bottom: 8.0),
|
||||
// child: Text(
|
||||
// "Track Events Everywhere",
|
||||
// style: TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold),
|
||||
// ),
|
||||
// ),
|
||||
// Align(
|
||||
// alignment: Alignment.bottomCenter,
|
||||
// child: Padding(
|
||||
// padding: EdgeInsets.only(left: 64, right: 64),
|
||||
// child: Text(
|
||||
// "Available on your phone,tablet and laptop",
|
||||
// textAlign: TextAlign.center,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(
|
||||
// height: 100,
|
||||
// ),
|
||||
// Padding(
|
||||
// padding: EdgeInsets.only(
|
||||
// bottom: MediaQuery.of(context).padding.bottom + 16),
|
||||
// child: InkWell(
|
||||
// onTap: () {
|
||||
// widget.animationController.animateTo(0.2);
|
||||
// },
|
||||
// child: Container(
|
||||
// height: 58,
|
||||
// padding: EdgeInsets.only(
|
||||
// left: 56.0,
|
||||
// right: 56.0,
|
||||
// top: 16,
|
||||
// bottom: 16,
|
||||
// ),
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(38.0),
|
||||
// color: Color(0xff132137),
|
||||
// ),
|
||||
// child: Text(
|
||||
// "Let's begin",
|
||||
// style: TextStyle(
|
||||
// fontSize: 18,
|
||||
// color: Colors.white,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
class TopBackSkipView extends StatelessWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -50,7 +51,7 @@ class TopBackSkipView extends StatelessWidget {
|
|||
child: Padding(
|
||||
padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top),
|
||||
child: Container(
|
||||
height: 58,
|
||||
height: 80,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 8, right: 16),
|
||||
child: Row(
|
||||
|
@ -62,8 +63,19 @@ class TopBackSkipView extends StatelessWidget {
|
|||
IconButton(
|
||||
onPressed: onBackClick,
|
||||
icon: Icon(Icons.arrow_back_ios_new_rounded),
|
||||
color: Colors.white,
|
||||
// ),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.only(top: 20),
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
child: SvgPicture.asset('assets/images/konectar_logo.svg')
|
||||
// Image.asset(
|
||||
// 'assets/klogo.svg',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
),
|
||||
|
||||
SlideTransition(
|
||||
position: _skipAnimation,
|
||||
child: IconButton(
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
class WelcomeView extends StatelessWidget {
|
||||
final AnimationController animationController;
|
||||
|
@ -55,42 +56,51 @@ class WelcomeView extends StatelessWidget {
|
|||
position: _firstHalfAnimation,
|
||||
child: SlideTransition(
|
||||
position: _secondHalfAnimation,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// SlideTransition(
|
||||
// position: _welcomeFirstHalfAnimation,
|
||||
// child: Container(
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
// child: Image.asset(
|
||||
// 'assets/introduction_animation/introduction_image1.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
SizedBox(
|
||||
height: 50,
|
||||
),
|
||||
SlideTransition(
|
||||
position: _welcomeFirstHalfAnimation,
|
||||
child: Text(
|
||||
"Welcome",
|
||||
style: TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 64, right: 64, top: 16, bottom: 16),
|
||||
child: Text(
|
||||
"HCP Management Platform Aissel's Cutting-Edge Product Solutions",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Stack(children: [
|
||||
SvgPicture.asset(
|
||||
'assets/images/sc2bg500.svg',
|
||||
fit: BoxFit.cover,
|
||||
// width: MediaQuery.of(context).size.width,
|
||||
// height: MediaQuery.of(context).size.height,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.only(bottom: 100),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// SlideTransition(
|
||||
// position: _welcomeFirstHalfAnimation,
|
||||
// child: Container(
|
||||
// constraints: BoxConstraints(maxWidth: 350, maxHeight: 350),
|
||||
// child: Image.asset(
|
||||
// 'assets/introduction_animation/introduction_image1.png',
|
||||
// fit: BoxFit.contain,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
SizedBox(
|
||||
height: 50,
|
||||
),
|
||||
SlideTransition(
|
||||
position: _welcomeFirstHalfAnimation,
|
||||
child: Text(
|
||||
"Sign In",
|
||||
style:
|
||||
TextStyle(fontSize: 25.0, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 64, right: 64, top: 16, bottom: 16),
|
||||
child: Text(
|
||||
"",
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,20 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/new_dynamicform.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/viewinteractionprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_contacts.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_editinteraction.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_viewinteraction.dart';
|
||||
import 'package:konectar_events/utils/app_theme.dart';
|
||||
import 'package:konectar_events/utils/constants.dart';
|
||||
import 'package:konectar_events/utils/dateformater.dart';
|
||||
import 'package:konectar_events/view/helpdesk.dart';
|
||||
import 'package:konectar_events/view/home.dart';
|
||||
import 'package:konectar_events/widgets/drawerusercontroller.dart';
|
||||
import 'package:konectar_events/widgets/home_drawer.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../contacts_module/ui_screen/interactionform/configprovider.dart';
|
||||
|
||||
class NavigationHomeScreen extends StatefulWidget {
|
||||
@override
|
||||
|
@ -46,6 +56,159 @@ class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget medicalInsights() {
|
||||
return Consumer<ViewInteractionProvider>(
|
||||
builder: (BuildContext context, provider, Widget? child) {
|
||||
return Container(
|
||||
color: EventsConstants.bgcolor,
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Center(
|
||||
child: FloatingActionButton.extended(
|
||||
backgroundColor: Colors.green,
|
||||
onPressed: () async {
|
||||
final ConfigDataProvider configDataProvider =
|
||||
ConfigDataProvider();
|
||||
|
||||
await configDataProvider.initConfigUIDataMediccalInsight();
|
||||
await Provider.of<InteractionProvider>(context, listen: false)
|
||||
.initConfigData();
|
||||
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) => InteractionScreen1(
|
||||
index: 0,
|
||||
form: Provider.of<InteractionProvider>(context,
|
||||
listen: false)
|
||||
.intConfigDataList[0]
|
||||
.name,
|
||||
title: "Hope Neuman",
|
||||
)));
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => const InteractionListScreen()));
|
||||
},
|
||||
heroTag: 'medicalinsights',
|
||||
elevation: 0,
|
||||
label: const Text("Add Medical Insights",
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
)),
|
||||
icon: const Icon(
|
||||
Icons.add,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
provider.savedList.isEmpty
|
||||
? SizedBox.shrink()
|
||||
: ListView.builder(
|
||||
itemCount: provider.savedList.length,
|
||||
shrinkWrap: true,
|
||||
cacheExtent:
|
||||
double.parse(provider.savedList.length.toString()),
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
ListTile(
|
||||
subtitle: Text(
|
||||
'Updated on ${CustomDateFormatter().convertDateTimeToDate(provider.savedList[index].updatedTime!)}',
|
||||
//style: TextStyle(fontStyle: FontStyle.italic),
|
||||
),
|
||||
title: Text(
|
||||
provider.savedList[index].id,
|
||||
),
|
||||
trailing: SizedBox(
|
||||
width: 100,
|
||||
child: Row(children: [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
ViewInteractionScreen1(
|
||||
saveInteraction:
|
||||
provider.savedList[index],
|
||||
)));
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.info_outline,
|
||||
size: 24,
|
||||
color: Color.fromARGB(255, 8, 39, 92),
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () async {
|
||||
await provider.initConfigData().then({
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(
|
||||
// builder: (BuildContext context) =>
|
||||
// EditInteractionScreen(
|
||||
// saveInteraction: provider
|
||||
// .savedList[index],
|
||||
// )))
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
EditInteractionScreen1(
|
||||
saveInteraction: provider
|
||||
.savedList[index],
|
||||
)))
|
||||
});
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.edit,
|
||||
size: 24,
|
||||
color: Color.fromARGB(255, 8, 39, 92),
|
||||
),
|
||||
),
|
||||
// IconButton(
|
||||
// onPressed: () {
|
||||
// showDeleteRecordAlertDialog(
|
||||
// context,
|
||||
// provider.savedList[index].id,
|
||||
// provider.savedList[index]);
|
||||
// },
|
||||
// icon: const Icon(
|
||||
// Icons.delete,
|
||||
// size: 24,
|
||||
// color: Color.fromARGB(255, 8, 39, 92),
|
||||
// ),
|
||||
// ),
|
||||
]),
|
||||
),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (BuildContext context) =>
|
||||
ViewInteractionScreen1(
|
||||
saveInteraction:
|
||||
provider.savedList[index],
|
||||
)));
|
||||
},
|
||||
),
|
||||
const Divider(),
|
||||
],
|
||||
);
|
||||
}),
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
void changeIndex(DrawerIndex drawerIndexdata) {
|
||||
if (drawerIndex != drawerIndexdata) {
|
||||
drawerIndex = drawerIndexdata;
|
||||
|
@ -67,7 +230,7 @@ class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
|
|||
break;
|
||||
case DrawerIndex.Invite:
|
||||
setState(() {
|
||||
screenView = HomeScreen();
|
||||
screenView = medicalInsights();
|
||||
});
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:avatar_stack/avatar_stack.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:konectar_events/contacts_module/model_class/speaker.dart';
|
||||
|
@ -12,26 +16,39 @@ import 'package:konectar_events/contacts_module/ui_screen/interactionform/intera
|
|||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/new_dynamicform.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/viewinteractionprovider.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/widget/custombutton.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_editinteraction.dart';
|
||||
import 'package:konectar_events/contacts_module/ui_screen/new_viewinteraction.dart';
|
||||
import 'package:konectar_events/model/events_speakers_k1.dart';
|
||||
import 'package:konectar_events/model/eventsdetailmodel.dart';
|
||||
import 'package:konectar_events/model/eventspeakers.dart';
|
||||
import 'package:konectar_events/model/sessionnotesmodel.dart';
|
||||
import 'package:konectar_events/model/sessionstopics_model.dart';
|
||||
import 'package:konectar_events/utils/constants.dart';
|
||||
import 'package:konectar_events/utils/dateformater.dart';
|
||||
import 'package:konectar_events/utils/util.dart';
|
||||
import 'package:konectar_events/viewmodel/hcpprofprovider.dart';
|
||||
import 'package:konectar_events/widgets/customdropdown.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
class HCPProfileScreen extends StatefulWidget {
|
||||
SpeakersList eventsdetail;
|
||||
EventSpeakersData eventsdetail;
|
||||
String eventid;
|
||||
String title;
|
||||
List<String> sessionNames;
|
||||
List<String> topics;
|
||||
String kolFullName;
|
||||
|
||||
HCPProfileScreen(
|
||||
{super.key,
|
||||
required this.eventsdetail,
|
||||
required this.eventid,
|
||||
required this.kolFullName,
|
||||
required this.sessionNames,
|
||||
required this.topics,
|
||||
required this.title});
|
||||
|
||||
@override
|
||||
|
@ -40,8 +57,10 @@ class HCPProfileScreen extends StatefulWidget {
|
|||
|
||||
class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
||||
String? _selectedFruit;
|
||||
SessionsTopicsData? sessionsTopicsData;
|
||||
bool isExtended = false;
|
||||
List<String> sessionList = [];
|
||||
String attachedFileName = '';
|
||||
final List<String> _fruits = ['Events', 'Sessions'];
|
||||
final List<String> topics = [
|
||||
" Admin. & Managemente",
|
||||
|
@ -53,7 +72,8 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
];
|
||||
TextEditingController notesController = TextEditingController(text: "");
|
||||
List<String> sessionNotesList = [];
|
||||
Future<void> dialogBuilder(BuildContext context, Eventsdetail eventsdetail) {
|
||||
Future<void> dialogBuilder(BuildContext context, Eventsdetail eventsdetail,
|
||||
HcpProfileProvider provider) {
|
||||
return showDialog<void>(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
|
@ -67,7 +87,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
decoration: BoxDecoration(
|
||||
border: Border.all(color: Colors.grey),
|
||||
borderRadius: BorderRadius.circular(8.0)),
|
||||
child: dropDown(underline: Container())),
|
||||
child: dropDown(underline: Container(), provider: provider)),
|
||||
TextFormField(
|
||||
validator: (value) {
|
||||
// add email validation
|
||||
|
@ -118,15 +138,15 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget dropDown({
|
||||
Widget? underline,
|
||||
Widget? icon,
|
||||
TextStyle? style,
|
||||
TextStyle? hintStyle,
|
||||
Color? dropdownColor,
|
||||
}) =>
|
||||
DropdownButton<String>(
|
||||
value: _selectedFruit,
|
||||
Widget dropDown(
|
||||
{Widget? underline,
|
||||
Widget? icon,
|
||||
TextStyle? style,
|
||||
TextStyle? hintStyle,
|
||||
Color? dropdownColor,
|
||||
required HcpProfileProvider provider}) =>
|
||||
DropdownButton<SessionsTopicsData>(
|
||||
value: sessionsTopicsData,
|
||||
underline: underline,
|
||||
icon: Align(alignment: Alignment.centerRight, child: icon),
|
||||
dropdownColor: dropdownColor,
|
||||
|
@ -137,15 +157,16 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
fontSize: 14.0,
|
||||
),
|
||||
// iconEnabledColor: iconEnabledColor,
|
||||
onChanged: (String? newValue) {
|
||||
onChanged: (SessionsTopicsData? newValue) {
|
||||
setState(() {
|
||||
_selectedFruit = newValue;
|
||||
_selectedFruit = newValue!.sessionName;
|
||||
sessionsTopicsData = newValue;
|
||||
});
|
||||
},
|
||||
hint: Text("Select Session", style: hintStyle),
|
||||
items: sessionList
|
||||
.map((session) => DropdownMenuItem<String>(
|
||||
value: session, child: Text(session)))
|
||||
items: provider.sessionTopics
|
||||
.map((session) => DropdownMenuItem<SessionsTopicsData>(
|
||||
value: session, child: Text(session.sessionName!)))
|
||||
.toList());
|
||||
|
||||
@override
|
||||
|
@ -160,6 +181,8 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
init() async {
|
||||
await Provider.of<HcpProfileProvider>(context, listen: false)
|
||||
.getSessionData();
|
||||
await Provider.of<HcpProfileProvider>(context, listen: false)
|
||||
.getSessionTopics(widget.eventsdetail);
|
||||
// await Provider.of<HcpProfileProvider>(context, listen: false)
|
||||
// .getCounts(widget.eventsdetail);
|
||||
|
||||
|
@ -172,7 +195,8 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
.name;
|
||||
|
||||
await Provider.of<ViewInteractionProvider>(context, listen: false)
|
||||
.getRecords(formname, hcp: widget.eventsdetail.hcpFullName);
|
||||
.getRecords(formname, hcp: widget.kolFullName);
|
||||
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
|
@ -285,7 +309,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
];
|
||||
},
|
||||
body: TabBarView(children: [
|
||||
topicsTab(widget.eventsdetail),
|
||||
topicsTab(widget.eventsdetail, provider),
|
||||
sessionNotes(context, widget.eventsdetail, provider),
|
||||
medicalInsights(),
|
||||
// sessionNotes(context)
|
||||
|
@ -310,7 +334,8 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
});
|
||||
}
|
||||
|
||||
buildprofile(BuildContext context, SpeakersList eventsdetail, String title) {
|
||||
buildprofile(
|
||||
BuildContext context, EventSpeakersData eventsdetail, String title) {
|
||||
MediaQuery.of(context).size.height * 0.35;
|
||||
|
||||
return Container(
|
||||
|
@ -343,7 +368,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
SizedBox(
|
||||
height: 15,
|
||||
),
|
||||
Text(eventsdetail.hcpFullName!,
|
||||
Text(eventsdetail.kolFullName!,
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
// fontFamily: "SourceSerif",
|
||||
|
@ -355,7 +380,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
// // fontFamily: "SourceSerif",
|
||||
// )),
|
||||
Text(
|
||||
"${eventsdetail.organization ?? ""} ${eventsdetail.countryName ?? ""} ${eventsdetail.cityName ?? ""}",
|
||||
"${eventsdetail.orgName ?? ""} ${eventsdetail.country ?? ""} ${eventsdetail.city ?? ""}",
|
||||
softWrap: true,
|
||||
maxLines: 2,
|
||||
textAlign: TextAlign.center,
|
||||
|
@ -429,7 +454,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
));
|
||||
}
|
||||
|
||||
Widget buildCardView(BuildContext context, SpeakersList eventsdetail,
|
||||
Widget buildCardView(BuildContext context, EventSpeakersData eventsdetail,
|
||||
HcpProfileProvider provider) {
|
||||
return Container(
|
||||
// color: Constants.bgcolor,
|
||||
|
@ -439,7 +464,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
// title: eventsdetail.kolFullName!,
|
||||
// eventsdetail: eventsdetail,
|
||||
// ),
|
||||
buildprofile(context, eventsdetail, eventsdetail.hcpFullName!),
|
||||
buildprofile(context, eventsdetail, eventsdetail.kolFullName!),
|
||||
// Padding(
|
||||
// padding: const EdgeInsets.all(8.0),
|
||||
// child: Column(
|
||||
|
@ -539,9 +564,8 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
// const Spacer(),
|
||||
Center(
|
||||
child: _ProfileInfoRow(items: [
|
||||
ProfileInfoItem("Topic(s)", widget.eventsdetail.topics!.length),
|
||||
ProfileInfoItem(
|
||||
"Session(s)", widget.eventsdetail.sessionNames!.length),
|
||||
ProfileInfoItem("Topic(s)", widget.topics.length),
|
||||
ProfileInfoItem("Session(s)", widget.sessionNames.length),
|
||||
ProfileInfoItem("Note(s)", provider.totalNotes),
|
||||
])),
|
||||
// SizedBox(
|
||||
|
@ -552,9 +576,10 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget sessionNotes(BuildContext context, SpeakersList eventsdetail,
|
||||
Widget sessionNotes(BuildContext context, EventSpeakersData eventsdetail,
|
||||
HcpProfileProvider provider) {
|
||||
sessionList = eventsdetail.sessionNames!;
|
||||
// sessionList = eventsdetail.sessionName!.split(',');
|
||||
sessionList = widget.sessionNames;
|
||||
return Container(
|
||||
color: EventsConstants.bgcolor,
|
||||
child: Column(
|
||||
|
@ -575,7 +600,8 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
decoration: BoxDecoration(
|
||||
border: Border.all(color: Colors.grey),
|
||||
borderRadius: BorderRadius.circular(4.0)),
|
||||
child: dropDown(underline: Container())),
|
||||
child:
|
||||
dropDown(underline: Container(), provider: provider)),
|
||||
SizedBox(
|
||||
height: 15,
|
||||
),
|
||||
|
@ -605,6 +631,43 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
focusedBorder: OutlineInputBorder(),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
// Text("Attach a file :"),
|
||||
// SizedBox(
|
||||
// width: 10,
|
||||
// ),
|
||||
CustomButton(
|
||||
backgroundColor:
|
||||
const Color.fromARGB(255, 233, 229, 229),
|
||||
onPressed: () async {
|
||||
// sectionItem.selectedValue = [];
|
||||
// sectionItem.extension = [];
|
||||
// sectionItem.fileName = [];
|
||||
await getEncodedFile();
|
||||
|
||||
setState(() {});
|
||||
},
|
||||
width: 120,
|
||||
height: 40,
|
||||
fontsize: 12,
|
||||
textColor: Colors.black,
|
||||
title: "Upload file"),
|
||||
SizedBox(
|
||||
width: 5,
|
||||
),
|
||||
Text(
|
||||
attachedFileName != "" ? attachedFileName : "",
|
||||
style: TextStyle(
|
||||
color: attachedFileName != ""
|
||||
? Colors.green
|
||||
: Colors.red),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
)),
|
||||
Align(
|
||||
|
@ -617,27 +680,32 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
onPressed: () async {
|
||||
//"Program Committee Admin. & Management"
|
||||
//setState(() {
|
||||
print("ADD : ${_selectedFruit} ${notesController.text}");
|
||||
if (notesController.text.length != 0 ||
|
||||
notesController.text != "" ||
|
||||
_selectedFruit != "" ||
|
||||
_selectedFruit != null) {
|
||||
notesController.text != "") {
|
||||
sessionNotesList
|
||||
.add("${_selectedFruit} \n\n ${notesController.text}");
|
||||
// });
|
||||
print(
|
||||
" eventid:${widget.eventid},hcp:${widget.eventsdetail.uniqueId}");
|
||||
print(" eventid:${widget.eventid},hcp:${widget.eventid}");
|
||||
|
||||
await provider.submitSessionNotes(eventsdetail,
|
||||
sessionsTopicsData!, notesController.text);
|
||||
|
||||
SessionNotesModel notesModel = SessionNotesModel(
|
||||
notes: notesController.text,
|
||||
addedBy: "user",
|
||||
addedDate: CustomDateFormatter().formatDate(),
|
||||
eventid: widget.eventid,
|
||||
hcpid: widget.eventsdetail.uniqueId,
|
||||
hcpid: widget.eventid,
|
||||
selectedSession: _selectedFruit);
|
||||
print(
|
||||
"${notesModel.addedBy},${notesModel.notes},${notesModel.addedDate},${notesModel.eventid},${notesModel.hcpid},${notesModel.selectedSession}");
|
||||
await provider.addSessionNotes(notesModel);
|
||||
_selectedFruit = null;
|
||||
sessionsTopicsData = null;
|
||||
notesController.clear();
|
||||
} else {
|
||||
print("something went wrong");
|
||||
}
|
||||
},
|
||||
heroTag: 'addnotes',
|
||||
|
@ -744,9 +812,72 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
);
|
||||
}
|
||||
|
||||
Widget topicsTab(SpeakersList eventsdetail) {
|
||||
print("${eventsdetail.sessionNames!.join(",").length} @@@lengtg");
|
||||
List<String> sessions = eventsdetail.sessionNames!;
|
||||
Future<void> getEncodedFile() async {
|
||||
String base64Image = '';
|
||||
var status = Platform.isAndroid
|
||||
? await Permission.manageExternalStorage.status
|
||||
: await Permission.storage.status;
|
||||
if (status.isGranted) {
|
||||
FilePickerResult? result =
|
||||
await FilePicker.platform.pickFiles(allowMultiple: true);
|
||||
|
||||
if (result != null) {
|
||||
print(result.files.first.path);
|
||||
print(result.files.last.path);
|
||||
for (var files in result.files) {
|
||||
File file = File(files.path!);
|
||||
print("check file path : ${file.path}");
|
||||
var fileName = file.path.split('/').last;
|
||||
// Get the application folder directory
|
||||
Directory? directory = Platform.isAndroid
|
||||
? await getExternalStorageDirectory() //FOR ANDROID
|
||||
: await getApplicationDocumentsDirectory();
|
||||
String newPath = ""; //FOR ios
|
||||
String convertedDirectoryPath = (directory?.path).toString();
|
||||
|
||||
print("see the converted directory path $convertedDirectoryPath");
|
||||
|
||||
newPath = "$convertedDirectoryPath/konectar/files";
|
||||
print("new path :$newPath");
|
||||
directory = Directory(newPath);
|
||||
if (!await directory.exists()) {
|
||||
await directory.create(recursive: true);
|
||||
}
|
||||
File newFile = await file.copy('${directory.path}/$fileName');
|
||||
print("new path is ${newFile.path}");
|
||||
final extension = p.extension(newFile.path);
|
||||
List<int> imageBytes = await newFile.readAsBytes();
|
||||
Uint8List imageUint8List = Uint8List.fromList(imageBytes);
|
||||
base64Image = base64Encode(imageUint8List);
|
||||
attachedFileName = fileName;
|
||||
// sectionItem.selectedValue!.add(base64Image);
|
||||
// sectionItem.extension!.add(extension);
|
||||
// sectionItem.fileName!.add(fileName);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
print("not permitted");
|
||||
await requestPermission(Platform.isAndroid
|
||||
? Permission.manageExternalStorage
|
||||
: Permission.storage);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> requestPermission(Permission permission) async {
|
||||
final status = await permission.request();
|
||||
|
||||
setState(() {
|
||||
print(status);
|
||||
// _permissionStatus = status;
|
||||
// print(_permissionStatus);
|
||||
});
|
||||
}
|
||||
|
||||
Widget topicsTab(
|
||||
EventSpeakersData eventsdetail, HcpProfileProvider provider) {
|
||||
//print("${eventsdetail.sessionName!.join(",").length} @@@lengtg");
|
||||
// List<String> sessions = eventsdetail.sessionName!.split(",");
|
||||
|
||||
return Container(
|
||||
width: double.maxFinite,
|
||||
padding: EdgeInsets.only(left: 8),
|
||||
|
@ -756,9 +887,10 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
),
|
||||
child: ListView.separated(
|
||||
padding: EdgeInsets.only(top: 10.0, left: 4.0),
|
||||
itemCount: sessions.length,
|
||||
itemCount: provider.sessionTopics.length,
|
||||
itemBuilder: (context, index) {
|
||||
List<String> topics = eventsdetail.topics!;
|
||||
List<String> topics =
|
||||
provider.sessionTopics[index].eventTopics!.split('|');
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
|
@ -774,7 +906,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
// overflow: TextOverflow.ellipsis,
|
||||
// ),
|
||||
Text(
|
||||
"${index + 1}.${sessions[index]}",
|
||||
"${index + 1}.${provider.sessionTopics[index].sessionName}",
|
||||
|
||||
style: TextStyle(
|
||||
// fontFamily: "SourceSerif",
|
||||
|
@ -906,7 +1038,7 @@ class _HCPProfileScreenState extends State<HCPProfileScreen> {
|
|||
listen: false)
|
||||
.intConfigDataList[0]
|
||||
.name,
|
||||
title: "${widget.eventsdetail.hcpFullName}",
|
||||
title: "${widget.kolFullName}",
|
||||
)));
|
||||
// Navigator.push(
|
||||
// context,
|
||||
|
|
|
@ -7,7 +7,9 @@ import 'package:flutter/services.dart';
|
|||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:konectar_events/contacts_module/model_class/k2_api_model/kol_event_k2.dart';
|
||||
import 'package:konectar_events/model/affiliationsmodel.dart';
|
||||
import 'package:konectar_events/model/events_details.dart';
|
||||
import 'package:konectar_events/model/events_list_resp_2.dart';
|
||||
import 'package:konectar_events/model/events_speakers_k1.dart';
|
||||
import 'package:konectar_events/model/eventsdetailmodel.dart';
|
||||
import 'package:konectar_events/model/eventsmodel.dart';
|
||||
import 'package:konectar_events/model/eventsoverview.dart';
|
||||
|
@ -35,7 +37,7 @@ class EventsProvider extends ChangeNotifier {
|
|||
List<Eventsdetail> srcheventdetailList = [];
|
||||
List<String> selectedTherapeutic = [];
|
||||
List<SessionNotesModel> addedSessionNotes = [];
|
||||
List<SpeakersList> speakersList = [];
|
||||
List<EventSpeakersData> speakersList = [];
|
||||
List<String> myEventids = [];
|
||||
bool showCheckbox = false;
|
||||
bool offlineExists = false;
|
||||
|
@ -52,7 +54,7 @@ class EventsProvider extends ChangeNotifier {
|
|||
List<FlutterHashtag> kFlutterHashtags = [];
|
||||
List<TopicsCloudData> topics = [];
|
||||
List<Specialty> specialtyList = [];
|
||||
OverviewData? overviewData;
|
||||
EventsOverviewData? overviewData;
|
||||
List<Affiliations> affiliations = [];
|
||||
|
||||
late StreamSubscription<List<ConnectivityResult>> connectivitySubscription;
|
||||
|
@ -73,33 +75,48 @@ class EventsProvider extends ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
OnSearch(String searchtxt) async {
|
||||
print("Searching.......");
|
||||
// searchtxt = searchtxt.toLowerCase();
|
||||
isSearch = true;
|
||||
if (isFavSeleted) {
|
||||
searchList = eventList
|
||||
.where((element) => element.name1!.toLowerCase().contains(searchtxt))
|
||||
// (element.city != "" &&
|
||||
// element.city!.toLowerCase().contains(searchtxt)) ||
|
||||
// (element.region != "" &&
|
||||
// element.region!.toLowerCase().contains(searchtxt)) ||
|
||||
// (element.country != "" &&
|
||||
// element.country!.toLowerCase().contains(searchtxt)))
|
||||
.toList();
|
||||
} else {
|
||||
eventList =
|
||||
await ApiCall().getSearchedEventsFromK2(1, "event_name", searchtxt);
|
||||
// searchList = eventList
|
||||
// .where((element) => element.name1!.toLowerCase().contains(searchtxt))
|
||||
// // element.city!.toLowerCase().contains(searchtxt) ||
|
||||
// // element.region!.toLowerCase().contains(searchtxt) ||
|
||||
// // element.country!.toLowerCase().contains(searchtxt))
|
||||
// .toList();
|
||||
bool checkIfUserInterested(String eventid) {
|
||||
bool user = false;
|
||||
if (eventList.isNotEmpty) {
|
||||
int index = eventList.indexWhere(
|
||||
(element) => element.eventId == eventid,
|
||||
);
|
||||
print("FOR EVENT ID :$eventid : ${eventList[index].eventUserInterest}");
|
||||
user = eventList[index].eventUserInterest ?? false;
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
print("###$searchList@@@");
|
||||
notifyListeners();
|
||||
List<EventsList> OnSearch(String searchtxt) {
|
||||
print("Searching.......");
|
||||
// // searchtxt = searchtxt.toLowerCase();
|
||||
// isSearch = true;
|
||||
// if (isFavSeleted) {
|
||||
// searchList = eventList
|
||||
// .where((element) => element.name1!.toLowerCase().contains(searchtxt))
|
||||
// // (element.city != "" &&
|
||||
// // element.city!.toLowerCase().contains(searchtxt)) ||
|
||||
// // (element.region != "" &&
|
||||
// // element.region!.toLowerCase().contains(searchtxt)) ||
|
||||
// // (element.country != "" &&
|
||||
// // element.country!.toLowerCase().contains(searchtxt)))
|
||||
// .toList();
|
||||
// } else {
|
||||
// eventList =
|
||||
// await ApiCall().getSearchedEventsFromK2(1, "event_name", searchtxt);
|
||||
// // searchList = eventList
|
||||
// // .where((element) => element.name1!.toLowerCase().contains(searchtxt))
|
||||
// // // element.city!.toLowerCase().contains(searchtxt) ||
|
||||
// // // element.region!.toLowerCase().contains(searchtxt) ||
|
||||
// // // element.country!.toLowerCase().contains(searchtxt))
|
||||
// // .toList();
|
||||
// }
|
||||
|
||||
List<EventsList> searchList = eventList
|
||||
..where((element) => element.name1!.toLowerCase().contains(searchtxt));
|
||||
return searchList;
|
||||
// print("###$searchList@@@");
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
bool ifOfflineExists(String eventid) {
|
||||
|
@ -118,15 +135,12 @@ class EventsProvider extends ChangeNotifier {
|
|||
return offlineExists;
|
||||
}
|
||||
|
||||
Future<void> getSessionCount(String eventid, String event_unique_id) async {
|
||||
getSessionCount() {
|
||||
List<String> sessions = [];
|
||||
eventSessionCount = 0;
|
||||
Map<String, dynamic> data =
|
||||
(await ApiCall().getSpeakersFromK2(0, eventid, event_unique_id));
|
||||
speakercount = data["count"];
|
||||
List<SpeakersList> speakersList = data["list"];
|
||||
|
||||
for (var obj in speakersList) {
|
||||
sessions.addAll(obj.sessionNames!);
|
||||
sessions.addAll(obj.sessionName!.split(','));
|
||||
}
|
||||
print("Count ${sessions.toSet().toList().length}");
|
||||
print("Count2 ${sessions.toList().length}");
|
||||
|
@ -235,6 +249,11 @@ class EventsProvider extends ChangeNotifier {
|
|||
await saveEventsData(events);
|
||||
}
|
||||
}
|
||||
|
||||
if (searchtxt != "") {
|
||||
return OnSearch(searchtxt!);
|
||||
}
|
||||
//add to favs old
|
||||
if (myEventids.isNotEmpty) {
|
||||
for (var events in eventList) {
|
||||
if (myEventids.contains(events.eventId)) {
|
||||
|
@ -288,15 +307,61 @@ class EventsProvider extends ChangeNotifier {
|
|||
//notifyListeners();
|
||||
}
|
||||
|
||||
Future<List<SpeakersList>> getSpeakersDetails(int page, String eventid,
|
||||
String event_unique_id, String searchkey) async {
|
||||
Map<String, dynamic> data = (await ApiCall().getSpeakersFromK2(
|
||||
page, eventid, event_unique_id,
|
||||
searchkey: searchkey));
|
||||
Future<List<EventSpeakersData>> getInitialSpeakersDetails(String eventid,
|
||||
{required String searchkey}) async {
|
||||
speakersList = (await ApiCall().getEventsSpeakersFromK1(eventid));
|
||||
getSessionCount();
|
||||
if (searchkey.length != 0) {
|
||||
List<EventSpeakersData> searchspeakers = speakersList
|
||||
.where((element) =>
|
||||
element.kolFullName!.toLowerCase().contains(searchkey))
|
||||
.toList();
|
||||
|
||||
if (searchspeakers.isEmpty) {
|
||||
searchspeakers = speakersList
|
||||
.where((element) =>
|
||||
element.eventTopics!.toLowerCase().contains(searchkey))
|
||||
.toList();
|
||||
}
|
||||
|
||||
return searchspeakers;
|
||||
} else {
|
||||
return await ApiCall().getEventsSpeakersFromK1(eventid);
|
||||
}
|
||||
|
||||
//return speakersList = (await ApiCall().getEventsSpeakersFromK1(eventid));
|
||||
// notifyListeners();
|
||||
}
|
||||
|
||||
Future<List<EventSpeakersData>> getSpeakersDetails(int page, String eventid,
|
||||
String event_unique_id, String searchkey, int lastIndex) async {
|
||||
// speakercount = data["count"];
|
||||
speakersList = data["list"];
|
||||
speakersList = (await ApiCall().getEventsSpeakersFromK1(eventid));
|
||||
// getSessionCount();
|
||||
// if (speakersList.isEmpty) {
|
||||
//
|
||||
// }
|
||||
if (page == 0) {
|
||||
speakersList = speakersList.getRange(0, lastIndex).toList();
|
||||
} else if (page > 0) {
|
||||
int nextIndex = lastIndex + 40;
|
||||
if (nextIndex < speakersList.length) {
|
||||
speakersList = speakersList.getRange(lastIndex, nextIndex).toList();
|
||||
} else {
|
||||
speakersList =
|
||||
speakersList.getRange(lastIndex, speakersList.length - 1).toList();
|
||||
}
|
||||
}
|
||||
|
||||
// if (searchkey.length != 0) {
|
||||
// List<EventSpeakersData> searchspeakers = speakersList
|
||||
// .where((element) =>
|
||||
// element.kolFullName!.toLowerCase().contains(searchkey))
|
||||
// .toList();
|
||||
// return searchspeakers;
|
||||
// } else {
|
||||
return speakersList;
|
||||
// }
|
||||
//notifyListeners();
|
||||
}
|
||||
|
||||
|
@ -434,7 +499,11 @@ class EventsProvider extends ChangeNotifier {
|
|||
|
||||
FutureOr getSpecialtyData(EventsList event) async {
|
||||
specialtyList = (await ApiCall().specialtyOfSpeakers(
|
||||
eventid: event.eventId!, startDate: event.start!, endDate: event.end!));
|
||||
eventid: event.eventId!,
|
||||
startDate: CustomDateFormatter().formatYearDate(
|
||||
CustomDateFormatter().convertStringToDate(event.start!)),
|
||||
endDate: CustomDateFormatter().formatYearDate(
|
||||
CustomDateFormatter().convertStringToDate(event.end!))));
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:hive_flutter/hive_flutter.dart';
|
||||
import 'package:konectar_events/model/events_speakers_k1.dart';
|
||||
import 'package:konectar_events/model/eventsdetailmodel.dart';
|
||||
import 'package:konectar_events/model/eventspeakers.dart';
|
||||
import 'package:konectar_events/model/sessionnotesmodel.dart';
|
||||
import 'package:konectar_events/model/sessionstopics_model.dart';
|
||||
import 'package:konectar_events/model/topics_cloud_model.dart';
|
||||
import 'package:konectar_events/utils/apicall.dart';
|
||||
import 'package:konectar_events/widgets/word_cloud.dart';
|
||||
|
@ -16,8 +19,27 @@ class HcpProfileProvider extends ChangeNotifier {
|
|||
int totalTopics = 0;
|
||||
int totalSessions = 0;
|
||||
int totalNotes = 0;
|
||||
List<SessionsTopicsData> sessionTopics = [];
|
||||
late Box<SessionNotesModel> box;
|
||||
|
||||
Future<void> getSessionTopics(EventSpeakersData detail) async {
|
||||
sessionTopics = await ApiCall().getSessionsTopics(detail.eid!,
|
||||
detail.kolId == "0" ? detail.hcpPinAlias! : detail.kolId!, detail.kId!);
|
||||
totalSessions = sessionTopics.length;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<dynamic> submitSessionNotes(EventSpeakersData detail,
|
||||
SessionsTopicsData sessionsTopicsData, String notes) async {
|
||||
var data = await ApiCall().addSessionNotes(
|
||||
sessionsTopicsData.kolEventsId!,
|
||||
detail.kolId == "0" ? detail.hcpPinAlias! : detail.kolId!,
|
||||
detail.eventAttendeesId!,
|
||||
detail.kId!,
|
||||
notes);
|
||||
return data;
|
||||
}
|
||||
|
||||
getCounts(Eventsdetail eventsdetail) {
|
||||
List<String> topics = eventsdetail.eventTopics!.split("|");
|
||||
totalTopics = topics.length;
|
||||
|
@ -34,9 +56,9 @@ class HcpProfileProvider extends ChangeNotifier {
|
|||
}
|
||||
|
||||
List<SessionNotesModel> getSessionNotesList(
|
||||
String eid, SpeakersList eventsdetail) {
|
||||
String eid, EventSpeakersData eventsdetail) {
|
||||
print("Check hcp id");
|
||||
print("$eid,${eventsdetail.uniqueId}");
|
||||
print("$eid,${eventsdetail.id}");
|
||||
sessionNotesList = sessionNotesList
|
||||
.where(
|
||||
(element) => element.eventid == eid,
|
||||
|
@ -51,10 +73,10 @@ class HcpProfileProvider extends ChangeNotifier {
|
|||
String fname = element.hcpname!.split(" ")[0];
|
||||
String lname = element.hcpname!.split(" ").last;
|
||||
print("${element.hcpname}");
|
||||
return fname.toLowerCase() == eventsdetail.hcpFullName!.toLowerCase() &&
|
||||
lname.toLowerCase() == eventsdetail.hcpFullName!.toLowerCase();
|
||||
return fname.toLowerCase() == eventsdetail.kolFullName!.toLowerCase() &&
|
||||
lname.toLowerCase() == eventsdetail.kolFullName!.toLowerCase();
|
||||
} else {
|
||||
return element.hcpid == eventsdetail.uniqueId;
|
||||
return element.hcpid == eventsdetail.id;
|
||||
}
|
||||
}).toList();
|
||||
totalNotes = sessionNotesList.length;
|
||||
|
|
|
@ -60,11 +60,11 @@ class _HomeDrawerState extends State<HomeDrawer> {
|
|||
labelName: 'HelpDesk',
|
||||
icon: Icon(Icons.help),
|
||||
),
|
||||
// DrawerList(
|
||||
// index: DrawerIndex.Invite,
|
||||
// labelName: 'Invite Friend',
|
||||
// icon: Icon(Icons.group),
|
||||
// ),
|
||||
DrawerList(
|
||||
index: DrawerIndex.Invite,
|
||||
labelName: 'Medical Insight',
|
||||
icon: Icon(Icons.group),
|
||||
),
|
||||
// DrawerList(
|
||||
// index: DrawerIndex.Share,
|
||||
// labelName: 'Rate the app',
|
||||
|
|
|
@ -598,6 +598,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.10+1"
|
||||
flutter_svg_provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_svg_provider
|
||||
sha256: cda47ab350671ba51ae4605d48f4c82fa5a2c399d22ebda367c1b407234c5048
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.7"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
|
|
@ -93,6 +93,7 @@ dependencies:
|
|||
infinite_scroll_pagination: ^4.0.0
|
||||
animations: ^2.0.11
|
||||
overlay_support: ^2.1.0
|
||||
flutter_svg_provider: ^1.0.7
|
||||
|
||||
dev_dependencies:
|
||||
|
||||
|
@ -146,7 +147,7 @@ flutter:
|
|||
- assets/icon/
|
||||
- assets/introduction_animation/
|
||||
- assets/response.json
|
||||
- shorebird.yaml
|
||||
# - shorebird.yaml
|
||||
- assets/
|
||||
# - assets/events.json
|
||||
# - images/a_dot_ham.jpeg
|
||||
|
|