finish sick leave design

merge-requests/847/head
Elham Rababh 5 years ago
parent ff07686bf7
commit f05455fddf

@ -27,12 +27,9 @@ class SickLeaveService extends BaseService {
dynamic get postReschedule => _postReschedule; dynamic get postReschedule => _postReschedule;
dynamic _postReschedule; dynamic _postReschedule;
dynamic get sickLeaveResponse => _sickLeaveResponse;
dynamic _sickLeaveResponse;
List<SickLeavePatientModel> getAllSickLeavePatient = List(); List<SickLeavePatientModel> getAllSickLeavePatient = List();
List<SickLeavePatientModel> getAllSickLeaveDoctor = List(); List<SickLeavePatientModel> getAllSickLeaveDoctor = List();
//getAllSickLeavePatient.addAll(getAllSickLeaveDoctor);
SickLeavePatientRequestModel _sickLeavePatientRequestModel = SickLeavePatientRequestModel(); SickLeavePatientRequestModel _sickLeavePatientRequestModel = SickLeavePatientRequestModel();
GetSickLeaveDoctorRequestModel _sickLeaveDoctorRequestModel = GetSickLeaveDoctorRequestModel(); GetSickLeaveDoctorRequestModel _sickLeaveDoctorRequestModel = GetSickLeaveDoctorRequestModel();
@ -56,8 +53,6 @@ class SickLeaveService extends BaseService {
Future addSickLeave(AddSickLeaveRequest addSickLeaveRequest) async { Future addSickLeave(AddSickLeaveRequest addSickLeaveRequest) async {
hasError = false; hasError = false;
if(_sickLeaveResponse!= null)
_sickLeaveResponse.clear();
await baseAppClient.post( await baseAppClient.post(
ADD_SICK_LEAVE, ADD_SICK_LEAVE,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
@ -80,7 +75,6 @@ class SickLeaveService extends BaseService {
await baseAppClient.post( await baseAppClient.post(
EXTEND_SICK_LEAVE, EXTEND_SICK_LEAVE,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
_sickLeaveResponse = response;
return Future.value(response); return Future.value(response);
}, },
onFailure: (String error, int statusCode) { onFailure: (String error, int statusCode) {

@ -10,8 +10,7 @@ class SickLeaveViewModel extends BaseViewModel {
SickLeaveService _sickLeaveService = locator<SickLeaveService>(); SickLeaveService _sickLeaveService = locator<SickLeaveService>();
get sickLeaveStatistics => _sickLeaveService.sickLeavestatisitics; get sickLeaveStatistics => _sickLeaveService.sickLeavestatisitics;
get getAllSIckLeave => _sickLeaveService.getAllSickLeave; get getAllSIckLeave => _sickLeaveService.getAllSickLeave;
//get getAllSIckLeavePatient => _sickLeaveService.getAllSickLeavePatient;
get sickleaveResponse => _sickLeaveService.sickLeaveResponse;
List get allOffTime => _sickLeaveService.getOffTimeList; List get allOffTime => _sickLeaveService.getOffTimeList;
List get allReasons => _sickLeaveService.getReasons; List get allReasons => _sickLeaveService.getReasons;
@ -32,11 +31,11 @@ class SickLeaveViewModel extends BaseViewModel {
} }
Future extendSickLeave(GetAllSickLeaveResponse extendSickLeaveRequest) async { Future extendSickLeave(GetAllSickLeaveResponse extendSickLeaveRequest) async {
setState(ViewState.Busy); setState(ViewState.BusyLocal);
await _sickLeaveService.extendSickLeave(extendSickLeaveRequest); await _sickLeaveService.extendSickLeave(extendSickLeaveRequest);
if (_sickLeaveService.hasError) { if (_sickLeaveService.hasError) {
error = _sickLeaveService.error; error = _sickLeaveService.error;
setState(ViewState.Error); setState(ViewState.ErrorLocal);
} else } else
setState(ViewState.Idle); setState(ViewState.Idle);
} }

@ -57,14 +57,11 @@ class _AddMedicationState extends State<AddMedication> {
onModelReady: (model) async { onModelReady: (model) async {
model.onAddMedicationStart(); model.onAddMedicationStart();
}, },
builder: (_, model, w) => builder: (_, model, w) => AppScaffold(
AppScaffold(
baseViewModel: model, baseViewModel: model,
isShowAppBar: true, isShowAppBar: true,
appBar: BottomSheetTitle( appBar: BottomSheetTitle(
title: TranslationBase title: TranslationBase.of(context).addMedication,
.of(context)
.addMedication,
), ),
body: Center( body: Center(
child: Container( child: Container(
@ -81,9 +78,12 @@ class _AddMedicationState extends State<AddMedication> {
child: Column( child: Column(
children: [ children: [
SizedBox( SizedBox(
height: SizeConfig.heightMultiplier * ( height: SizeConfig.heightMultiplier *
SizeConfig.isHeightVeryShort ?2:SizeConfig.isHeightShort? (SizeConfig.isHeightVeryShort
2:2), ? 2
: SizeConfig.isHeightShort
? 2
: 2),
), ),
Container( Container(
// height: screenSize.height * 0.070, // height: screenSize.height * 0.070,
@ -103,8 +103,7 @@ class _AddMedicationState extends State<AddMedication> {
GetMedicationResponseModel>( GetMedicationResponseModel>(
decoration: TextFieldsUtils decoration: TextFieldsUtils
.textFieldSelectorDecoration( .textFieldSelectorDecoration(
TranslationBase TranslationBase.of(
.of(
context) context)
.searchMedicineNameHere, .searchMedicineNameHere,
null, null,
@ -126,14 +125,13 @@ class _AddMedicationState extends State<AddMedication> {
'/' + '/' +
suggestion suggestion
.genericName), .genericName),
padding: padding: EdgeInsets.all(
EdgeInsets.all(
8.0)), 8.0)),
itemSorter: (a, b) => 1, itemSorter: (a, b) => 1,
itemFilter: (suggestion, itemFilter: (suggestion,
input) => input) =>
suggestion.genericName.toLowerCase() suggestion.genericName.toLowerCase().startsWith(
.startsWith(input.toLowerCase()) || input.toLowerCase()) ||
suggestion.description suggestion.description
.toLowerCase() .toLowerCase()
.startsWith(input .startsWith(input
@ -145,15 +143,14 @@ class _AddMedicationState extends State<AddMedication> {
), ),
) )
: AppTextFieldCustom( : AppTextFieldCustom(
height: Helpers.getTextFieldHeight(), height:
Helpers.getTextFieldHeight(),
hintText: _selectedMedication != hintText: _selectedMedication !=
null null
? _selectedMedication ? _selectedMedication
.description + .description +
(' (${_selectedMedication.genericName} )') (' (${_selectedMedication.genericName} )')
: TranslationBase : TranslationBase.of(context)
.of(
context)
.searchMedicineNameHere, .searchMedicineNameHere,
minLines: 1, minLines: 1,
maxLines: 1, maxLines: 1,
@ -167,18 +164,17 @@ class _AddMedicationState extends State<AddMedication> {
), ),
), ),
), ),
if (_selectedMedication != null)
if(_selectedMedication != null)
Column( Column(
children: [ children: [
SizedBox( SizedBox(
height: 3, height: 3,
), ),
Container( Container(
width: MediaQuery width: MediaQuery.of(context)
.of(context)
.size .size
.width * 0.7, .width *
0.7,
child: AppText( child: AppText(
_selectedMedication.description + _selectedMedication.description +
(' (${_selectedMedication.genericName} )'), (' (${_selectedMedication.genericName} )'),
@ -201,11 +197,10 @@ class _AddMedicationState extends State<AddMedication> {
? () { ? () {
MasterKeyDailog dialog = MasterKeyDailog dialog =
MasterKeyDailog( MasterKeyDailog(
list: model list:
.medicationDoseTimeList, model.medicationDoseTimeList,
okText: okText:
TranslationBase TranslationBase.of(context)
.of(context)
.ok, .ok,
selectedValue: selectedValue:
_selectedMedicationDose, _selectedMedicationDose,
@ -227,25 +222,21 @@ class _AddMedicationState extends State<AddMedication> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: builder: (BuildContext context) {
(BuildContext context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
hintText: hintText:
TranslationBase TranslationBase.of(context).doseTime,
.of(context)
.doseTime,
maxLines: 1, maxLines: 1,
minLines: 1, minLines: 1,
isTextFieldHasSuffix: true, isTextFieldHasSuffix: true,
controller: doseController, controller: doseController,
validationError: isFormSubmitted && validationError: isFormSubmitted &&
_selectedMedicationDose == null _selectedMedicationDose == null
? TranslationBase ? TranslationBase.of(context)
.of(context)
.emptyMessage .emptyMessage
: null, : null,
), ),
@ -261,11 +252,10 @@ class _AddMedicationState extends State<AddMedication> {
? () { ? () {
MasterKeyDailog dialog = MasterKeyDailog dialog =
MasterKeyDailog( MasterKeyDailog(
list: model list:
.medicationStrengthList, model.medicationStrengthList,
okText: okText:
TranslationBase TranslationBase.of(context)
.of(context)
.ok, .ok,
selectedValue: selectedValue:
_selectedMedicationStrength, _selectedMedicationStrength,
@ -287,25 +277,20 @@ class _AddMedicationState extends State<AddMedication> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: builder: (BuildContext context) {
(BuildContext context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
hintText: hintText:
TranslationBase TranslationBase.of(context).strength,
.of(context)
.strength,
maxLines: 1, maxLines: 1,
minLines: 1, minLines: 1,
controller: strengthController, controller: strengthController,
validationError: isFormSubmitted && validationError: isFormSubmitted &&
_selectedMedicationStrength == _selectedMedicationStrength == null
null ? TranslationBase.of(context)
? TranslationBase
.of(context)
.emptyMessage .emptyMessage
: null, : null,
), ),
@ -327,8 +312,7 @@ class _AddMedicationState extends State<AddMedication> {
selectedValue: selectedValue:
_selectedMedicationRoute, _selectedMedicationRoute,
okText: okText:
TranslationBase TranslationBase.of(context)
.of(context)
.ok, .ok,
okFunction: (selectedValue) { okFunction: (selectedValue) {
setState(() { setState(() {
@ -348,24 +332,19 @@ class _AddMedicationState extends State<AddMedication> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: builder: (BuildContext context) {
(BuildContext context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
hintText: hintText: TranslationBase.of(context).route,
TranslationBase
.of(context)
.route,
maxLines: 1, maxLines: 1,
minLines: 1, minLines: 1,
controller: routeController, controller: routeController,
validationError: isFormSubmitted && validationError: isFormSubmitted &&
_selectedMedicationRoute == null _selectedMedicationRoute == null
? TranslationBase ? TranslationBase.of(context)
.of(context)
.emptyMessage .emptyMessage
: null, : null,
), ),
@ -382,11 +361,10 @@ class _AddMedicationState extends State<AddMedication> {
? () { ? () {
MasterKeyDailog dialog = MasterKeyDailog dialog =
MasterKeyDailog( MasterKeyDailog(
list: model list:
.medicationFrequencyList, model.medicationFrequencyList,
okText: okText:
TranslationBase TranslationBase.of(context)
.of(context)
.ok, .ok,
selectedValue: selectedValue:
_selectedMedicationFrequency, _selectedMedicationFrequency,
@ -408,36 +386,33 @@ class _AddMedicationState extends State<AddMedication> {
showDialog( showDialog(
barrierDismissible: false, barrierDismissible: false,
context: context, context: context,
builder: builder: (BuildContext context) {
(BuildContext context) {
return dialog; return dialog;
}, },
); );
} }
: null, : null,
hintText: hintText:
TranslationBase TranslationBase.of(context).frequency,
.of(context)
.frequency,
enabled: false, enabled: false,
maxLines: 1, maxLines: 1,
minLines: 1, minLines: 1,
isTextFieldHasSuffix: true, isTextFieldHasSuffix: true,
controller: frequencyController, controller: frequencyController,
validationError: isFormSubmitted && validationError: isFormSubmitted &&
_selectedMedicationFrequency == _selectedMedicationFrequency == null
null ? TranslationBase.of(context)
? TranslationBase
.of(context)
.emptyMessage .emptyMessage
: null, : null,
), ),
SizedBox( SizedBox(
height: SizeConfig.heightMultiplier * height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort ? 20 : SizeConfig (SizeConfig.isHeightVeryShort
.isHeightShort ? 15 : 10), ? 20
: SizeConfig.isHeightShort
? 15
: 10),
), ),
], ],
), ),
)), )),
@ -450,8 +425,7 @@ class _AddMedicationState extends State<AddMedication> {
height: 0, height: 0,
) )
: BottomSheetDialogButton( : BottomSheetDialogButton(
label: label: TranslationBase.of(context).addMedication,
TranslationBase.of(context).addMedication,
onTap: () { onTap: () {
setState(() { setState(() {
isFormSubmitted = true; isFormSubmitted = true;
@ -467,11 +441,8 @@ class _AddMedicationState extends State<AddMedication> {
Navigator.of(context).pop(); Navigator.of(context).pop();
} }
}, },
) )),
) ),
,
)
,
); );
} }
} }

@ -279,11 +279,6 @@ class AddSickLeavScreen extends StatelessWidget {
openSickLeave(BuildContext context, isExtend, openSickLeave(BuildContext context, isExtend,
{GetAllSickLeaveResponse extendedData}) { {GetAllSickLeaveResponse extendedData}) {
// showModalBottomSheet(
// context: context,
// builder: (context) {
// return new Container(
// child:
Navigator.push( Navigator.push(
context, context,
FadePage( FadePage(

@ -48,14 +48,14 @@ class SickLeaveScreen extends StatefulWidget {
class _SickLeaveScreenState extends State<SickLeaveScreen> { class _SickLeaveScreenState extends State<SickLeaveScreen> {
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
TextEditingController _toDateController = new TextEditingController(); TextEditingController _toDateController = new TextEditingController();
TextEditingController _numberOfController = new TextEditingController(); TextEditingController _numberOfDayController = new TextEditingController();
TextEditingController _clinicController = new TextEditingController(); TextEditingController _clinicController = new TextEditingController();
TextEditingController _doctorController = new TextEditingController(); TextEditingController _doctorController = new TextEditingController();
TextEditingController _remarkController = new TextEditingController(); TextEditingController _remarkController = new TextEditingController();
String _selectedClinic;
Map profile = {}; Map profile = {};
AddSickLeaveRequest addSickLeave = AddSickLeaveRequest(); AddSickLeaveRequest addSickLeave = AddSickLeaveRequest();
bool isFormSubmitted = false;
void _presentDatePicker(id) { void _presentDatePicker(id) {
showDatePicker( showDatePicker(
@ -125,27 +125,27 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
maxLines: 1, maxLines: 1,
minLines: 1, minLines: 1,
dropDownColor: Colors.white, dropDownColor: Colors.white,
isTextFieldHasSuffix: true, isTextFieldHasSuffix: true,
inputFormatters: [ inputFormatters: [
FilteringTextInputFormatter.allow( FilteringTextInputFormatter.allow(
RegExp(ONLY_NUMBERS)) RegExp(ONLY_NUMBERS))
], ],
controller: _numberOfController, controller: _numberOfDayController,
onChanged: (value) { onChanged: (value) {
setState(() {
addSickLeave.noOfDays = value; addSickLeave.noOfDays = value;
});
if (widget.extendedData != null) { if (widget.extendedData != null) {
widget.extendedData.noOfDays = widget.extendedData.noOfDays =
int.parse(value); int.parse(value);
} }
}, },
// validationError: isFormSubmitted && validationError: isFormSubmitted &&
// _selectedMedicationFrequency == (addSickLeave.noOfDays == null)
// null ? TranslationBase.of(context)
// ? TranslationBase .pleaseEnterNoOfDays
// .of(context) : null,
// .emptyMessage
// : null,
), ),
SizedBox( SizedBox(
height: 10, height: 10,
@ -157,7 +157,8 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
}, },
hintText: widget.extendedData != null hintText: widget.extendedData != null
? widget.extendedData.startDate ? widget.extendedData.startDate
: TranslationBase.of(context).sickLeaveDate, : TranslationBase.of(context)
.sickLeaveDate,
enabled: false, enabled: false,
maxLines: 1, maxLines: 1,
minLines: 1, minLines: 1,
@ -170,13 +171,19 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
], ],
controller: _toDateController, controller: _toDateController,
onChanged: (value) { onChanged: (value) {
setState(() {
addSickLeave.startDate = value; addSickLeave.startDate = value;
});
if (widget.extendedData != null) { if (widget.extendedData != null) {
widget.extendedData.startDate = value; widget.extendedData.startDate = value;
} }
}, },
validationError: isFormSubmitted &&
(addSickLeave.startDate == null)
? TranslationBase.of(context)
.pleaseEnterDate
: null,
), ),
SizedBox( SizedBox(
height: 5, height: 5,
), ),
@ -212,11 +219,9 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
: SizedBox( : SizedBox(
height: 10, height: 10,
), ),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
AppTextFieldCustom( AppTextFieldCustom(
height: Helpers.getTextFieldHeight(), height: Helpers.getTextFieldHeight(),
hintText: hintText:
@ -247,25 +252,37 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
isTextFieldHasSuffix: true, isTextFieldHasSuffix: true,
controller: _remarkController, controller: _remarkController,
onChanged: (value) { onChanged: (value) {
setState(() {
addSickLeave.remarks = value; addSickLeave.remarks = value;
});
if (widget.extendedData != null) { if (widget.extendedData != null) {
widget.extendedData.remarks = value; widget.extendedData.remarks = value;
} }
}, },
validationError: isFormSubmitted &&
(addSickLeave.remarks == null)
? TranslationBase.of(context)
.pleaseEnterRemarks
: null,
), ),
], ],
), ),
), ),
), ),
), ),
bottomSheet: model2.state ==ViewState.Busy || model.state == ViewState.Busy?Container(height: 0,): Container( bottomSheet: model2.state == ViewState.Busy ||
model.state == ViewState.Busy
? Container(
height: 0,
)
: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(0.0), Radius.circular(0.0),
), ),
border: Border.all(color: HexColor('#707070'), width: 0), border: Border.all(
color: HexColor('#707070'), width: 0),
), ),
height: SizeConfig.heightMultiplier * height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort ? 12 : 10), (SizeConfig.isHeightVeryShort ? 12 : 10),
@ -284,98 +301,51 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
.addSickLeaverequest, .addSickLeaverequest,
color: Colors.green, color: Colors.green,
onPressed: () async { onPressed: () async {
if (widget.isExtended) { submitForm(model2);
await model2.extendSickLeave( }),
widget.extendedData);
DrAppToastMsg.showSuccesToast(
model2.sickleaveResponse[
'ListSickLeavesToExtent']
['success']);
Navigator.of(context)
.popUntil((route) {
return route.settings.name ==
PATIENTS_PROFILE;
});
Navigator.of(context).pushNamed(
ADD_SICKLEAVE,
arguments: {
'patient': widget.patient
});
//print(value);
//});
} else {
try {
if (addSickLeave.noOfDays == null) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.pleaseEnterNoOfDays);
} else if (addSickLeave.remarks ==
null) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.pleaseEnterRemarks);
} else if (addSickLeave.startDate ==
null) {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context)
.pleaseEnterDate);
} else {
GifLoaderDialogUtils.showMyDialog(
context);
addSickLeave.patientMRN = widget
.patient.patientMRN
.toString();
addSickLeave.appointmentNo =
widget.patient.appointmentNo
.toString();
await model2
.addSickLeave(addSickLeave);
if (model2.state ==
ViewState.ErrorLocal) {
Helpers.showErrorToast(
model2.error);
} else {
DrAppToastMsg.showSuccesToast(
TranslationBase.of(context)
.replySuccessfully);
}
GifLoaderDialogUtils.hideDialog(
context);
}
} catch (err) {
print(err);
}
}
},
),
), ),
SizedBox( SizedBox(
height: 5, height: 5,
), ),
], ],
), ),
) )),
),
))); )));
} }
void _validateInputs(model2) async { submitForm(SickLeaveViewModel model2) async {
{
if (widget.isExtended) {
GifLoaderDialogUtils.showMyDialog(context);
await model2.extendSickLeave(widget.extendedData);
if (model2.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(model2.error);
} else {
DrAppToastMsg.showSuccesToast(
TranslationBase.of(context).replySuccessfully);
Navigator.of(context).popUntil((route) {
return route.settings.name == PATIENTS_PROFILE;
});
Navigator.of(context)
.pushNamed(ADD_SICKLEAVE, arguments: {'patient': widget.patient});
}
GifLoaderDialogUtils.hideDialog(context);
} else {
try { try {
if (addSickLeave.noOfDays == null) { setState(() {
DrAppToastMsg.showErrorToast( isFormSubmitted = true;
TranslationBase.of(context).pleaseEnterNoOfDays); });
} else if (addSickLeave.remarks == null) { if (addSickLeave.noOfDays == null ||
DrAppToastMsg.showErrorToast( addSickLeave.startDate == null ||
TranslationBase.of(context).pleaseEnterRemarks); addSickLeave.remarks == null) {
} else if (addSickLeave.startDate == null) { return;
DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseEnterDate);
} else { } else {
GifLoaderDialogUtils.showMyDialog(context);
addSickLeave.patientMRN = widget.patient.patientMRN.toString(); addSickLeave.patientMRN = widget.patient.patientMRN.toString();
addSickLeave.appointmentNo = widget.patient.appointmentNo.toString(); addSickLeave.appointmentNo =
widget.patient.appointmentNo.toString();
await model2.addSickLeave(addSickLeave); await model2.addSickLeave(addSickLeave);
if (model2.state == ViewState.ErrorLocal) { if (model2.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(model2.error); Helpers.showErrorToast(model2.error);
@ -385,16 +355,13 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
} }
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
Navigator.of(context).popUntil((route) {
return route.settings.name == PATIENTS_PROFILE;
});
Navigator.of(context)
.pushNamed(ADD_SICKLEAVE, arguments: {'patient': widget.patient});
} }
} catch (err) { } catch (err) {
print(err); print(err);
} }
} }
}
}
getProfile() async { getProfile() async {
Map p = await sharedPref.getObj(DOCTOR_PROFILE); Map p = await sharedPref.getObj(DOCTOR_PROFILE);

@ -141,6 +141,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "7.1.0" version: "7.1.0"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
url: "https://pub.dartlang.org"
source: hosted
version: "2.5.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@ -433,6 +440,20 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" 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: flutter_device_type:
dependency: "direct main" dependency: "direct main"
description: description:
@ -595,6 +616,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.4" version: "3.1.4"
image:
dependency: transitive
description:
name: image
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.19"
imei_plugin: imei_plugin:
dependency: "direct main" dependency: "direct main"
description: description:
@ -664,7 +692,7 @@ packages:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0-nullsafety.4" version: "1.3.0-nullsafety.3"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -693,6 +721,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
octo_image:
dependency: transitive
description:
name: octo_image
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
open_iconic_flutter: open_iconic_flutter:
dependency: transitive dependency: transitive
description: description:
@ -728,6 +763,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.4" version: "0.1.4"
path_provider:
dependency: transitive
description:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.28"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
@ -735,6 +777,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1+2" version: "0.0.1+2"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4+8"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -854,6 +903,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "2.1.5"
rxdart:
dependency: transitive
description:
name: rxdart
url: "https://pub.dartlang.org"
source: hosted
version: "0.25.0"
scratch_space: scratch_space:
dependency: transitive dependency: transitive
description: description:
@ -950,13 +1006,27 @@ packages:
relative: true relative: true
source: path source: path
version: "0.0.0" version: "0.0.0"
sqflite:
dependency: transitive
description:
name: sqflite
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.2+4"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3+3"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.10.0-nullsafety.2" version: "1.10.0-nullsafety.1"
sticky_headers: sticky_headers:
dependency: "direct main" dependency: "direct main"
description: description:
@ -985,6 +1055,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0-nullsafety.1" version: "1.1.0-nullsafety.1"
synchronized:
dependency: transitive
description:
name: synchronized
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0+2"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
@ -1154,5 +1231,5 @@ packages:
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
sdks: sdks:
dart: ">=2.10.0 <=2.11.0-213.1.beta" dart: ">=2.10.2 <2.11.0"
flutter: ">=1.22.0 <2.0.0" flutter: ">=1.22.2 <2.0.0"

Loading…
Cancel
Save