From aeb5d12cc33e395e725cffb68db081b9c5ea9626 Mon Sep 17 00:00:00 2001 From: hussam al-habibeh Date: Mon, 27 Dec 2021 09:20:07 +0200 Subject: [PATCH] flutter 2.8 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- flutter_01.png | Bin 0 -> 45057 bytes .../AddVerifyMedicalReport.dart | 60 +- lib/widgets/shared/TextFields.dart | 117 +- .../text_fields/app_text_form_field.dart | 6 +- .../shared/text_fields/html_rich_editor.dart | 44 +- .../shared/text_fields/new_text_Field.dart | 10 +- pubspec.lock | 1263 +++++++++++++++++ pubspec.yaml | 6 +- 9 files changed, 1400 insertions(+), 108 deletions(-) create mode 100644 flutter_01.png create mode 100644 pubspec.lock diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 296b146b..595fb867 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip diff --git a/flutter_01.png b/flutter_01.png new file mode 100644 index 0000000000000000000000000000000000000000..24097f8b81bce1b30e48eb5d29338ac861b6abcc GIT binary patch literal 45057 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 literal 0 HcmV?d00001 diff --git a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart index 72ee1311..87a405ad 100644 --- a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart +++ b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart @@ -41,7 +41,7 @@ class _AddVerifyMedicalReportState extends State { @override Widget build(BuildContext context) { String txtOfMedicalReport; - + HtmlEditorController controller = HtmlEditorController(); return BaseView( onModelReady: (model) async { model.getMedicalReportTemplate(); @@ -68,13 +68,25 @@ class _AddVerifyMedicalReportState extends State { children: [ if (model.medicalReportTemplate.length > 0) HtmlRichEditor( - initialText: (widget.medicalReport != null + initialText: (widget.medicalReport != + null ? widget.medicalNote - : widget.model.medicalReportTemplate[0].templateText.length > 0 - ? widget.model.medicalReportTemplate[0].templateText + : widget + .model + .medicalReportTemplate[ + 0] + .templateText + .length > + 0 + ? widget + .model + .medicalReportTemplate[0] + .templateText : ""), hint: "Write the medical report ", - height: MediaQuery.of(context).size.height * 0.75, + height: + MediaQuery.of(context).size.height * + 0.75, ), ], ), @@ -100,27 +112,35 @@ class _AddVerifyMedicalReportState extends State { // disabled: progressNoteController.text.isEmpty, fontWeight: FontWeight.w700, onPressed: () async { - txtOfMedicalReport = await HtmlEditor.getText(); + txtOfMedicalReport = await controller.getText(); if (txtOfMedicalReport.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); widget.medicalReport != null - ?await widget.model.updateMedicalReport( + ? await widget.model.updateMedicalReport( widget.patient, txtOfMedicalReport, - widget.medicalReport != null ? widget.medicalReport.lineItemNo : null, - widget.medicalReport != null ? widget.medicalReport.invoiceNo : null) - : await widget.model.addMedicalReport(widget.patient, txtOfMedicalReport); + widget.medicalReport != null + ? widget.medicalReport.lineItemNo + : null, + widget.medicalReport != null + ? widget.medicalReport.invoiceNo + : null) + : await widget.model.addMedicalReport( + widget.patient, txtOfMedicalReport); //model.getMedicalReportList(patient); Navigator.pop(context); GifLoaderDialogUtils.hideDialog(context); - if (widget.model.state == ViewState.ErrorLocal) { - DrAppToastMsg.showErrorToast(widget.model.error); + if (widget.model.state == + ViewState.ErrorLocal) { + DrAppToastMsg.showErrorToast( + widget.model.error); } } else { - DrAppToastMsg.showErrorToast("Please enter medical note"); + DrAppToastMsg.showErrorToast( + "Please enter medical note"); } }, ), @@ -137,17 +157,21 @@ class _AddVerifyMedicalReportState extends State { color: Color(0xff359846), fontWeight: FontWeight.w700, onPressed: () async { - txtOfMedicalReport = await HtmlEditor.getText(); + txtOfMedicalReport = await controller.getText(); if (txtOfMedicalReport.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); - await widget.model.verifyMedicalReport(widget.patient, widget.medicalReport); + await widget.model.verifyMedicalReport( + widget.patient, widget.medicalReport); GifLoaderDialogUtils.hideDialog(context); Navigator.pop(context); - if (widget.model.state == ViewState.ErrorLocal) { - DrAppToastMsg.showErrorToast(widget.model.error); + if (widget.model.state == + ViewState.ErrorLocal) { + DrAppToastMsg.showErrorToast( + widget.model.error); } } else { - DrAppToastMsg.showErrorToast("Please enter medical note"); + DrAppToastMsg.showErrorToast( + "Please enter medical note"); } }, ), diff --git a/lib/widgets/shared/TextFields.dart b/lib/widgets/shared/TextFields.dart index 18d8e778..c8763ff6 100644 --- a/lib/widgets/shared/TextFields.dart +++ b/lib/widgets/shared/TextFields.dart @@ -39,46 +39,49 @@ class NumberTextInputFormatter extends TextInputFormatter { final _mobileFormatter = NumberTextInputFormatter(); class TextFields extends StatefulWidget { - TextFields( - {Key key, - this.type, - this.hintText, - this.suffixIcon, - this.autoFocus, - this.onChanged, - this.initialValue, - this.minLines, - this.maxLines, - this.inputFormatters, - this.padding, - this.focus = false, - this.maxLengthEnforced = true, - this.suffixIconColor, - this.inputAction = TextInputAction.done, - this.onSubmit, - this.keepPadding = true, - this.textCapitalization = TextCapitalization.none, - this.controller, - this.keyboardType, - this.validator, - this.borderOnlyError = false, - this.onSaved, - this.onSuffixTap, - this.readOnly: false, - this.maxLength, - this.prefixIcon, - this.bare = false, - this.onTap, - this.fontSize = 16.0, - this.fontWeight = FontWeight.w700, - this.autoValidate = false, - this.fillColor, - this.hintColor, - this.hasBorder = true, - this.onTapTextFields, - this.hasLabelText = false, - this.showLabelText = false, this.borderRadius= 8.0, this.borderColor, this.borderWidth = 1, }) - : super(key: key); + TextFields({ + Key key, + this.type, + this.hintText, + this.suffixIcon, + this.autoFocus, + this.onChanged, + this.initialValue, + this.minLines, + this.maxLines, + this.inputFormatters, + this.padding, + this.focus = false, + this.maxLengthEnforced = true, + this.suffixIconColor, + this.inputAction = TextInputAction.done, + this.onSubmit, + this.keepPadding = true, + this.textCapitalization = TextCapitalization.none, + this.controller, + this.keyboardType, + this.validator, + this.borderOnlyError = false, + this.onSaved, + this.onSuffixTap, + this.readOnly: false, + this.maxLength, + this.prefixIcon, + this.bare = false, + this.onTap, + this.fontSize = 16.0, + this.fontWeight = FontWeight.w700, + this.autoValidate, + this.fillColor, + this.hintColor, + this.hasBorder = true, + this.onTapTextFields, + this.hasLabelText = false, + this.showLabelText = false, + this.borderRadius = 8.0, + this.borderColor, + this.borderWidth = 1, + }) : super(key: key); final String hintText; final String initialValue; @@ -108,7 +111,7 @@ class TextFields extends StatefulWidget { final bool keepPadding; final TextCapitalization textCapitalization; final List inputFormatters; - final bool autoValidate; + final AutovalidateMode autoValidate; final EdgeInsets padding; final bool focus; final bool borderOnlyError; @@ -203,8 +206,7 @@ class _TextFieldsState extends State { @override Widget build(BuildContext context) { - - widget.borderColor = widget.borderColor?? Colors.grey; + widget.borderColor = widget.borderColor ?? Colors.grey; return (AnimatedContainer( duration: Duration(milliseconds: 300), decoration: widget.bare @@ -225,7 +227,7 @@ class _TextFieldsState extends State { onTap: widget.onTapTextFields, keyboardAppearance: Theme.of(context).brightness, scrollPhysics: BouncingScrollPhysics(), - autovalidate: widget.autoValidate, + autovalidateMode: widget.autoValidate, textCapitalization: widget.textCapitalization, onFieldSubmitted: widget.inputAction == TextInputAction.next ? (widget.onSubmit != null @@ -266,7 +268,7 @@ class _TextFieldsState extends State { fontSize: widget.fontSize, fontWeight: widget.fontWeight), inputFormatters: widget.keyboardType == TextInputType.phone ? [ - WhitelistingTextInputFormatter.digitsOnly, + FilteringTextInputFormatter.digitsOnly, _mobileFormatter, ] : widget.inputFormatters, @@ -281,7 +283,6 @@ class _TextFieldsState extends State { hintText: widget.hintText, hintStyle: TextStyle( fontSize: widget.fontSize, - fontWeight: widget.fontWeight, color: widget.hintColor ?? Theme.of(context).hintColor, ), @@ -310,7 +311,8 @@ class _TextFieldsState extends State { width: 1.0) : BorderSide(color: Colors.transparent, width: 0), borderRadius: widget.hasBorder - ? BorderRadius.circular(widget.bare ? 0.0 : widget.borderRadius) + ? BorderRadius.circular( + widget.bare ? 0.0 : widget.borderRadius) : BorderRadius.circular(0.0), ), focusedErrorBorder: OutlineInputBorder( @@ -321,28 +323,35 @@ class _TextFieldsState extends State { .withOpacity(widget.bare ? 0.0 : 0.5), width: 1.0) : BorderSide(color: Colors.transparent, width: 0), - borderRadius: BorderRadius.circular(widget.bare ? 0.0 : widget.borderRadius)), + borderRadius: BorderRadius.circular( + widget.bare ? 0.0 : widget.borderRadius)), focusedBorder: OutlineInputBorder( borderSide: widget.hasBorder - ? BorderSide(color: widget.borderColor,width: widget.borderWidth) + ? BorderSide( + color: widget.borderColor, width: widget.borderWidth) : BorderSide(color: Colors.transparent, width: 0), borderRadius: widget.hasBorder - ? BorderRadius.circular(widget.bare ? 0.0 : widget.borderRadius) + ? BorderRadius.circular( + widget.bare ? 0.0 : widget.borderRadius) : BorderRadius.circular(0.0), ), disabledBorder: OutlineInputBorder( borderSide: widget.hasBorder - ? BorderSide(color: widget.borderColor,width: widget.borderWidth) + ? BorderSide( + color: widget.borderColor, width: widget.borderWidth) : BorderSide(color: Colors.transparent, width: 0), borderRadius: widget.hasBorder - ? BorderRadius.circular(widget.bare ? 0.0 : widget.borderRadius) + ? BorderRadius.circular( + widget.bare ? 0.0 : widget.borderRadius) : BorderRadius.circular(0.0)), enabledBorder: OutlineInputBorder( borderSide: widget.hasBorder - ? BorderSide(color: widget.borderColor,width: widget.borderWidth) + ? BorderSide( + color: widget.borderColor, width: widget.borderWidth) : BorderSide(color: Colors.transparent, width: 0), borderRadius: widget.hasBorder - ? BorderRadius.circular(widget.bare ? 0.0 : widget.borderRadius) + ? BorderRadius.circular( + widget.bare ? 0.0 : widget.borderRadius) : BorderRadius.circular(0.0), ), ), diff --git a/lib/widgets/shared/text_fields/app_text_form_field.dart b/lib/widgets/shared/text_fields/app_text_form_field.dart index cf5f0abf..4b0fe957 100644 --- a/lib/widgets/shared/text_fields/app_text_form_field.dart +++ b/lib/widgets/shared/text_fields/app_text_form_field.dart @@ -13,11 +13,11 @@ class AppTextFormField extends FormField { GestureTapCallback onTap, bool obscureText = false, TextEditingController controller, - bool autovalidate = true, + AutovalidateMode autovalidate, TextInputType textInputType, String hintText, FocusNode focusNode, - TextInputAction textInputAction=TextInputAction.done, + TextInputAction textInputAction = TextInputAction.done, ValueChanged onFieldSubmitted, IconButton prefix, String labelText, @@ -27,7 +27,7 @@ class AppTextFormField extends FormField { : super( onSaved: onSaved, validator: validator, - autovalidate: autovalidate, + autovalidateMode: autovalidate, builder: (FormFieldState state) { return Column( children: [ diff --git a/lib/widgets/shared/text_fields/html_rich_editor.dart b/lib/widgets/shared/text_fields/html_rich_editor.dart index 71359604..7e751ec0 100644 --- a/lib/widgets/shared/text_fields/html_rich_editor.dart +++ b/lib/widgets/shared/text_fields/html_rich_editor.dart @@ -12,7 +12,7 @@ import 'package:speech_to_text/speech_to_text.dart' as stt; import '../speech-text-popup.dart'; class HtmlRichEditor extends StatefulWidget { - HtmlRichEditor({ + HtmlRichEditor({ key, this.hint = "Your text here...", this.initialText, @@ -30,7 +30,6 @@ class HtmlRichEditor extends StatefulWidget { final bool showBottomToolbar; final List toolbar; - @override _HtmlRichEditorState createState() => _HtmlRichEditorState(); } @@ -38,9 +37,9 @@ class HtmlRichEditor extends StatefulWidget { class _HtmlRichEditorState extends State { ProjectViewModel projectViewModel; stt.SpeechToText speech = stt.SpeechToText(); + HtmlEditorController controller = HtmlEditorController(); var recognizedWord; var event = RobotProvider(); - @override void initState() { @@ -55,8 +54,6 @@ class _HtmlRichEditorState extends State { super.initState(); } - - @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); @@ -65,18 +62,20 @@ class _HtmlRichEditorState extends State { children: [ HtmlEditor( hint: widget.hint, - height: widget.height, - initialText: widget.initialText, - showBottomToolbar: widget.showBottomToolbar, - darkMode: widget.darkMode, - decoration: widget.decoration ?? - BoxDecoration( - color: Colors.transparent, - borderRadius: BorderRadius.all( - Radius.circular(30.0), + options: HtmlEditorOptions( + showBottomToolbar: widget.showBottomToolbar, + darkMode: widget.darkMode, + decoration: widget.decoration ?? + BoxDecoration( + color: Colors.transparent, + borderRadius: BorderRadius.all( + Radius.circular(30.0), + ), + border: Border.all(color: Colors.grey[200], width: 0.5), ), - border: Border.all(color: Colors.grey[200], width: 0.5), - ), + height: widget.height, + ), + initialText: widget.initialText, toolbar: widget.toolbar ?? const [ // Style(), @@ -96,8 +95,7 @@ class _HtmlRichEditorState extends State { ], ), Positioned( - top: - 50, //MediaQuery.of(context).size.height * 0, + top: 50, //MediaQuery.of(context).size.height * 0, right: projectViewModel.isArabic ? MediaQuery.of(context).size.width * 0.75 : 15, @@ -107,8 +105,7 @@ class _HtmlRichEditorState extends State { icon: Icon(DoctorApp.speechtotext, color: Colors.black, size: 35), onPressed: () { - initSpeechState() - .then((value) => {onVoiceText()}); + initSpeechState().then((value) => {onVoiceText()}); }, ), ], @@ -117,7 +114,6 @@ class _HtmlRichEditorState extends State { ); } - onVoiceText() async { new SpeechToText(context: context).showAlertDialog(context); var lang = TranslationBase.of(AppGlobal.CONTEX).locale.languageCode; @@ -150,15 +146,15 @@ class _HtmlRichEditorState extends State { ].request(); } - void resultListener(result)async { + void resultListener(result) async { recognizedWord = result.recognizedWords; event.setValue({"searchText": recognizedWord}); - String txt = await HtmlEditor.getText(); + String txt = await controller.getText(); if (result.finalResult == true) { setState(() { SpeechToText.closeAlertDialog(context); speech.stop(); - HtmlEditor.setText(txt+recognizedWord); + controller.setText(txt + recognizedWord); }); } else { print(result.finalResult); diff --git a/lib/widgets/shared/text_fields/new_text_Field.dart b/lib/widgets/shared/text_fields/new_text_Field.dart index 9917b04f..2d089313 100644 --- a/lib/widgets/shared/text_fields/new_text_Field.dart +++ b/lib/widgets/shared/text_fields/new_text_Field.dart @@ -72,7 +72,7 @@ class NewTextFields extends StatefulWidget { this.onTap, this.fontSize = 15.0, this.fontWeight = FontWeight.w500, - this.autoValidate = false, + this.autoValidate, this.hintColor, this.isEnabled = true}) : super(key: key); @@ -106,7 +106,7 @@ class NewTextFields extends StatefulWidget { final bool keepPadding; final TextCapitalization textCapitalization; final List inputFormatters; - final bool autoValidate; + final AutovalidateMode autoValidate; final EdgeInsets padding; final bool focus; final bool borderOnlyError; @@ -172,7 +172,7 @@ class _NewTextFieldsState extends State { initialValue: widget.initialValue, keyboardAppearance: Theme.of(context).brightness, scrollPhysics: BouncingScrollPhysics(), - autovalidate: widget.autoValidate, + autovalidateMode: widget.autoValidate, textCapitalization: widget.textCapitalization, onFieldSubmitted: widget.inputAction == TextInputAction.next ? (widget.onSubmit != null @@ -195,11 +195,11 @@ class _NewTextFieldsState extends State { autofocus: widget.autoFocus ?? false, validator: widget.validator, onSaved: widget.onSaved, - style: Theme.of(context).textTheme.body2.copyWith( + style: Theme.of(context).textTheme.bodyText2.copyWith( fontSize: widget.fontSize, fontWeight: widget.fontWeight, color: Color(0xFF575757), fontFamily: 'Poppins'), inputFormatters: widget.keyboardType == TextInputType.phone ? [ - WhitelistingTextInputFormatter.digitsOnly, + FilteringTextInputFormatter.digitsOnly, _mobileFormatter, ] : widget.inputFormatters, diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 00000000..b0b5c68f --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1263 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "14.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "0.41.2" + archive: + dependency: transitive + description: + name: archive + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.13" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.8.2" + autocomplete_textfield: + dependency: "direct main" + description: + name: autocomplete_textfield + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.3" + badges: + dependency: "direct main" + description: + name: badges + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + barcode_scan_fix: + dependency: "direct main" + description: + name: barcode_scan_fix + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + bazel_worker: + dependency: transitive + description: + name: bazel_worker + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + build: + dependency: transitive + description: + name: build + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.2" + build_config: + dependency: transitive + description: + name: build_config + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.5" + build_daemon: + dependency: transitive + description: + name: build_daemon + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.7" + build_modules: + dependency: transitive + description: + name: build_modules + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.4" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.3" + build_runner: + dependency: "direct dev" + description: + name: build_runner + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1+1" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.7" + build_web_compilers: + dependency: "direct dev" + description: + name: build_web_compilers + url: "https://pub.dartlang.org" + source: hosted + version: "2.16.3" + built_collection: + dependency: transitive + description: + name: built_collection + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + url: "https://pub.dartlang.org" + source: hosted + version: "8.1.3" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + url: "https://pub.dartlang.org" + source: hosted + version: "2.5.1" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + charts_common: + dependency: transitive + description: + name: charts_common + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0" + charts_flutter: + dependency: "direct main" + description: + name: charts_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + chewie: + dependency: transitive + description: + name: chewie + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.10" + chewie_audio: + dependency: transitive + description: + name: chewie_audio + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0+1" + cli_util: + dependency: transitive + description: + name: cli_util + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + code_builder: + dependency: transitive + description: + name: code_builder + url: "https://pub.dartlang.org" + source: hosted + version: "3.7.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + connectivity: + dependency: "direct main" + description: + name: connectivity + url: "https://pub.dartlang.org" + source: hosted + 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+7" + connectivity_platform_interface: + dependency: transitive + description: + name: connectivity_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.6" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.5" + css_colors: + dependency: transitive + description: + name: css_colors + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.2" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.12" + date_time_picker: + dependency: "direct main" + description: + name: date_time_picker + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + device_info: + dependency: "direct main" + description: + name: device_info + url: "https://pub.dartlang.org" + source: hosted + 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" + dropdown_search: + dependency: "direct main" + description: + name: dropdown_search + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.9" + equatable: + dependency: transitive + description: + name: equatable + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.6" + eva_icons_flutter: + dependency: "direct main" + description: + name: eva_icons_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + expandable: + dependency: "direct main" + description: + name: expandable + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.4" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" + firebase: + dependency: transitive + description: + name: firebase + url: "https://pub.dartlang.org" + source: hosted + version: "7.3.3" + firebase_analytics: + dependency: "direct main" + description: + name: firebase_analytics + url: "https://pub.dartlang.org" + source: hosted + version: "6.3.0" + firebase_analytics_platform_interface: + dependency: transitive + description: + name: firebase_analytics_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + firebase_analytics_web: + dependency: transitive + description: + name: firebase_analytics_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1" + firebase_core: + dependency: transitive + description: + name: firebase_core + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.3" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.1+1" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + url: "https://pub.dartlang.org" + source: hosted + version: "7.0.3" + fixnum: + dependency: transitive + description: + name: fixnum + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.3" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_blurhash: + dependency: transitive + description: + name: flutter_blurhash + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" + flutter_device_type: + dependency: "direct main" + description: + name: flutter_device_type + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + flutter_flexible_toast: + dependency: "direct main" + description: + name: flutter_flexible_toast + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" + flutter_gifimage: + dependency: "direct main" + description: + name: flutter_gifimage + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + flutter_html: + dependency: "direct main" + description: + name: flutter_html + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + flutter_inappwebview: + dependency: transitive + description: + name: flutter_inappwebview + url: "https://pub.dartlang.org" + source: hosted + version: "5.3.2" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_page_indicator: + dependency: transitive + description: + name: flutter_page_indicator + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.3" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.11" + flutter_staggered_grid_view: + dependency: "direct main" + description: + name: flutter_staggered_grid_view + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.4" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "0.18.1" + flutter_swiper: + dependency: "direct main" + description: + name: flutter_swiper + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + font_awesome_flutter: + dependency: "direct main" + description: + name: font_awesome_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "8.12.0" + get_it: + dependency: "direct main" + description: + name: get_it + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.4" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + graphs: + dependency: transitive + description: + name: graphs + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + hexcolor: + dependency: "direct main" + description: + name: hexcolor + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.6" + hijri: + dependency: transitive + description: + name: hijri + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + hijri_picker: + dependency: "direct main" + description: + name: hijri_picker + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + html: + dependency: "direct main" + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.14.0+4" + html_editor_enhanced: + dependency: "direct main" + description: + name: html_editor_enhanced + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0+1" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.2" + http_interceptor: + dependency: "direct main" + description: + name: http_interceptor + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.4" + image: + dependency: transitive + description: + name: image + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.19" + imei_plugin: + dependency: "direct main" + description: + name: imei_plugin + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.17.0-nullsafety.2" + io: + dependency: transitive + description: + name: io + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.5" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" + json_annotation: + dependency: transitive + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.1" + local_auth: + dependency: "direct main" + description: + name: local_auth + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3+4" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + maps_launcher: + dependency: "direct main" + description: + name: maps_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.2+2" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + node_interop: + dependency: transitive + description: + name: node_interop + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + node_io: + dependency: transitive + description: + name: node_io + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + octo_image: + dependency: transitive + description: + name: octo_image + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" + open_iconic_flutter: + dependency: transitive + description: + name: open_iconic_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.3" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.1+1" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" + path_provider: + dependency: transitive + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + path_provider_ios: + dependency: transitive + description: + name: path_provider_ios + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.7" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" + percent_indicator: + dependency: "direct main" + description: + name: percent_indicator + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.9+1" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0+2" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + pool: + dependency: transitive + description: + name: pool + 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: "4.2.4" + progress_hud_v2: + dependency: "direct main" + description: + name: progress_hud_v2 + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + protobuf: + dependency: transitive + description: + name: protobuf + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + provider: + dependency: "direct main" + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "4.3.3" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.8" + quiver: + dependency: "direct main" + description: + name: quiver + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.5" + rxdart: + dependency: transitive + description: + name: rxdart + url: "https://pub.dartlang.org" + source: hosted + version: "0.25.0" + scratch_space: + dependency: transitive + description: + name: scratch_space + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4+3" + screen: + dependency: transitive + description: + name: screen + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.5" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.7+3" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + url: "https://pub.dartlang.org" + source: hosted + 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.4" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2+7" + shelf: + dependency: transitive + description: + name: shelf + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.9" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.4+1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_maps: + dependency: transitive + description: + name: source_maps + url: "https://pub.dartlang.org" + source: hosted + version: "0.10.9" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + speech_to_text: + dependency: "direct main" + description: + path: speech_to_text + relative: true + source: path + version: "0.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + sticky_headers: + dependency: "direct main" + description: + name: sticky_headers + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.8+1" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + stream_transform: + dependency: transitive + description: + name: stream_transform + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + synchronized: + dependency: transitive + description: + name: synchronized + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.8" + timing: + dependency: transitive + description: + name: timing + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+3" + transformer_page_view: + dependency: transitive + description: + name: transformer_page_view + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.6" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + 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+9" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.9" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5+3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+3" + uuid: + dependency: transitive + description: + name: uuid + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.2" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + video_player: + dependency: transitive + description: + name: video_player + url: "https://pub.dartlang.org" + source: hosted + version: "0.10.12+5" + video_player_platform_interface: + dependency: transitive + description: + name: video_player_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + video_player_web: + dependency: transitive + description: + name: video_player_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4+1" + visibility_detector: + dependency: transitive + description: + name: visibility_detector + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.2" + wakelock: + dependency: transitive + description: + name: wakelock + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4+2" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7+15" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + webview_flutter: + dependency: transitive + description: + name: webview_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.24" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.2" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "4.5.1" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" +sdks: + dart: ">=2.15.0 <3.0.0" + flutter: ">=2.5.0" diff --git a/pubspec.yaml b/pubspec.yaml index 1e5125de..8c67f532 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,8 +17,8 @@ environment: sdk: ">=2.8.0 <3.0.0" -#dependency_overrides: -# intl: 0.17.0-nullsafety.2 +dependency_overrides: + intl: 0.17.0-nullsafety.2 dependencies: @@ -94,7 +94,7 @@ dependencies: quiver: ^2.1.5 # Html Editor Enhanced - html_editor_enhanced: ^1.3.0 + html_editor_enhanced: ^1.5.0 #Network Image cached_network_image: ^2.5.0