Merge branch 'merge_landscape_into_dev' into 'development'

Merge landscape into dev

See merge request Cloud_Solution/driver-app!22
logut
Elham 6 years ago
commit 151abcf955

@ -0,0 +1,153 @@
class PendingOrdersRes {
int rowID;
int orderID;
String firstName;
String middleName;
String lastName;
int gender;
String nationalityID;
String mobileNumber;
String preferredLanguage;
int driverID;
int statusID;
bool ispaused;
int groupID;
String description;
String descriptionN;
double longitude;
double latitude;
Null amount;
String orderCreatedOn;
Null ePharmacyOrderNo;
int projectID;
String appointmentNo;
String dischargeID;
String patientID;
bool patientOutSA;
int distanceInKilometers;
List<ItemsQuantitiesList> itemsQuantitiesList;
PendingOrdersRes(
{this.rowID,
this.orderID,
this.firstName,
this.middleName,
this.lastName,
this.gender,
this.nationalityID,
this.mobileNumber,
this.preferredLanguage,
this.driverID,
this.statusID,
this.ispaused,
this.groupID,
this.description,
this.descriptionN,
this.longitude,
this.latitude,
this.amount,
this.orderCreatedOn,
this.ePharmacyOrderNo,
this.projectID,
this.appointmentNo,
this.dischargeID,
this.patientID,
this.patientOutSA,
this.distanceInKilometers,
this.itemsQuantitiesList});
PendingOrdersRes.fromJson(Map<String, dynamic> json) {
rowID = json['RowID'];
orderID = json['OrderID'];
firstName = json['FirstName'];
middleName = json['MiddleName'];
lastName = json['LastName'];
gender = json['Gender'];
nationalityID = json['NationalityID'];
mobileNumber = json['MobileNumber'];
preferredLanguage = json['PreferredLanguage'];
driverID = json['DriverID'];
statusID = json['StatusID'];
ispaused = json['Ispaused'];
groupID = json['GroupID'];
description = json['Description'];
descriptionN = json['DescriptionN'];
longitude = json['Longitude'];
latitude = json['Latitude'];
amount = json['Amount'];
orderCreatedOn = json['OrderCreatedOn'];
ePharmacyOrderNo = json['ePharmacyOrderNo'];
projectID = json['ProjectID'];
appointmentNo = json['AppointmentNo'];
dischargeID = json['DischargeID'];
patientID = json['PatientID'];
patientOutSA = json['PatientOutSA'];
distanceInKilometers = json['DistanceInKilometers'];
if (json['ItemsQuantitiesList'] != null) {
itemsQuantitiesList = new List<ItemsQuantitiesList>();
json['ItemsQuantitiesList'].forEach((v) {
itemsQuantitiesList.add(new ItemsQuantitiesList.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['RowID'] = this.rowID;
data['OrderID'] = this.orderID;
data['FirstName'] = this.firstName;
data['MiddleName'] = this.middleName;
data['LastName'] = this.lastName;
data['Gender'] = this.gender;
data['NationalityID'] = this.nationalityID;
data['MobileNumber'] = this.mobileNumber;
data['PreferredLanguage'] = this.preferredLanguage;
data['DriverID'] = this.driverID;
data['StatusID'] = this.statusID;
data['Ispaused'] = this.ispaused;
data['GroupID'] = this.groupID;
data['Description'] = this.description;
data['DescriptionN'] = this.descriptionN;
data['Longitude'] = this.longitude;
data['Latitude'] = this.latitude;
data['Amount'] = this.amount;
data['OrderCreatedOn'] = this.orderCreatedOn;
data['ePharmacyOrderNo'] = this.ePharmacyOrderNo;
data['ProjectID'] = this.projectID;
data['AppointmentNo'] = this.appointmentNo;
data['DischargeID'] = this.dischargeID;
data['PatientID'] = this.patientID;
data['PatientOutSA'] = this.patientOutSA;
data['DistanceInKilometers'] = this.distanceInKilometers;
if (this.itemsQuantitiesList != null) {
data['ItemsQuantitiesList'] =
this.itemsQuantitiesList.map((v) => v.toJson()).toList();
}
return data;
}
}
class ItemsQuantitiesList {
String itemName;
int productID;
int quantity;
ItemsQuantitiesList({this.itemName, this.productID, this.quantity});
ItemsQuantitiesList.fromJson(Map<String, dynamic> json) {
itemName = json['ItemName'];
productID = json['ProductID'];
quantity = json['Quantity'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ItemName'] = this.itemName;
data['ProductID'] = this.productID;
data['Quantity'] = this.quantity;
return data;
}
}

@ -1,12 +1,12 @@
import 'package:driverapp/config/config.dart'; import 'package:driverapp/config/config.dart';
import 'package:driverapp/core/model/pending_orders/pending_orders_model.dart'; import 'package:driverapp/core/model/pending_orders/pending_orders_req_model.dart';
import 'package:driverapp/core/model/pending_orders/pending_orders_res_model.dart';
import 'package:driverapp/core/model/scan_qr/scan_qr_request_model.dart'; import 'package:driverapp/core/model/scan_qr/scan_qr_request_model.dart';
import 'package:driverapp/core/service/base_service.dart'; import 'package:driverapp/core/service/base_service.dart';
class OrdersService extends BaseService { class OrdersService extends BaseService {
List<PendingOrders> _orders = List(); List<PendingOrdersRes> _orders = List();
List<PendingOrdersRes> get orders => _orders;
List<PendingOrders> get orders => _orders;
bool isOrderInserted; bool isOrderInserted;
PendingOrders _requestGetPendingOrders = PendingOrders( PendingOrders _requestGetPendingOrders = PendingOrders(
@ -26,7 +26,7 @@ class OrdersService extends BaseService {
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
_orders.clear(); _orders.clear();
response['PatientER_Delivery_GetAllOrderList'].forEach((order) { response['PatientER_Delivery_GetAllOrderList'].forEach((order) {
_orders.add(PendingOrders.fromJson(order)); _orders.add(PendingOrdersRes.fromJson(order));
}); });
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
@ -35,6 +35,7 @@ class OrdersService extends BaseService {
} catch (e) { } catch (e) {
hasError = true; hasError = true;
super.error = error; super.error = error;
throw e; throw e;
} }
} }

@ -1,14 +1,14 @@
import 'package:driverapp/core/enum/viewstate.dart'; import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/pending_orders/pending_orders_model.dart'; import 'package:driverapp/core/model/pending_orders/pending_orders_res_model.dart';
import 'package:driverapp/core/service/orders_service.dart'; import 'package:driverapp/core/service/orders_service.dart';
import 'package:driverapp/core/model/pending_orders/pending_orders_req_model.dart';
import '../../locator.dart'; import '../../locator.dart';
import 'base_view_model.dart'; import 'base_view_model.dart';
class OrdersViewModel extends BaseViewModel { class OrdersViewModel extends BaseViewModel {
OrdersService _pendingOrdersService = locator<OrdersService>(); OrdersService _pendingOrdersService = locator<OrdersService>();
List<PendingOrders> get orders => _pendingOrdersService.orders; List<PendingOrdersRes> get orders => _pendingOrdersService.orders;
Future getPendingOrders() async { Future getPendingOrders() async {
setState(ViewState.Busy); setState(ViewState.Busy);
@ -20,7 +20,6 @@ class OrdersViewModel extends BaseViewModel {
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future insertOrder() async { Future insertOrder() async {
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);
await _pendingOrdersService.insertOrder(); await _pendingOrdersService.insertOrder();

@ -23,8 +23,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
int orderId; int orderId;
return BaseView<OrdersViewModel>( return BaseView<OrdersViewModel>(
onModelReady: (model) => model.getPendingOrders(), onModelReady: (model) => model.getPendingOrders(),
builder: builder: (BuildContext context, OrdersViewModel model, Widget child) =>
(BuildContext context, OrdersViewModel model, Widget child) =>
AppScaffold( AppScaffold(
body: Column( body: Column(
// mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
@ -92,14 +91,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0), padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Container( child: Container(
height: MediaQuery height: MediaQuery.of(context).size.height * 0.15,
.of(context) width: MediaQuery.of(context).size.width * 0.44,
.size
.height * 0.15,
width: MediaQuery
.of(context)
.size
.width * 0.44,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
gradient: LinearGradient( gradient: LinearGradient(
@ -112,7 +105,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
padding: EdgeInsets.all(10.0), padding: EdgeInsets.all(10.0),
child: Column( child: Column(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceBetween, MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
Text( Text(
'You Have', 'You Have',
@ -145,15 +138,13 @@ class _DashboardScreenState extends State<DashboardScreen> {
padding: EdgeInsets.only(right: 9.5), padding: EdgeInsets.only(right: 9.5),
child: Image.asset( child: Image.asset(
'assets/images/closed_box.png', 'assets/images/closed_box.png',
height: MediaQuery height: MediaQuery.of(context)
.of(context) .size
.size .height *
.height *
0.09, 0.09,
width: MediaQuery width: MediaQuery.of(context)
.of(context) .size
.size .width *
.width *
0.20, 0.20,
//fit: BoxFit.cover, //fit: BoxFit.cover,
)), )),
@ -174,10 +165,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
padding: EdgeInsets.symmetric(horizontal: 10.0), padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Container( child: Container(
height: MediaQuery.of(context).size.height * 0.15, height: MediaQuery.of(context).size.height * 0.15,
width: MediaQuery width: MediaQuery.of(context).size.width * 0.44,
.of(context)
.size
.width * 0.44,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
gradient: LinearGradient( gradient: LinearGradient(
@ -191,7 +179,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
padding: EdgeInsets.all(12.0), padding: EdgeInsets.all(12.0),
child: Column( child: Column(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceEvenly, MainAxisAlignment.spaceEvenly,
children: <Widget>[ children: <Widget>[
Text( Text(
'You Have', 'You Have',
@ -247,14 +235,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
child: InkWell( child: InkWell(
child: Container( child: Container(
height: MediaQuery height: MediaQuery.of(context).size.height * 0.16,
.of(context) width: MediaQuery.of(context).size.width * 0.50,
.size
.height * 0.16,
width: MediaQuery
.of(context)
.size
.width * 0.50,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
gradient: LinearGradient(colors: [ gradient: LinearGradient(colors: [
@ -270,15 +252,9 @@ class _DashboardScreenState extends State<DashboardScreen> {
Image.asset( Image.asset(
'assets/images/qr_code.png', 'assets/images/qr_code.png',
width: width:
MediaQuery MediaQuery.of(context).size.width * 0.25,
.of(context)
.size
.width * 0.25,
height: height:
MediaQuery MediaQuery.of(context).size.height * 0.14,
.of(context)
.size
.height * 0.14,
fit: BoxFit.cover, fit: BoxFit.cover,
) )
], ],
@ -352,10 +328,10 @@ class _DashboardScreenState extends State<DashboardScreen> {
], ],
), ),
onTap: () => Navigator.push( onTap: () => Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => OrdersListScreen()), builder: (context) => OrdersListScreen()),
)), )),
], ],
), ),
], ],
@ -366,16 +342,13 @@ class _DashboardScreenState extends State<DashboardScreen> {
shrinkWrap: true, shrinkWrap: true,
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
itemCount: //model.orders == null ? 0 : model.orders.length, itemCount: //model.orders == null ? 0 : model.orders.length,
3, 3,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Padding( return Padding(
padding: EdgeInsets.symmetric(horizontal: 12.2), padding: EdgeInsets.symmetric(horizontal: 12.2),
child: InkWell( child: InkWell(
child: RoundedContainer( child: RoundedContainer(
height: MediaQuery height: MediaQuery.of(context).size.height * 0.108,
.of(context)
.size
.height * 0.108,
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
@ -388,15 +361,10 @@ class _DashboardScreenState extends State<DashboardScreen> {
padding: EdgeInsets.only(left: 22.0), padding: EdgeInsets.only(left: 22.0),
child: Image.asset( child: Image.asset(
'assets/images/location.png', 'assets/images/location.png',
height: MediaQuery height:
.of(context) MediaQuery.of(context).size.height *
.size 0.10,
.height * width: MediaQuery.of(context).size.width *
0.10,
width: MediaQuery
.of(context)
.size
.width *
0.09, 0.09,
), ),
) )
@ -407,25 +375,28 @@ class _DashboardScreenState extends State<DashboardScreen> {
Expanded( Expanded(
flex: 3, flex: 3,
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment: CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Text( Padding(
model.orders[index].firstName + padding: EdgeInsets.only(top: 5.0),
' ' + child: Text(
model.orders[index].lastName, model.orders[index].firstName +
style: TextStyle(fontSize: 18.0), ' ' +
model.orders[index].lastName,
style: TextStyle(fontSize: 18.0),
),
), ),
Text( Text(
model.orders[index].mobileNumber, model.orders[index].mobileNumber,
style: TextStyle( style: TextStyle(
color: Color(0xff30B7B9), color: Color(0xff30B7B9),
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 15.0), fontSize: 15.0,
),
), ),
Expanded( Expanded(
child: Text( child: Text(
'Olaya ST, Behind kfc next to king ,Olaya ST ', 'Olaya ST, Behind kfc next to king ,',
style: TextStyle(color: Colors.black45), style: TextStyle(color: Colors.black45),
), ),
), ),
@ -496,5 +467,4 @@ class _DashboardScreenState extends State<DashboardScreen> {
AppToast.showSuccessToast(message: "Order Added"); AppToast.showSuccessToast(message: "Order Added");
} }
} }
} }

@ -41,11 +41,10 @@ class DeliveryConfirmedPage extends StatelessWidget {
Container( Container(
width: 300, width: 300,
height: 300, height: 300,
padding: EdgeInsets.only(top:60), padding: EdgeInsets.only(top: 60),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white10, color: Colors.white10,
shape: BoxShape.circle shape: BoxShape.circle),
),
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Icon( Icon(
@ -79,7 +78,6 @@ class DeliveryConfirmedPage extends StatelessWidget {
), ),
], ],
), ),
Stack( Stack(
children: <Widget>[ children: <Widget>[
Container( Container(
@ -108,7 +106,8 @@ class DeliveryConfirmedPage extends StatelessWidget {
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
color: Colors.orangeAccent, color: Colors.orangeAccent,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(10.0), borderRadius:
new BorderRadius.circular(10.0),
), ),
icon: Icon( icon: Icon(
Icons.mode_edit, Icons.mode_edit,
@ -122,13 +121,18 @@ class DeliveryConfirmedPage extends StatelessWidget {
), ),
onPressed: () {}, onPressed: () {},
), ),
SizedBox(height: 20,), SizedBox(
height: 20,
),
FlatButton( FlatButton(
color: Color(0xff41bdbb), color: Color(0xff41bdbb),
padding: EdgeInsets.only(right: 100, left: 100), padding:
EdgeInsets.only(right: 100, left: 100),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(18.0), borderRadius:
side: BorderSide(color: Color(0xff41bdbb)), new BorderRadius.circular(18.0),
side:
BorderSide(color: Color(0xff41bdbb)),
), ),
child: Text( child: Text(
TranslationBase TranslationBase
@ -148,8 +152,7 @@ class DeliveryConfirmedPage extends StatelessWidget {
itemId: item.driverID, itemId: item.driverID,
customerFirstName: item.firstName, customerFirstName: item.firstName,
customerLastName: item.lastName, customerLastName: item.lastName,
mobileNo: item.mobileNumber mobileNo: item.mobileNumber),
),
], ],
), ),
], ],
@ -161,4 +164,3 @@ class DeliveryConfirmedPage extends StatelessWidget {
); );
} }
} }

@ -1,9 +1,9 @@
import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:driverapp/config/size_config.dart';
import 'package:driverapp/core/viewModels/orders_view_model.dart';
import '../base/base_view.dart'; import '../base/base_view.dart';
import 'package:flutter/cupertino.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
class OrdersListScreen extends StatefulWidget { class OrdersListScreen extends StatefulWidget {
@override @override
@ -15,142 +15,127 @@ class _OrdersListScreenState extends State<OrdersListScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<OrdersViewModel>( return BaseView<OrdersViewModel>(
onModelReady: (model) => model.getPendingOrders(), onModelReady: (model) => model.getPendingOrders(),
builder: builder: (BuildContext context, OrdersViewModel model, Widget child) =>
(BuildContext context, OrdersViewModel model, Widget child) =>
Scaffold( Scaffold(
appBar: AppBar( appBar: AppBar(
centerTitle: true, centerTitle: true,
backgroundColor: Color(0xffF4F9FA), backgroundColor: Color(0xffF4F9FA),
title: Text( title: Text(
'Your Delivery Que', 'Your Delivery Que',
),
),
body: Column(
children: <Widget>[
Center(
child: Text(
'Nearest',
style: TextStyle(
color: Color(0xff30B7B9),
fontSize: 18.0,
fontWeight: FontWeight.w400),
), ),
), ),
body: Column( Expanded(
children: <Widget>[ child: ListView.builder(
Center( itemCount: model.orders == null ? 0 : model.orders.length,
child: Text( scrollDirection: Axis.vertical,
'Nearest', shrinkWrap: true,
style: TextStyle( itemBuilder: (BuildContext context, int index) {
color: Color(0xff30B7B9), return Padding(
fontSize: 18.0, padding: EdgeInsets.symmetric(horizontal: 12.2),
fontWeight: FontWeight.w400), child: RoundedContainer(
), height: MediaQuery.of(context).orientation ==
),
Expanded(
child: ListView.builder(
itemCount: model.orders == null ? 0 : model.orders.length,
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 12.2),
child: RoundedContainer(
height: MediaQuery
.of(context)
.orientation ==
Orientation.portrait Orientation.portrait
? MediaQuery ? MediaQuery.of(context).size.height * 0.107
.of(context) : MediaQuery.of(context).size.height * 0.18,
.size child: Row(
.height * 0.107 mainAxisAlignment: MainAxisAlignment.spaceBetween,
: MediaQuery children: <Widget>[
.of(context) Expanded(
.size flex: 1,
.height * 0.18, child: Column(
child: Row( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween, children: <Widget>[
children: <Widget>[ Padding(
Expanded( padding: EdgeInsets.only(left: 22.0),
flex: 1, child: Image.asset(
child: Column( 'assets/images/location.png',
mainAxisAlignment: MainAxisAlignment.center, height:
children: <Widget>[ MediaQuery.of(context).size.height *
Padding(
padding: EdgeInsets.only(left: 22.0),
child: Image.asset(
'assets/images/location.png',
height:
MediaQuery
.of(context)
.size
.height *
0.101, 0.101,
), ),
),
],
), ),
],
),
),
if (model.orders.length != 0)
Expanded(
flex: 3,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 10.0),
child: Text(
model.orders[index].firstName +
' ' +
model.orders[index].lastName,
style: TextStyle(fontSize: 18.0),
),
),
Text(
model.orders[index].mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0),
),
Expanded(
child: Text(
'Olaya ST, Behind kfc next to king ',
style: TextStyle(color: Colors.black45),
),
)
],
), ),
if (model.orders.length != 0) ),
Padding(
padding: EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded( Expanded(
flex: 3, child: CircleAvatar(
child: Column( backgroundColor: Colors.black45,
crossAxisAlignment: CrossAxisAlignment radius: 28.0,
.start, child: CircleAvatar(
children: <Widget>[ backgroundColor: Colors.white,
Expanded( maxRadius: 25.1,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text( child: Text(
model.orders[index].firstName + '3 K.m \n away',
' ' +
model.orders[index].lastName,
style: TextStyle(fontSize: 18.0),
),
),
Text(
model.orders[index].mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0),
),
Expanded(
child: Text(
'Olaya ST, Behind kfc next to king ',
style: TextStyle( style: TextStyle(
color: Colors.black45), color: Color(0xff30B7B9),
), fontSize: 12.5,
) fontWeight: FontWeight.w600),
],
),
),
Padding(
padding: EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: CircleAvatar(
backgroundColor: Colors.black45,
radius: 28.0,
child: CircleAvatar(
backgroundColor: Colors.white,
maxRadius: 25.1,
child: Padding(
padding: const EdgeInsets.all(
8.0),
child: Text(
'3 K.m \n away',
style: TextStyle(
color: Color(0xff30B7B9),
fontSize: 12.5,
fontWeight: FontWeight
.w600),
),
),
), ),
), ),
) ),
], ),
), )
), ],
], ),
), ),
), ],
); ),
}), ),
), );
], }),
), ),
), ],
),
),
); );
} }
} }

Loading…
Cancel
Save