diff --git a/.gitignore b/.gitignore index 5178923f..7115609f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ .pub-cache/ .pub/ /build/ +pubspec.lock # Except for application packages # Web related lib/generated_plugin_registrant.dart diff --git a/assets/images/ic_circle_arrow.png b/assets/images/ic_circle_arrow.png new file mode 100644 index 00000000..81c4a77b Binary files /dev/null and b/assets/images/ic_circle_arrow.png differ diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 037e9622..a86550ab 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -245,8 +245,13 @@ const Map> localizedValues = { 'typeMedicineName': { 'en': 'Type Medicine Name', 'ar': 'اكتب اسم الدواء' - },'moreThan3Letter': { + }, + 'moreThan3Letter': { 'en': 'Medicine Name Should Be More Than 3 letter', 'ar': 'يجب أن يكون اسم الدواء أكثر من 3 أحرف' }, + 'replySuccessfully': { + 'en': 'Reply Successfully', + 'ar': 'تم الرد بنجاح' + }, }; diff --git a/lib/screens/doctor/my_referral_patient_screen.dart b/lib/screens/doctor/my_referral_patient_screen.dart index c29ce606..960bbdd9 100644 --- a/lib/screens/doctor/my_referral_patient_screen.dart +++ b/lib/screens/doctor/my_referral_patient_screen.dart @@ -7,8 +7,14 @@ import 'package:flutter/material.dart'; import '../../widgets/shared/app_scaffold_widget.dart'; -class MyReferralPatient extends StatelessWidget { +class MyReferralPatient extends StatefulWidget { + int expandedItemIndex = -1; + @override + _MyReferralPatientState createState() => _MyReferralPatientState(); +} + +class _MyReferralPatientState extends State { @override Widget build(BuildContext context) { return BaseView( @@ -35,12 +41,28 @@ class MyReferralPatient extends StatelessWidget { ), Container( child: Column( - children: model.listMyReferralPatientModel - .map((item) { - return MyReferralPatientWidget( - myReferralPatientModel: item, model:model - ); - }).toList(), + children: [ + ...List.generate( + model.listMyReferralPatientModel.length, + (index) => MyReferralPatientWidget( + myReferralPatientModel: model + .listMyReferralPatientModel[index], + model: model, + expandClick: () { + setState(() { + if (widget.expandedItemIndex == + index) { + widget.expandedItemIndex = -1; + } else { + widget.expandedItemIndex = index; + } + }); + }, + isExpand: + widget.expandedItemIndex == index, + ), + ) + ], ), ), ], diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart index 7351ed01..0285b166 100644 --- a/lib/util/translations_delegate_base.dart +++ b/lib/util/translations_delegate_base.dart @@ -33,6 +33,8 @@ class TranslationBase { String get mobileNo => localizedValues['mobileNo'][locale.languageCode]; + String get replySuccessfully => localizedValues['replySuccessfully'][locale.languageCode]; + String get messagesScreenToolbarTitle => localizedValues['messagesScreenToolbarTitle'][locale.languageCode]; diff --git a/lib/widgets/doctor/my_referral_patient_widget.dart b/lib/widgets/doctor/my_referral_patient_widget.dart index 46167975..98371a9f 100644 --- a/lib/widgets/doctor/my_referral_patient_widget.dart +++ b/lib/widgets/doctor/my_referral_patient_widget.dart @@ -10,13 +10,18 @@ import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; import 'package:doctor_app_flutter/widgets/shared/app_button.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/expandable-widget-header-body.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; class MyReferralPatientWidget extends StatefulWidget { final MyReferralPatientModel myReferralPatientModel; final ReferralPatientViewModel model; - MyReferralPatientWidget({Key key, this.myReferralPatientModel, this.model}); + final bool isExpand; + final Function expandClick; + + MyReferralPatientWidget({Key key, this.myReferralPatientModel, this.model, this.isExpand, this.expandClick}); @override _MyReferralPatientWidgetState createState() => @@ -24,7 +29,6 @@ class MyReferralPatientWidget extends StatefulWidget { } class _MyReferralPatientWidgetState extends State { - bool _showDetails = false; bool _isLoading = false; final _formKey = GlobalKey(); String error; @@ -39,299 +43,416 @@ class _MyReferralPatientWidgetState extends State { @override Widget build(BuildContext context) { - return CardWithBgWidgetNew( - widget: Container( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - InkWell( - onTap: () { - setState(() { - _showDetails = !_showDetails; - }); - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - AppText( - '${widget.myReferralPatientModel.firstName} ${widget.myReferralPatientModel.lastName}', - fontSize: 2.5 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - Icon(_showDetails - ? Icons.keyboard_arrow_up - : Icons.keyboard_arrow_down), - ], - ), - ), - !_showDetails - ? Container() - : AnimatedContainer( - duration: Duration(milliseconds: 200), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox( - height: 5, - ), - Divider( - color: Color(0xFF000000), - height: 0.5, + return Container( + width: double.infinity, + margin: EdgeInsets.symmetric(horizontal: 8), + padding: EdgeInsets.only(left: 0, top: 8, right: 0, bottom: 0), + decoration: BoxDecoration( + shape: BoxShape.rectangle, + borderRadius: BorderRadius.circular(8), + border: Border.fromBorderSide(BorderSide( + color: Color(0xffCCCCCC), + width: 2, + )), + color: Color(0xffffffff), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + HeaderBodyExpandableNotifier( + headerWidget: Column( + children: [ + Container( + padding: + EdgeInsets.only(left: 16, top: 8, right: 8, bottom: 0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + color: Color(0xFFB8382C), + padding: EdgeInsets.symmetric( + vertical: 4, horizontal: 4), + child: AppText( + '${widget.myReferralPatientModel.priorityDescription}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.white, + ), + ), + SizedBox( + height: 10, + ), + AppText( + '${widget.myReferralPatientModel.firstName} ${widget.myReferralPatientModel.middleName} ${widget.myReferralPatientModel.lastName}', + fontSize: 2 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, + ), + SizedBox( + height: 10, + ), + Row( + children: [ + AppText( + TranslationBase.of(context).fileNo, + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, + ), + SizedBox( + width: 20, + ), + AppText( + '${widget.myReferralPatientModel.referralDoctor}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.normal, + textAlign: TextAlign.start, + color: Colors.black, + ), + ], + ), + ], ), - Table( - border: TableBorder.symmetric( - inside: BorderSide(width: 0.5), + ), + Container( + margin: + EdgeInsets.symmetric(horizontal: 8, vertical: 8), + child: InkWell( + onTap: widget.expandClick, + child: Image.asset( + "assets/images/ic_circle_arrow.png", + width: 25, + height: 25, + color: Colors.black, ), - children: [ - TableRow(children: [ - Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).fileNo, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - SizedBox( - height: 5, - ), - AppText( - '${widget.myReferralPatientModel.referringDoctor}', - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], + ), + ) + ], + ), + ), + SizedBox( + height: 10, + ), + ], + ), + bodyWidget: Container( + child: Column( + children: [ + const Divider( + color: Color(0xffCCCCCC), + height: 1, + thickness: 2, + indent: 0, + endIndent: 0, + ), + Container( + height: 1.8 * SizeConfig.textMultiplier * 6, + padding: + EdgeInsets.only(left: 16, top: 0, right: 8, bottom: 0), + child: Expanded( + child: Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 8, ), - ), - Container( - margin: EdgeInsets.only( - left: 4, top: 2.5, right: 2.5, bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context) - .referralDoctor, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - SizedBox( - height: 5, - ), - AppText( - widget.myReferralPatientModel - .referringClinicDescription, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], + SizedBox( + child: AppText( + TranslationBase.of(context).referralDoctor, + fontSize: 1.9 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, + ), ), - ), - ]), - TableRow(children: [ - Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context) - .referringClinic, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - SizedBox( - height: 5, - ), - AppText( - '${widget.myReferralPatientModel.referringClinicDescription}', - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], + SizedBox( + height: 4, + ), + SizedBox( + child: AppText( + '${widget.myReferralPatientModel.referringDoctorName}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.normal, + textAlign: TextAlign.start, + color: Colors.black, + ), ), + SizedBox( + height: 8, + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: SizedBox( + child: Container( + color: Color(0xffCCCCCC), ), - Container( - margin: EdgeInsets.only( - left: 4, top: 2.5, right: 2.5, bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).frequency, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - SizedBox( - height: 5, - ), - AppText( - widget.myReferralPatientModel - .frequencyDescription, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], + width: 1, + ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 8, ), - ) - ]), - TableRow( + SizedBox( + child: AppText( + TranslationBase.of(context).referringClinic, + fontSize: 1.9 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, + ), + ), + SizedBox( + height: 4, + ), + SizedBox( + child: AppText( + '${widget.myReferralPatientModel.referringClinicDescription}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.normal, + textAlign: TextAlign.start, + color: Colors.black, + ), + ), + SizedBox( + height: 8, + ), + ], + ), + ), + ], + ), + ), + ), + const Divider( + color: Color(0xffCCCCCC), + height: 1, + thickness: 2, + indent: 0, + endIndent: 0, + ), + SizedBox( + height: 10, + ), + Container( + height: 1.8 * SizeConfig.textMultiplier * 6, + padding: + EdgeInsets.only(left: 16, top: 0, right: 8, bottom: 0), + child: Expanded( + child: Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).priority, - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - SizedBox( - height: 5, - ), - AppText( - '${widget.myReferralPatientModel.priorityDescription}', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], + SizedBox( + height: 8, + ), + SizedBox( + child: AppText( + TranslationBase.of(context).frequency, + fontSize: 1.9 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, ), ), - Container( - margin: EdgeInsets.only( - left: 4, - top: 2.5, - right: 2.5, - bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context) - .maxResponseTime, - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - SizedBox( - height: 5, - ), - AppText( - Helpers.getDateFormatted(widget - .myReferralPatientModel - .mAXResponseTime), - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], + SizedBox( + height: 4, + ), + SizedBox( + child: AppText( + '${widget.myReferralPatientModel.frequencyDescription}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.normal, + textAlign: TextAlign.start, + color: Colors.black, ), - ) + ), + SizedBox( + height: 8, + ), ], ), - ], - ), - Divider( - color: Color(0xFF000000), - height: 0.5, - ), - SizedBox( - height: 5, - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context) - .clinicDetailsandRemarks, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - textAlign: TextAlign.start, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: SizedBox( + child: Container( + color: Color(0xffCCCCCC), + ), + width: 1, ), - Texts( - '${widget.myReferralPatientModel.referringDoctorRemarks}', - style: "bodyText1", - readMore: true, - textAlign: TextAlign.start, - maxLength: 100) - ], - ), - SizedBox( - height: 5, - ), - AppText( - TranslationBase.of(context).answerSuggestions, - fontSize: 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - textAlign: TextAlign.start, - ), - SizedBox( - height: 5, - ), - Form( - key: _formKey, - child: TextFields( - controller:answerController, - - maxLines: 2, - minLines: 2, - hintText: - TranslationBase.of(context).answerThePatient, - fontWeight: FontWeight.normal, - readOnly: _isLoading, - validator: (value) { - if (value.isEmpty) - return TranslationBase.of(context) - .pleaseEnterAnswer; - else - return null; - }, ), - ), - SizedBox(height: 10.0), - SizedBox(height: 10.0), - Container( - width: double.infinity, - margin: EdgeInsets.only(left: 10, right: 10), - child: Button( - onTap: () async { - final form = _formKey.currentState; - if (form.validate()) { - - try { - await widget.model - .replay(answerController.text.toString(), - widget.myReferralPatientModel); - // TODO: Add Translation - DrAppToastMsg.showSuccesToast( - 'Reply Successfully'); - } catch (e) { - DrAppToastMsg.showErrorToast(e); - } - } - }, - title: TranslationBase.of(context).replay, - loading: widget.model.state == ViewState.BusyLocal, + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 8, + ), + SizedBox( + child: AppText( + TranslationBase.of(context).maxResponseTime, + fontSize: 1.9 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, + ), + ), + SizedBox( + height: 4, + ), + SizedBox( + child: AppText( + '${DateFormat('dd/MM/yyyy').format(widget.myReferralPatientModel.mAXResponseTime)}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.normal, + textAlign: TextAlign.start, + color: Colors.black, + ), + ), + SizedBox( + height: 8, + ), + ], + ), + ), + ], + ), + ), + ), + const Divider( + color: Color(0xffCCCCCC), + height: 1, + thickness: 2, + indent: 0, + endIndent: 0, + ), + SizedBox( + height: 10, + ), + Container( + padding: + EdgeInsets.only(left: 16, top: 0, right: 8, bottom: 0), + child: Expanded( + child: Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 8, + ), + SizedBox( + child: AppText( + TranslationBase.of(context) + .clinicDetailsandRemarks, + fontSize: 1.9 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + textAlign: TextAlign.start, + color: Colors.black, + ), + ), + SizedBox( + height: 4, + ), + SizedBox( + child: AppText( + '${widget.myReferralPatientModel.referringDoctorRemarks}', + fontSize: 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.normal, + textAlign: TextAlign.start, + color: Colors.black, + ), + ), + SizedBox( + height: 8, + ), + ], + ), ), - ) - ], + ], + ), + ), + ), + const Divider( + color: Color(0xffCCCCCC), + height: 1, + thickness: 2, + indent: 0, + endIndent: 0, + ), + SizedBox( + height: 10, + ), + Container( + color: Colors.white, + padding: EdgeInsets.all(8), + child: Form( + key: _formKey, + child: TextFields( + controller: answerController, + maxLines: 3, + minLines: 2, + hintText: TranslationBase.of(context).answerThePatient, + fontWeight: FontWeight.normal, + readOnly: _isLoading, + validator: (value) { + if (value.isEmpty) + return TranslationBase.of(context) + .pleaseEnterAnswer; + else + return null; + }, + ), + ), + ), + Container( + width: double.infinity, + margin: EdgeInsets.only(left: 10, right: 10), + child: Button( + onTap: () async { + final form = _formKey.currentState; + if (form.validate()) { + try { + await widget.model.replay( + answerController.text.toString(), + widget.myReferralPatientModel); + DrAppToastMsg.showSuccesToast( + TranslationBase.of(context).replySuccessfully); + } catch (e) { + DrAppToastMsg.showErrorToast(e); + } + } + }, + title: TranslationBase.of(context).replay, + loading: widget.model.state == ViewState.BusyLocal, ), ) - ], - ), + ], + ), + ), + isExpand: widget.isExpand, + ), + ], ), ); } diff --git a/lib/widgets/shared/expandable-widget-header-body.dart b/lib/widgets/shared/expandable-widget-header-body.dart new file mode 100644 index 00000000..7adef404 --- /dev/null +++ b/lib/widgets/shared/expandable-widget-header-body.dart @@ -0,0 +1,67 @@ +import 'package:expandable/expandable.dart'; +import 'package:flutter/material.dart'; + +class HeaderBodyExpandableNotifier extends StatefulWidget { + final Widget headerWidget; + final Widget bodyWidget; + final Widget collapsed; + final bool isExpand; + bool expandFlag = false; + var controller = new ExpandableController(); + + HeaderBodyExpandableNotifier({this.headerWidget, this.bodyWidget, this.collapsed, this.isExpand}); + + @override + _HeaderBodyExpandableNotifierState createState() => + _HeaderBodyExpandableNotifierState(); +} + +class _HeaderBodyExpandableNotifierState + extends State { + @override + Widget build(BuildContext context) { + setState(() { + if (widget.isExpand == true) { + widget.expandFlag = widget.isExpand; + widget.controller.expanded = true; + } + }); + + return ExpandableNotifier( + child: Padding( + padding: const EdgeInsets.only(left: 0, right: 0), + child: Column( + children: [ + SizedBox( + child: widget.headerWidget, + ), + ScrollOnExpand( + scrollOnExpand: true, + scrollOnCollapse: false, + child: ExpandablePanel( + theme: const ExpandableThemeData( + headerAlignment: ExpandablePanelHeaderAlignment.center, + tapBodyToCollapse: true, + ), + // header: widget.headerWidget, + collapsed: Container(), + expanded: widget.bodyWidget, + builder: (_, collapsed, expanded) { + return Padding( + padding: EdgeInsets.only(left: 0, right: 0, bottom: 0), + child: Expandable( + controller: widget.controller, + collapsed: collapsed, + expanded: expanded, + theme: const ExpandableThemeData(crossFadePoint: 0), + ), + ); + }, + ), + ), + ], + ), + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index f597a7ce..ae4f6a70 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,14 +7,14 @@ packages: name: _fe_analyzer_shared url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "12.0.0" analyzer: dependency: transitive description: name: analyzer url: "https://pub.dartlang.org" source: hosted - version: "0.39.8" + version: "0.40.6" archive: dependency: transitive description: @@ -49,7 +49,7 @@ packages: name: bazel_worker url: "https://pub.dartlang.org" source: hosted - version: "0.1.23+1" + version: "0.1.25" boolean_selector: dependency: transitive description: @@ -63,14 +63,14 @@ packages: name: build url: "https://pub.dartlang.org" source: hosted - version: "1.2.2" + version: "1.5.2" build_config: dependency: transitive description: name: build_config url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" + version: "0.4.4" build_daemon: dependency: transitive description: @@ -84,35 +84,35 @@ packages: name: build_modules url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "3.0.1" build_resolvers: dependency: transitive description: name: build_resolvers url: "https://pub.dartlang.org" source: hosted - version: "1.3.7" + version: "1.4.4" build_runner: dependency: "direct dev" description: name: build_runner url: "https://pub.dartlang.org" source: hosted - version: "1.9.0" + version: "1.10.7" build_runner_core: dependency: transitive description: name: build_runner_core url: "https://pub.dartlang.org" source: hosted - version: "5.1.0" + version: "6.1.2" build_web_compilers: dependency: "direct dev" description: name: build_web_compilers url: "https://pub.dartlang.org" source: hosted - version: "2.9.0" + version: "2.12.2" built_collection: dependency: transitive description: @@ -162,6 +162,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.2" + cli_util: + dependency: transitive + description: + name: cli_util + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" clock: dependency: transitive description: @@ -175,7 +182,7 @@ packages: name: code_builder url: "https://pub.dartlang.org" source: hosted - version: "3.2.1" + version: "3.5.0" collection: dependency: transitive description: @@ -189,21 +196,28 @@ packages: name: connectivity url: "https://pub.dartlang.org" source: hosted - version: "0.4.8+2" + version: "0.4.9+5" + connectivity_for_web: + dependency: transitive + description: + name: connectivity_for_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.1+4" connectivity_macos: dependency: transitive description: name: connectivity_macos url: "https://pub.dartlang.org" source: hosted - version: "0.1.0+2" + version: "0.1.0+7" connectivity_platform_interface: dependency: transitive description: name: connectivity_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.0.6" convert: dependency: transitive description: @@ -217,14 +231,7 @@ packages: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" - csslib: - dependency: transitive - description: - name: csslib - url: "https://pub.dartlang.org" - source: hosted - version: "0.16.1" + version: "2.1.5" cupertino_icons: dependency: "direct main" description: @@ -238,21 +245,28 @@ packages: name: dart_style url: "https://pub.dartlang.org" source: hosted - version: "1.3.4" + version: "1.3.10" device_info: dependency: "direct main" description: name: device_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.2+4" + version: "0.4.2+10" + device_info_platform_interface: + dependency: transitive + description: + name: device_info_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" eva_icons_flutter: dependency: "direct main" description: name: eva_icons_flutter url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" expandable: dependency: "direct main" description: @@ -267,6 +281,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.0-nullsafety.1" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "5.2.1" fixnum: dependency: transitive description: @@ -304,7 +332,7 @@ packages: name: flutter_plugin_android_lifecycle url: "https://pub.dartlang.org" source: hosted - version: "1.0.7" + version: "1.0.11" flutter_test: dependency: "direct dev" description: flutter @@ -342,21 +370,14 @@ packages: name: hexcolor url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" - html: - dependency: transitive - description: - name: html - url: "https://pub.dartlang.org" - source: hosted - version: "0.14.0+3" + version: "1.0.6" http: dependency: "direct main" description: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.12.1" + version: "0.12.2" http_interceptor: dependency: "direct main" description: @@ -384,7 +405,7 @@ packages: name: imei_plugin url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.2.0" intl: dependency: "direct main" description: @@ -405,21 +426,21 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.3-nullsafety.1" + version: "0.6.2" json_annotation: dependency: transitive description: name: json_annotation url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.1.1" local_auth: dependency: "direct main" description: name: local_auth url: "https://pub.dartlang.org" source: hosted - version: "0.6.2+1" + version: "0.6.3+4" logging: dependency: transitive description: @@ -433,7 +454,7 @@ packages: name: maps_launcher url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.2+2" matcher: dependency: transitive description: @@ -447,14 +468,14 @@ packages: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.3.0-nullsafety.4" + version: "1.3.0-nullsafety.3" mime: dependency: transitive description: name: mime url: "https://pub.dartlang.org" source: hosted - version: "0.9.6+3" + version: "0.9.7" nested: dependency: transitive description: @@ -468,14 +489,14 @@ packages: name: node_interop url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.2.1" node_io: dependency: transitive description: name: node_io url: "https://pub.dartlang.org" source: hosted - version: "1.0.1+2" + version: "1.2.0" package_config: dependency: transitive description: @@ -490,34 +511,55 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0-nullsafety.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4+3" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.8.0+1" + version: "1.9.2" percent_indicator: dependency: "direct main" description: name: percent_indicator url: "https://pub.dartlang.org" source: hosted - version: "2.1.1+1" + version: "2.1.8" permission_handler: dependency: "direct main" description: name: permission_handler url: "https://pub.dartlang.org" source: hosted - version: "5.0.0+hotfix.5" + version: "5.0.1+1" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" platform: dependency: transitive description: @@ -531,7 +573,7 @@ packages: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" pool: dependency: transitive description: @@ -539,6 +581,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.4.0" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.13" progress_hud_v2: dependency: "direct main" description: @@ -552,14 +601,14 @@ packages: name: protobuf url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.1.0" provider: dependency: "direct main" description: name: provider url: "https://pub.dartlang.org" source: hosted - version: "4.0.5+1" + version: "4.3.2+3" pub_semver: dependency: transitive description: @@ -580,7 +629,7 @@ packages: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "2.1.5" scratch_space: dependency: transitive description: @@ -594,35 +643,49 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.5.7" + version: "0.5.12+4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.2+4" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+7" + version: "0.0.1+11" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.0.4" shared_preferences_web: dependency: transitive description: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.2+4" + version: "0.1.2+7" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+3" shelf: dependency: transitive description: name: shelf url: "https://pub.dartlang.org" source: hosted - version: "0.7.5" + version: "0.7.9" shelf_web_socket: dependency: transitive description: @@ -662,7 +725,7 @@ packages: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.10.0-nullsafety.2" + version: "1.10.0-nullsafety.1" stream_channel: dependency: transitive description: @@ -718,28 +781,42 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "5.4.5" + version: "5.7.10" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+4" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+5" + version: "0.0.1+9" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.6" + version: "1.0.9" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.1+4" + version: "0.1.5+1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+3" vector_math: dependency: transitive description: @@ -761,6 +838,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.0" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.4" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" yaml: dependency: transitive description: @@ -769,5 +860,5 @@ packages: source: hosted version: "2.2.1" sdks: - dart: ">=2.10.0-110 <=2.11.0-213.1.beta" - flutter: ">=1.12.13+hotfix.5 <2.0.0" + dart: ">=2.10.0 <2.11.0" + flutter: ">=1.22.0 <2.0.0"