From d862049b457ca6af9384d722ab23cab8ef7bd96e Mon Sep 17 00:00:00 2001 From: Phaung Phaung Date: Fri, 10 Sep 2021 14:29:55 +0630 Subject: [PATCH] null safety --- lib/pages/delivery/delivery_info.dart | 3 +- lib/pages/delivery/delivery_list_row.dart | 1 + .../delivery_address_editor.dart | 1 + .../delivery_address_row.dart | 1 + lib/pages/discount/discount_editor.dart | 1 + lib/pages/discount/discount_list_row.dart | 1 + lib/pages/faq/faq_edit_page.dart | 1 + lib/pages/faq/widgets.dart | 8 +++--- .../fcs_shipment/fcs_shipment_editor.dart | 2 +- lib/pages/profile/profile_currency_edit.dart | 4 +-- lib/pages/rates/cargo_editor.dart | 7 +++-- lib/pages/rates/cargo_type_list.dart | 4 +-- lib/pages/rates/custom_editor.dart | 9 +++--- lib/pages/rates/custom_list.dart | 10 +++++-- lib/pages/rates/custom_row.dart | 1 + lib/pages/rates/shipment_rates.dart | 5 ++-- lib/pages/rates/shipment_rates_calculate.dart | 5 ++-- lib/pages/staff/staff_editor.dart | 19 +++++++------ lib/pages/staff/staff_list.dart | 3 +- lib/pages/user_search/user_list_row.dart | 8 +++--- lib/pages/user_search/user_serach.dart | 22 +++++++-------- pubspec.lock | 28 +++++++++++++++++++ 22 files changed, 93 insertions(+), 51 deletions(-) diff --git a/lib/pages/delivery/delivery_info.dart b/lib/pages/delivery/delivery_info.dart index 0f3e423..ff3a4d2 100644 --- a/lib/pages/delivery/delivery_info.dart +++ b/lib/pages/delivery/delivery_info.dart @@ -22,6 +22,7 @@ import 'package:fcs/pages/widgets/local_title.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; @@ -214,7 +215,7 @@ class _DeliveryInfoState extends State { ); final shipmentWeightBox = DisplayText( - text: shipmentWeight.toStringAsFixed(0) : "", + text: shipmentWeight.toStringAsFixed(0), labelTextKey: "box.shipment_weight", iconData: MaterialCommunityIcons.weight, ); diff --git a/lib/pages/delivery/delivery_list_row.dart b/lib/pages/delivery/delivery_list_row.dart index d688e2a..c77f115 100644 --- a/lib/pages/delivery/delivery_list_row.dart +++ b/lib/pages/delivery/delivery_list_row.dart @@ -3,6 +3,7 @@ import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/main/util.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:intl/intl.dart'; import 'delivery_info.dart'; diff --git a/lib/pages/delivery_address/delivery_address_editor.dart b/lib/pages/delivery_address/delivery_address_editor.dart index 336adeb..6bb5be1 100644 --- a/lib/pages/delivery_address/delivery_address_editor.dart +++ b/lib/pages/delivery_address/delivery_address_editor.dart @@ -8,6 +8,7 @@ import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:provider/provider.dart'; class DeliveryAddressEditor extends StatefulWidget { diff --git a/lib/pages/delivery_address/delivery_address_row.dart b/lib/pages/delivery_address/delivery_address_row.dart index fd8f576..c6e248c 100644 --- a/lib/pages/delivery_address/delivery_address_row.dart +++ b/lib/pages/delivery_address/delivery_address_row.dart @@ -3,6 +3,7 @@ import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; typedef SelectionCallback(DeliveryAddress deliveryAddress); diff --git a/lib/pages/discount/discount_editor.dart b/lib/pages/discount/discount_editor.dart index 742e9c0..1422dee 100644 --- a/lib/pages/discount/discount_editor.dart +++ b/lib/pages/discount/discount_editor.dart @@ -9,6 +9,7 @@ import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/discount/discount_list_row.dart b/lib/pages/discount/discount_list_row.dart index 473b5b3..b2702b2 100644 --- a/lib/pages/discount/discount_list_row.dart +++ b/lib/pages/discount/discount_list_row.dart @@ -5,6 +5,7 @@ import 'package:fcs/pages/discount/discount_editor.dart'; import 'package:fcs/pages/main/util.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:intl/intl.dart'; typedef OnSelect(Discount discount); diff --git a/lib/pages/faq/faq_edit_page.dart b/lib/pages/faq/faq_edit_page.dart index a3c8ad4..885741c 100644 --- a/lib/pages/faq/faq_edit_page.dart +++ b/lib/pages/faq/faq_edit_page.dart @@ -10,6 +10,7 @@ import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:provider/provider.dart'; const info = "Select additional page"; diff --git a/lib/pages/faq/widgets.dart b/lib/pages/faq/widgets.dart index ba1c60a..a954882 100644 --- a/lib/pages/faq/widgets.dart +++ b/lib/pages/faq/widgets.dart @@ -7,14 +7,14 @@ Widget itemTitle(BuildContext context, String textKey) { return Padding( padding: const EdgeInsets.only(left: 18.0, top: 15, bottom: 0), child: Text( - AppTranslations.of(context).text(textKey), + AppTranslations.of(context)!.text(textKey), style: TextStyle( fontWeight: FontWeight.bold, fontSize: 18, color: Colors.black), ), ); } -Widget subItemTitle(BuildContext context, String textKey, {IconData iconData}) { +Widget subItemTitle(BuildContext context, String textKey, {IconData? iconData}) { return Padding( padding: const EdgeInsets.only(left: 0, top: 0, bottom: 0), child: Row( @@ -25,7 +25,7 @@ Widget subItemTitle(BuildContext context, String textKey, {IconData iconData}) { ), SizedBox(width: 10), Text( - AppTranslations.of(context).text(textKey), + AppTranslations.of(context)!.text(textKey), style: TextStyle( fontWeight: FontWeight.w700, fontSize: 15, color: primaryColor), ), @@ -35,7 +35,7 @@ Widget subItemTitle(BuildContext context, String textKey, {IconData iconData}) { } Widget contactItem(BuildContext context, String text, IconData iconData, - {Function() onTap, String labelKey}) { + {Function()? onTap, String? labelKey}) { return Material( child: Padding( padding: const EdgeInsets.only(left: 18.0, bottom: 10, right: 18), diff --git a/lib/pages/fcs_shipment/fcs_shipment_editor.dart b/lib/pages/fcs_shipment/fcs_shipment_editor.dart index 05bbc72..006ad94 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_editor.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_editor.dart @@ -143,7 +143,7 @@ class _FcsShipmentEditorState extends State { labelStyle: languageModel.isEng ? newLabelStyle(color: Colors.black54, fontSize: 20) : newLabelStyleMM(color: Colors.black54, fontSize: 20), - labelText: AppTranslations.of(context) + labelText: AppTranslations.of(context)! .text('FCSshipment.shipment_type'), icon: Icon(Ionicons.ios_airplane, color: primaryColor)), items: mainModel.setting.shipmentTypes diff --git a/lib/pages/profile/profile_currency_edit.dart b/lib/pages/profile/profile_currency_edit.dart index f1d3b71..603bfaf 100644 --- a/lib/pages/profile/profile_currency_edit.dart +++ b/lib/pages/profile/profile_currency_edit.dart @@ -77,7 +77,7 @@ class _ProfileCurrencyEditState extends State { onChanged: (Currency? value) { if(value != null) setState(() { - _currency = value!; + _currency = value; }); }, ), @@ -96,7 +96,7 @@ class _ProfileCurrencyEditState extends State { onChanged: (Currency? value) { if(value != null) setState(() { - _currency = value!; + _currency = value; }); }, ), diff --git a/lib/pages/rates/cargo_editor.dart b/lib/pages/rates/cargo_editor.dart index 30224bf..147889f 100644 --- a/lib/pages/rates/cargo_editor.dart +++ b/lib/pages/rates/cargo_editor.dart @@ -31,8 +31,8 @@ class _CargoEditorState extends State { super.initState(); if (widget.cargo != null) { _cargo = widget.cargo!; - _descController.text = _cargo.name; - _rateController.text = _cargo.rate.toStringAsFixed(2); + _descController.text = _cargo.name ?? ''; + _rateController.text = _cargo.rate?.toStringAsFixed(2) ?? ''; } else { _isNew = true; } @@ -138,7 +138,8 @@ class _CargoEditorState extends State { try { var shipmentRateModel = Provider.of(context, listen: false); - await shipmentRateModel.deleteCargoType(this._cargo.id); + if(this._cargo.id != null) + await shipmentRateModel.deleteCargoType(this._cargo.id!); Navigator.pop(context); } catch (e) { showMsgDialog(context, "Error", e.toString()); diff --git a/lib/pages/rates/cargo_type_list.dart b/lib/pages/rates/cargo_type_list.dart index aa5ac42..8e4776e 100644 --- a/lib/pages/rates/cargo_type_list.dart +++ b/lib/pages/rates/cargo_type_list.dart @@ -75,8 +75,8 @@ class _CargoTypeListState extends State { ))); }, child: Container( - child: _row(cargo.name, - "\$ " + cargo.rate.toStringAsFixed(2), 'per pound'), + child: _row(cargo.name?? '', + "\$ " + cargo.rate!.toStringAsFixed(2), 'per pound'), ), ); }), diff --git a/lib/pages/rates/custom_editor.dart b/lib/pages/rates/custom_editor.dart index 17444e2..b6c6b2f 100644 --- a/lib/pages/rates/custom_editor.dart +++ b/lib/pages/rates/custom_editor.dart @@ -33,10 +33,10 @@ class _CustomEditorState extends State { super.initState(); if (widget.custom != null) { _custom = widget.custom!; - _productController.text = _custom.name; - _feeController.text = _custom.customDutyFee.toStringAsFixed(2); + _productController.text = _custom.name ?? ''; + _feeController.text = _custom.customDutyFee?.toStringAsFixed(2) ?? ''; _shipmentRateController.text = - _custom.rate == null ? "" : _custom.rate.toStringAsFixed(2); + _custom.rate == null ? "" : _custom.rate?.toStringAsFixed(2) ?? ''; } else { _isNew = true; } @@ -154,7 +154,8 @@ class _CustomEditorState extends State { try { var shipmentRateModel = Provider.of(context, listen: false); - await shipmentRateModel.deleteCustomDuty(this._custom.id); + if(this._custom.id != null) + await shipmentRateModel.deleteCustomDuty(this._custom.id!); Navigator.pop(context); } catch (e) { showMsgDialog(context, "Error", e.toString()); diff --git a/lib/pages/rates/custom_list.dart b/lib/pages/rates/custom_list.dart index 8512b4a..abf9188 100644 --- a/lib/pages/rates/custom_list.dart +++ b/lib/pages/rates/custom_list.dart @@ -81,11 +81,15 @@ class _CustomListState extends State { }, child: Container( child: _row( - custom.name, - "Custom Fee \$ " + custom.customDutyFee.toStringAsFixed(2), + custom.name ?? '', + custom.customDutyFee == null + ? "" + : "Custom Fee \$ " + + custom.customDutyFee!.toStringAsFixed(2), custom.rate == null ? "" - : "Shipment rate \$ " + custom.rate.toStringAsFixed(2)), + : "Shipment rate \$ " + + custom.rate!.toStringAsFixed(2)), ), ); }), diff --git a/lib/pages/rates/custom_row.dart b/lib/pages/rates/custom_row.dart index ae14714..937d6df 100644 --- a/lib/pages/rates/custom_row.dart +++ b/lib/pages/rates/custom_row.dart @@ -4,6 +4,7 @@ import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; typedef SelectionCallback(CustomDuty custom); diff --git a/lib/pages/rates/shipment_rates.dart b/lib/pages/rates/shipment_rates.dart index ff4d865..c7ecef8 100644 --- a/lib/pages/rates/shipment_rates.dart +++ b/lib/pages/rates/shipment_rates.dart @@ -1,5 +1,4 @@ import 'package:fcs/domain/entities/cargo_type.dart'; -import 'package:fcs/domain/entities/custom_duty.dart'; import 'package:fcs/domain/entities/discount_by_weight.dart'; import 'package:fcs/domain/entities/rate.dart'; import 'package:fcs/helpers/theme.dart'; @@ -186,7 +185,7 @@ class _ShipmentRatesState extends State { return cargos.map((cargo) { return Container( child: _row( - cargo.name, "\$ " + cargo.rate.toStringAsFixed(2), 'per pound'), + cargo.name ?? '', "\$ " + cargo.rate!.toStringAsFixed(2), 'per pound'), ); }).toList(); } @@ -194,7 +193,7 @@ class _ShipmentRatesState extends State { List getCustonWidget(List customs) { return customs.map((c) { return Container( - child: _row(c.name, "\$ " + c.customDutyFee.toStringAsFixed(2), ''), + child: _row(c.name ?? '', "\$ " + c.customDutyFee!.toStringAsFixed(2), ''), ); }).toList(); } diff --git a/lib/pages/rates/shipment_rates_calculate.dart b/lib/pages/rates/shipment_rates_calculate.dart index e0526fd..c01111a 100644 --- a/lib/pages/rates/shipment_rates_calculate.dart +++ b/lib/pages/rates/shipment_rates_calculate.dart @@ -11,6 +11,7 @@ import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:provider/provider.dart'; class ShipmentRatesCal extends StatefulWidget { @@ -61,11 +62,11 @@ class _ShipmentRatesCalState extends State { var amount = box.calAmount(rate); var shipmentWeight = box.getShipmentWeight(rate.volumetricRatio); var effectiveWeight = - _cargoType.weight > shipmentWeight ? _cargoType.weight : shipmentWeight; + _cargoType.weight! > shipmentWeight ? _cargoType.weight : shipmentWeight; setState(() { _deliveryFee = - effectiveWeight > rate.freeDeliveryWeight ? 0 : rate.deliveryFee; + effectiveWeight! > rate.freeDeliveryWeight ? 0 : rate.deliveryFee; _amount = amount == null ? 0 : amount + _deliveryFee; _shipmentWeight = shipmentWeight.toDouble(); }); diff --git a/lib/pages/staff/staff_editor.dart b/lib/pages/staff/staff_editor.dart index 4812c32..6cf876c 100644 --- a/lib/pages/staff/staff_editor.dart +++ b/lib/pages/staff/staff_editor.dart @@ -15,7 +15,7 @@ import 'package:provider/provider.dart'; typedef void FindCallBack(); class StaffEditor extends StatefulWidget { - final User staff; + final User? staff; const StaffEditor({this.staff}); @override _StaffEditorState createState() => _StaffEditorState(); @@ -25,8 +25,8 @@ class _StaffEditorState extends State { TextEditingController _phoneInput = new TextEditingController(); bool _isLoading = false; - User user; - User selectedUser; + late User user; + User? selectedUser; List privileges = []; bool isNew = true; @@ -38,8 +38,8 @@ class _StaffEditorState extends State { user = User(); if (!isNew) { user = - User(name: widget.staff.name, phoneNumber: widget.staff.phoneNumber); - user.privileges = widget.staff.privileges; + User(name: widget.staff!.name, phoneNumber: widget.staff!.phoneNumber); + user.privileges = widget.staff!.privileges; privileges.forEach((p) => user.privileges.contains(p.id) ? p.isChecked = true : p.isChecked = false); @@ -64,7 +64,8 @@ class _StaffEditorState extends State { new Checkbox( value: p.isChecked == null ? false : p.isChecked, activeColor: primaryColor, - onChanged: (bool value) { + onChanged: (bool? value) { + if(value != null) setState(() { p.isChecked = value; }); @@ -110,7 +111,7 @@ class _StaffEditorState extends State { style: textStyle, decoration: new InputDecoration( labelText: - AppTranslations.of(context).text('staff.phone.search'), + AppTranslations.of(context)!.text('staff.phone.search'), labelStyle: languageModel.isEng ? labelStyle : labelStyleMM, // icon: Icon( // Icons.search, @@ -226,7 +227,7 @@ class _StaffEditorState extends State { }); StaffModel staffModel = Provider.of(context, listen: false); try { - await staffModel.updatePrivileges(this.selectedUser.id, privilegesIDs()); + await staffModel.updatePrivileges(this.selectedUser!.id, privilegesIDs()); Navigator.pop(context); } catch (e) { showMsgDialog(context, "Error", e.toString()); @@ -248,7 +249,7 @@ class _StaffEditorState extends State { if (widget.staff == null) return; StaffModel staffModel = Provider.of(context, listen: false); try { - await staffModel.updatePrivileges(widget.staff.id, privilegesIDs()); + await staffModel.updatePrivileges(widget.staff!.id, privilegesIDs()); Navigator.pop(context); } catch (e) { showMsgDialog(context, "Error", e.toString()); diff --git a/lib/pages/staff/staff_list.dart b/lib/pages/staff/staff_list.dart index fabcc6c..0fe6735 100644 --- a/lib/pages/staff/staff_list.dart +++ b/lib/pages/staff/staff_list.dart @@ -5,7 +5,6 @@ import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; @@ -84,7 +83,7 @@ class _StaffListState extends State { padding: new EdgeInsets.symmetric( horizontal: 32.0 - dotSize / 2), child: Icon( - MaterialCommunityIcons.worker, + Icons.person, color: primaryColor, size: 40, ), diff --git a/lib/pages/user_search/user_list_row.dart b/lib/pages/user_search/user_list_row.dart index da8822f..2fb7b74 100644 --- a/lib/pages/user_search/user_list_row.dart +++ b/lib/pages/user_search/user_list_row.dart @@ -4,9 +4,9 @@ import 'package:fcs/pages/user_search/user_serach.dart'; import 'package:flutter/material.dart'; class UserListRow extends StatefulWidget { - final OnUserRowSelect onUserRowSelect; + final OnUserRowSelect? onUserRowSelect; final User user; - const UserListRow({this.user, this.onUserRowSelect}); + const UserListRow({required this.user, this.onUserRowSelect}); @override _UserListRowState createState() => _UserListRowState(); @@ -14,7 +14,7 @@ class UserListRow extends StatefulWidget { class _UserListRowState extends State { final double dotSize = 15.0; - User user; + late User user; @override void initState() { super.initState(); @@ -31,7 +31,7 @@ class _UserListRowState extends State { child: InkWell( onTap: () { if (widget.onUserRowSelect != null) - widget.onUserRowSelect(widget.user); + widget.onUserRowSelect!(widget.user); }, child: Row( children: [ diff --git a/lib/pages/user_search/user_serach.dart b/lib/pages/user_search/user_serach.dart index 0225b62..5d4bfb6 100644 --- a/lib/pages/user_search/user_serach.dart +++ b/lib/pages/user_search/user_serach.dart @@ -8,8 +8,8 @@ import 'package:provider/provider.dart'; typedef OnUserSelect(User suer); typedef OnUserRowSelect(User suer); -Future searchUser(BuildContext context, - {OnUserSelect onUserSelect, bool popPage = false}) async => +Future searchUser(BuildContext context, + {required OnUserSelect onUserSelect, bool popPage = false}) async => await showSearch( context: context, delegate: @@ -17,10 +17,10 @@ Future searchUser(BuildContext context, ); class UserSearchDelegate extends SearchDelegate { - final OnUserSelect onUserSelect; + final OnUserSelect? onUserSelect; final bool popPage; - UserSearchDelegate({this.onUserSelect, this.popPage}); + UserSearchDelegate({this.onUserSelect, required this.popPage}); @override String get searchFieldLabel => 'Search by FCS ID or Name'; @@ -31,10 +31,10 @@ class UserSearchDelegate extends SearchDelegate { return theme.copyWith( inputDecorationTheme: InputDecorationTheme( hintStyle: TextStyle( - color: theme.primaryTextTheme.caption.color, fontSize: 14)), + color: theme.primaryTextTheme.caption?.color, fontSize: 14)), textTheme: theme.textTheme.copyWith( - title: theme.textTheme.title.copyWith( - color: theme.primaryTextTheme.title.color, fontSize: 16)), + title: theme.textTheme.title?.copyWith( + color: theme.primaryTextTheme.title?.color, fontSize: 16)), primaryColor: primaryColor, ); } @@ -53,7 +53,7 @@ class UserSearchDelegate extends SearchDelegate { Widget buildLeading(BuildContext context) { return IconButton( icon: Icon(Icons.arrow_back), - onPressed: () => close(context, null), + onPressed: () => close(context,User()), ); } @@ -64,7 +64,7 @@ class UserSearchDelegate extends SearchDelegate { future: packageModel.searchUser(query), builder: (context, AsyncSnapshot> snapshot) { if (snapshot.hasData) { - if (snapshot.data.length == 0) { + if (snapshot.data?.length == 0) { return Container( child: Center( child: Text( @@ -77,7 +77,7 @@ class UserSearchDelegate extends SearchDelegate { return Container( padding: EdgeInsets.only(top: 15), child: ListView( - children: snapshot.data + children: snapshot.data! .map((u) => UserListRow( user: u, onUserRowSelect: (u) => _onUserRowSelect(context, u), @@ -119,7 +119,7 @@ class UserSearchDelegate extends SearchDelegate { _onUserRowSelect(BuildContext context, User user) { if (onUserSelect != null) { - onUserSelect(user); + onUserSelect!(user); } if (popPage) { Navigator.pop(context); diff --git a/pubspec.lock b/pubspec.lock index a551a79..2abfb07 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -349,6 +349,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.5.1" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + url: "https://pub.dartlang.org" + source: hosted + version: "8.2.0" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" flutter_localizations: dependency: "direct main" description: flutter @@ -373,6 +387,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_vector_icons: + dependency: "direct main" + description: + name: flutter_vector_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" flutter_web_plugins: dependency: transitive description: flutter @@ -866,6 +887,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.0.5" + timezone: + dependency: transitive + description: + name: timezone + url: "https://pub.dartlang.org" + source: hosted + version: "0.8.0" typed_data: dependency: transitive description: