From e4d3a01a6db00cfe7019df29d59219337da0c4e5 Mon Sep 17 00:00:00 2001 From: Naveen Renati <154230258+naveenr-egov@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:49:19 +0530 Subject: [PATCH] updated components to ui_components in attendance --- .../lib/pages/manage_attendance.dart | 104 ++-- .../lib/pages/mark_attendance.dart | 46 +- .../lib/pages/session_select.dart | 497 +++++++++--------- .../widgets/attendance_acknowledgement.dart | 22 +- packages/attendance_management/pubspec.lock | 362 ++++++------- 5 files changed, 515 insertions(+), 516 deletions(-) diff --git a/packages/attendance_management/lib/pages/manage_attendance.dart b/packages/attendance_management/lib/pages/manage_attendance.dart index c70a48f86..76ede97c0 100644 --- a/packages/attendance_management/lib/pages/manage_attendance.dart +++ b/packages/attendance_management/lib/pages/manage_attendance.dart @@ -7,6 +7,7 @@ import 'package:digit_ui_components/digit_components.dart'; import 'package:digit_ui_components/theme/digit_extended_theme.dart'; import 'package:digit_ui_components/widgets/atoms/label_value_list.dart'; import 'package:digit_ui_components/widgets/molecules/digit_card.dart'; +import 'package:digit_ui_components/widgets/molecules/label_value_summary.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -90,13 +91,13 @@ class _ManageAttendancePageState extends State { register.attendees?.length ?? 0, localization.translate(i18.attendance.startDateLabel): register.startDate != null - ? AttendanceDateTimeManagement.getDateFromTimestamp( - register.startDate!) + ? AttendanceDateTimeManagement + .getDateFromTimestamp(register.startDate!) : localization.translate(i18.common.coreCommonNA), localization.translate(i18.attendance.endDateLabel): register.endDate != null - ? AttendanceDateTimeManagement.getDateFromTimestamp( - register.endDate!) + ? AttendanceDateTimeManagement + .getDateFromTimestamp(register.endDate!) : localization.translate(i18.common.coreCommonNA), localization.translate(i18.attendance.statusLabel): register.endDate != null && @@ -174,7 +175,8 @@ class _ManageAttendancePageState extends State { children: [ Padding( padding: - EdgeInsets.all(theme.spacerTheme.spacer2).copyWith( + EdgeInsets.all(theme.spacerTheme.spacer2) + .copyWith( top: 2, left: theme.spacerTheme.spacer2 * 2, ), @@ -270,53 +272,51 @@ class RegisterCard extends StatelessWidget { var localization = AttendanceLocalization.of(context); return DigitCard( - padding: EdgeInsets.all(theme.spacerTheme.spacer2), - margin: EdgeInsets.all(theme.spacerTheme.spacer2), - children: [ - LabelValueList( - labelFlex: theme.spacerTheme.spacer3.toInt(), - padding: EdgeInsets.all(theme.spacerTheme.spacer3), - items: data.keys.map((e) { - return LabelValuePair(label: e, value: data[e]?.toString() ?? ''); - }).toList(), - ), - show - ? Button( - size: ButtonSize.large, - type: ButtonType.primary, - mainAxisSize: MainAxisSize.max, - label: - AttendanceLocalization.of(context) + padding: EdgeInsets.all(theme.spacerTheme.spacer2), + margin: EdgeInsets.all(theme.spacerTheme.spacer2), + children: [ + LabelValueSummary( + padding: EdgeInsets.all(theme.spacerTheme.spacer3), + items: data.keys.map((e) { + return LabelValueItem(label: e, value: data[e]?.toString() ?? ''); + }).toList(), + ), + show + ? DigitButton( + size: DigitButtonSize.large, + type: DigitButtonType.primary, + mainAxisSize: MainAxisSize.max, + label: AttendanceLocalization.of(context) .translate(i18.attendance.openRegister), - onPressed: () async { - if (noOfAttendees == 0) { - Toast.showToast( - context, - message: localization.translate( - i18.attendance.noAttendeesEnrolledMessage), - type: ToastType.error, - ); - } else if (startDate != null && - startDate!.millisecondsSinceEpoch > - DateTime.now().millisecondsSinceEpoch) { - Toast.showToast( - context, - message: localization - .translate(i18.attendance.registerNotStarted), - type: ToastType.error, - ); - } else { - await context.router.push( - AttendanceDateSessionSelectionRoute( - registers: registers, - registerID: registerId, - ), - ); - attendanceBloc.add(const AttendanceEvents.initial()); - } - }, - ) - : const Offstage(),] - ); + onPressed: () async { + if (noOfAttendees == 0) { + Toast.showToast( + context, + message: localization.translate( + i18.attendance.noAttendeesEnrolledMessage), + type: ToastType.error, + ); + } else if (startDate != null && + startDate!.millisecondsSinceEpoch > + DateTime.now().millisecondsSinceEpoch) { + Toast.showToast( + context, + message: localization + .translate(i18.attendance.registerNotStarted), + type: ToastType.error, + ); + } else { + await context.router.push( + AttendanceDateSessionSelectionRoute( + registers: registers, + registerID: registerId, + ), + ); + attendanceBloc.add(const AttendanceEvents.initial()); + } + }, + ) + : const Offstage(), + ]); } } diff --git a/packages/attendance_management/lib/pages/mark_attendance.dart b/packages/attendance_management/lib/pages/mark_attendance.dart index 48f8a2ee3..32cecfb9d 100644 --- a/packages/attendance_management/lib/pages/mark_attendance.dart +++ b/packages/attendance_management/lib/pages/mark_attendance.dart @@ -3,18 +3,18 @@ import 'dart:async'; import 'package:attendance_management/attendance_management.dart'; import 'package:attendance_management/utils/extensions/extensions.dart'; import 'package:auto_route/auto_route.dart'; -import 'package:digit_ui_components/widgets/atoms/digit_loader.dart'; -import 'package:digit_ui_components/widgets/molecules/digit_table.dart' - as table; import 'package:digit_data_model/data/data_repository.dart'; -import 'package:digit_ui_components/blocs/fetch_location_bloc.dart'; import 'package:digit_ui_components/digit_components.dart'; +import 'package:digit_ui_components/services/location_bloc.dart'; import 'package:digit_ui_components/theme/digit_extended_theme.dart'; import 'package:digit_ui_components/utils/component_utils.dart'; +import 'package:digit_ui_components/widgets/atoms/digit_loader.dart'; import 'package:digit_ui_components/widgets/atoms/digit_search_bar.dart'; import 'package:digit_ui_components/widgets/atoms/pop_up_card.dart'; import 'package:digit_ui_components/widgets/atoms/table_cell.dart'; import 'package:digit_ui_components/widgets/molecules/digit_card.dart'; +import 'package:digit_ui_components/widgets/molecules/digit_table.dart' + as table; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:intl/intl.dart'; @@ -156,15 +156,16 @@ class _MarkAttendancePageState extends State { attendanceCollectionModel!, viewOnly); return ScrollableContent( - enableFixedButton: true, + enableFixedDigitButton: true, footer: viewOnly ? const SizedBox.shrink() : DigitCard( - margin: EdgeInsets.only(top: theme.spacerTheme.spacer4), + margin: EdgeInsets.only( + top: theme.spacerTheme.spacer4), children: [ - Button( - size: ButtonSize.large, - type: ButtonType.secondary, + DigitButton( + size: DigitButtonSize.large, + type: DigitButtonType.secondary, mainAxisSize: MainAxisSize.max, onPressed: () { checkIfAllAttendeesMarked( @@ -183,9 +184,9 @@ class _MarkAttendancePageState extends State { .saveAndMarkLaterLabel, ), ), - Button( - size: ButtonSize.large, - type: ButtonType.primary, + DigitButton( + size: DigitButtonSize.large, + type: DigitButtonType.primary, mainAxisSize: MainAxisSize.max, onPressed: !viewOnly ? () { @@ -199,8 +200,7 @@ class _MarkAttendancePageState extends State { context, ); } - : () { - }, + : () {}, label: localizations.translate( (!viewOnly) ? i18.common.coreCommonSubmit @@ -409,9 +409,9 @@ class _MarkAttendancePageState extends State { SizedBox( width: 100, height: 40, - child: Button( - size: ButtonSize.large, - type: ButtonType.primary, + child: DigitButton( + size: DigitButtonSize.large, + type: DigitButtonType.primary, mainAxisSize: MainAxisSize.max, label: k.translate( i18.attendance.closeButton, @@ -496,12 +496,12 @@ class _MarkAttendancePageState extends State { description: '${localizations.translate(i18.attendance.confirmationDesc)} \n\n${localizations.translate(i18.attendance.confirmationDescNote)}', actions: [ - Button( + DigitButton( label: localizations.translate( i18.attendance.proceed, ), - type: ButtonType.primary, - size: ButtonSize.large, + type: DigitButtonType.primary, + size: DigitButtonSize.large, onPressed: () { individualLogBloc?.add(SaveAsDraftEvent( entryTime: widget.entryTime, @@ -519,11 +519,11 @@ class _MarkAttendancePageState extends State { navigateToAcknowledgement(localizations); }, ), - Button( + DigitButton( label: localizations .translate(i18.common.coreCommonGoback), - type: ButtonType.secondary, - size: ButtonSize.large, + type: DigitButtonType.secondary, + size: DigitButtonSize.large, onPressed: () { Navigator.of( context, diff --git a/packages/attendance_management/lib/pages/session_select.dart b/packages/attendance_management/lib/pages/session_select.dart index d1f897825..5081ff3ae 100644 --- a/packages/attendance_management/lib/pages/session_select.dart +++ b/packages/attendance_management/lib/pages/session_select.dart @@ -3,6 +3,7 @@ import 'package:attendance_management/utils/extensions/extensions.dart'; import 'package:auto_route/auto_route.dart'; import 'package:digit_data_model/data_model.dart'; import 'package:digit_ui_components/digit_components.dart'; +import 'package:digit_ui_components/models/RadioButtonModel.dart'; import 'package:digit_ui_components/theme/digit_extended_theme.dart'; import 'package:digit_ui_components/widgets/molecules/digit_card.dart'; import 'package:flutter/material.dart'; @@ -98,260 +99,287 @@ class _AttendanceDateSessionSelectionPageState showHelp: true, showLogoutCTA: false, ), - enableFixedButton: true, + enableFixedDigitButton: true, footer: DigitCard( - padding: EdgeInsets.all( - theme.spacerTheme.spacer2), + padding: + EdgeInsets.all(theme.spacerTheme.spacer2), children: [ ReactiveValueListenableBuilder( - formControlName: _dateOfSession, - builder: (context, value, _) { - return Button( - size: ButtonSize.large, - type: ButtonType.primary, - mainAxisSize: MainAxisSize.max, - label: localizations.translate( - isAttendanceCompleted( - value.value as DateTime) - ? i18.attendance.viewAttendance - : i18.attendance.markAttendance, - ), - onPressed: () async { - form.markAllAsTouched(); - if (selectedRegister - .additionalDetails?[ - EnumValues.sessions - .toValue()] == - 2 && + formControlName: _dateOfSession, + builder: (context, value, _) { + return DigitButton( + size: DigitButtonSize.large, + type: DigitButtonType.primary, + mainAxisSize: MainAxisSize.max, + label: localizations.translate( + isAttendanceCompleted( + value.value as DateTime) + ? i18 + .attendance.viewAttendance + : i18.attendance + .markAttendance, + ), + onPressed: () async { + form.markAllAsTouched(); + if (selectedRegister + .additionalDetails?[ + EnumValues.sessions + .toValue()] == + 2 && + form + .control( + _sessionRadio) + .value == + null) { form - .control(_sessionRadio) - .value == - null) { - form - .control(_sessionRadio) - .setErrors({'': true}); + .control(_sessionRadio) + .setErrors({'': true}); - form.control(_sessionRadio).setValidators([Validators.required]); + form + .control(_sessionRadio) + .setValidators( + [Validators.required]); - // Ensure form control is updated after changing validators - form.control(_sessionRadio).updateValueAndValidity(); - } else { - if (!form.valid) { - return; - } else { - final session = form + // Ensure form control is updated after changing validators + form .control(_sessionRadio) - .value; - DateTime dateSession = form - .control(_dateOfSession) - .value; + .updateValueAndValidity(); + } else { + if (!form.valid) { + return; + } else { + final session = form + .control(_sessionRadio) + .value; + DateTime dateSession = form + .control(_dateOfSession) + .value; - final entryTime = selectedRegister - .additionalDetails?[ - EnumValues.sessions - .toValue()] == - 2 - ? AttendanceDateTimeManagement - .getMillisecondEpoch( - dateSession, - form - .control( - _sessionRadio) - .value != - null - ? int.parse(form - .control( - _sessionRadio) - .value) - : 0, - "entryTime", - ) - : (DateTime( - dateSession.year, - dateSession.month, - dateSession.day, - 9) - .millisecondsSinceEpoch); + final entryTime = selectedRegister + .additionalDetails?[ + EnumValues + .sessions + .toValue()] == + 2 + ? AttendanceDateTimeManagement + .getMillisecondEpoch( + dateSession, + form + .control( + _sessionRadio) + .value != + null + ? int.parse(form + .control( + _sessionRadio) + .value) + : 0, + "entryTime", + ) + : (DateTime( + dateSession.year, + dateSession.month, + dateSession.day, + 9) + .millisecondsSinceEpoch); - final exitTime = selectedRegister - .additionalDetails?[ - EnumValues.sessions - .toValue()] == - 2 - ? AttendanceDateTimeManagement - .getMillisecondEpoch( - dateSession, - form - .control( - _sessionRadio) - .value != - null - ? int.parse(form - .control( - _sessionRadio) - .value) - : 1, - "exitTime", - ) - : (DateTime( - dateSession.year, - dateSession.month, - dateSession.day, - 18) - .millisecondsSinceEpoch); + final exitTime = selectedRegister + .additionalDetails?[ + EnumValues + .sessions + .toValue()] == + 2 + ? AttendanceDateTimeManagement + .getMillisecondEpoch( + dateSession, + form + .control( + _sessionRadio) + .value != + null + ? int.parse(form + .control( + _sessionRadio) + .value) + : 1, + "exitTime", + ) + : (DateTime( + dateSession.year, + dateSession.month, + dateSession.day, + 18) + .millisecondsSinceEpoch); - final submit = - await context.router.push( - MarkAttendanceRoute( - attendees: selectedRegister - .attendees != - null - //Filtering attendees based on current time and enrollment date of the attendee - ? (selectedRegister - .attendees ?? - []) - .where((att) => - att.enrollmentDate != - null && - att.enrollmentDate! <= - entryTime) - .toList() - : [], - dateTime: dateSession, - session: session != null ? int.parse(session) : null, - entryTime: entryTime, - exitTime: exitTime, - registerId: - selectedRegister.id, - tenantId: selectedRegister - .tenantId - .toString(), - ), - ); - if (submit == null) { - form - .control(_sessionRadio) - .value = null; + final submit = + await context.router.push( + MarkAttendanceRoute( + attendees: selectedRegister + .attendees != + null + //Filtering attendees based on current time and enrollment date of the attendee + ? (selectedRegister + .attendees ?? + []) + .where((att) => + att.enrollmentDate != + null && + att.enrollmentDate! <= + entryTime) + .toList() + : [], + dateTime: dateSession, + session: session != null + ? int.parse(session) + : null, + entryTime: entryTime, + exitTime: exitTime, + registerId: + selectedRegister.id, + tenantId: selectedRegister + .tenantId + .toString(), + ), + ); + if (submit == null) { + form + .control(_sessionRadio) + .value = null; + } } } - } - }, - ); - })] - ), + }, + ); + }) + ]), children: [ - DigitCard( - children: [ - Text( - localizations.translate( - i18.attendance.selectSession, - ), - style: DigitTheme.instance.mobileTheme - .textTheme.displayMedium, + DigitCard(children: [ + Text( + localizations.translate( + i18.attendance.selectSession, ), - ReactiveWrapperField( - formControlName: _dateOfSession, - builder: (field){ - return LabeledField( - label: localizations.translate( - i18.attendance.dateOfSession, - ), - child: DigitDateFormInput( - onChange: (val) => { - form.control(_dateOfSession).markAsTouched(), - form.control(_dateOfSession).value = AttendanceDateTimeManagement.getFormattedDateToDateTime(val), - }, - initialValue: AttendanceDateTimeManagement.getDateString(form.control(_dateOfSession).value), - firstDate: selectedRegister.startDate != - null - ? DateTime - .fromMillisecondsSinceEpoch( - selectedRegister.startDate!) - : null, - lastDate: selectedRegister.endDate != null - ? selectedRegister.endDate! < - DateTime.now() - .millisecondsSinceEpoch - ? DateTime - .fromMillisecondsSinceEpoch( - selectedRegister - .endDate!) - : DateTime.now() - : null, - cancelText: localizations.translate( - i18.common.coreCommonCancel), - confirmText: localizations - .translate(i18.common.coreCommonOk), - ), - );} - ), - - if (selectedRegister.additionalDetails?[ - EnumValues.sessions.toValue()] == - 2) - ReactiveWrapperField( - formControlName: _sessionRadio, - validationMessages: { - 'required': (_) => + style: DigitTheme.instance.mobileTheme + .textTheme.displayMedium, + ), + ReactiveWrapperField( + formControlName: _dateOfSession, + builder: (field) { + return LabeledField( + label: localizations.translate( + i18.attendance.dateOfSession, + ), + child: DigitDateFormInput( + onChange: (val) => { + form + .control(_dateOfSession) + .markAsTouched(), + form + .control(_dateOfSession) + .value = + AttendanceDateTimeManagement + .getFormattedDateToDateTime( + val), + }, + initialValue: + AttendanceDateTimeManagement + .getDateString(form + .control(_dateOfSession) + .value), + firstDate: selectedRegister + .startDate != + null + ? DateTime + .fromMillisecondsSinceEpoch( + selectedRegister + .startDate!) + : null, + lastDate: selectedRegister + .endDate != + null + ? selectedRegister.endDate! < + DateTime.now() + .millisecondsSinceEpoch + ? DateTime + .fromMillisecondsSinceEpoch( + selectedRegister + .endDate!) + : DateTime.now() + : null, + cancelText: localizations.translate( + i18.common.coreCommonCancel), + confirmText: localizations.translate( - i18.attendance.plzSelectSession), - }, - showErrors: (control) => control.invalid && - control.touched, - // Ensures error is shown if invalid and touched - builder: (field) { - return LabeledField( - isRequired: true, - label: localizations.translate(i18 - .attendance.sessionDescForRadio), - child: RadioList( - onChanged: (val) { - form - .control( - _sessionRadio) - .markAsTouched(); - form - .control( - _sessionRadio) - .value = val.code; - }, - groupValue: form - .control( - _sessionRadio) - .value ?? "", - errorMessage: field.errorText, - radioButtons:[ - RadioButtonModel( - code: "0", - name: localizations - .translate(i18.attendance.morningSession,) - ), - RadioButtonModel( - code: "1", - name: localizations - .translate(i18.attendance.eveningSession,) - ) - ] - ), - ); - }), - ] - ), + i18.common.coreCommonOk), + ), + ); + }), + if (selectedRegister.additionalDetails?[ + EnumValues.sessions.toValue()] == + 2) + ReactiveWrapperField( + formControlName: _sessionRadio, + validationMessages: { + 'required': (_) => + localizations.translate(i18 + .attendance.plzSelectSession), + }, + showErrors: (control) => + control.invalid && control.touched, + // Ensures error is shown if invalid and touched + builder: (field) { + return LabeledField( + isRequired: true, + label: localizations.translate(i18 + .attendance + .sessionDescForRadio), + child: RadioList( + onChanged: (val) { + form + .control(_sessionRadio) + .markAsTouched(); + form + .control(_sessionRadio) + .value = val.code; + }, + groupValue: form + .control(_sessionRadio) + .value ?? + "", + errorMessage: field.errorText, + radioDigitButtons: [ + RadioButtonModel( + code: "0", + name: localizations + .translate( + i18.attendance + .morningSession, + )), + RadioButtonModel( + code: "1", + name: localizations + .translate( + i18.attendance + .eveningSession, + )) + ]), + ); + }), + ]), if (showInfoCard( selectedRegister, DateTime.now(), )) - DigitCard( - children: [InfoCard( + DigitCard(children: [ + InfoCard( title: localizations.translate( - i18.attendance.missedAttendanceHeader, + i18.attendance.missedAttendanceHeader, ), type: InfoType.info, description: localizations.translate( getMissedDays(context), ), - ),] - ) + ), + ]) else const SizedBox(), ], @@ -366,10 +394,7 @@ class _AttendanceDateSessionSelectionPageState return fb.group({ _dateOfSession: FormControl(value: DateTime.now(), validators: []), - _sessionRadio: FormControl( - value: null, - validators: [] - ), + _sessionRadio: FormControl(value: null, validators: []), }); } @@ -412,8 +437,10 @@ class _AttendanceDateSessionSelectionPageState if ((register.attendanceLog ?? []).isNotEmpty) { final selectDateCompleted = register.attendanceLog ?.where((l) => - AttendanceDateTimeManagement.getFilteredDate(l.keys.first.toString()) == - AttendanceDateTimeManagement.getFilteredDate(selectedDate.toString())) + AttendanceDateTimeManagement.getFilteredDate( + l.keys.first.toString()) == + AttendanceDateTimeManagement.getFilteredDate( + selectedDate.toString())) .first .values .first; diff --git a/packages/attendance_management/lib/widgets/attendance_acknowledgement.dart b/packages/attendance_management/lib/widgets/attendance_acknowledgement.dart index 2c70dd300..eb912631c 100644 --- a/packages/attendance_management/lib/widgets/attendance_acknowledgement.dart +++ b/packages/attendance_management/lib/widgets/attendance_acknowledgement.dart @@ -19,7 +19,7 @@ class AttendanceAcknowledgementPage extends LocalizedStatefulWidget { final VoidCallback? secondaryAction; final String? secondaryLabel; - AttendanceAcknowledgementPage({ + const AttendanceAcknowledgementPage({ super.key, super.appLocalizations, required this.label, @@ -60,22 +60,20 @@ class _AttendanceAcknowledgementPageState i18.acknowledgementSuccess.acknowledgementDescriptionText, ), actions: [ - Button( + DigitButton( label: widget.actionLabel ?? '', - onPressed: widget.action ?? (){}, - type: ButtonType.primary, - size: ButtonSize.large, + onPressed: widget.action ?? () {}, + type: DigitButtonType.primary, + size: DigitButtonSize.large, mainAxisSize: MainAxisSize.max, ), - Button( - type: ButtonType.secondary, - size: ButtonSize.large, + DigitButton( + type: DigitButtonType.secondary, + size: DigitButtonSize.large, label: widget.secondaryLabel ?? '', - onPressed: widget.secondaryAction ?? (){}, + onPressed: widget.secondaryAction ?? () {}, ), - - ] - ), + ]), ], )); } diff --git a/packages/attendance_management/pubspec.lock b/packages/attendance_management/pubspec.lock index de4b65da0..b424c9901 100644 --- a/packages/attendance_management/pubspec.lock +++ b/packages/attendance_management/pubspec.lock @@ -9,6 +9,14 @@ packages: url: "https://pub.dev" source: hosted version: "64.0.0" + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: "37a42d06068e2fe3deddb2da079a8c4d105f241225ba27b7122b37e9865fd8f7" + url: "https://pub.dev" + source: hosted + version: "1.3.35" analyzer: dependency: transitive description: @@ -61,18 +69,18 @@ packages: dependency: "direct main" description: name: auto_route - sha256: eb33554581a0a4aa7e6da0f13a44291a55bf71359012f1d9feb41634ff908ff8 + sha256: a9001a90539ca3effc168f7e1029a5885c7326b9032c09ac895e303c1d137704 url: "https://pub.dev" source: hosted - version: "7.9.2" + version: "8.3.0" auto_route_generator: dependency: "direct dev" description: name: auto_route_generator - sha256: "11067a3bcd643812518fe26c0c9ec073990286cabfd9d74b6da9ef9b913c4d22" + sha256: ba28133d3a3bf0a66772bcc98dade5843753cd9f1a8fb4802b842895515b67d3 url: "https://pub.dev" source: hosted - version: "7.3.2" + version: "8.0.0" bloc: dependency: transitive description: @@ -130,13 +138,13 @@ packages: source: hosted version: "2.4.2" build_runner: - dependency: "direct main" + dependency: "direct dev" description: name: build_runner - sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" + sha256: "644dc98a0f179b872f612d3eb627924b578897c629788e858157fa5e704ca0c7" url: "https://pub.dev" source: hosted - version: "2.4.9" + version: "2.4.11" build_runner_core: dependency: transitive description: @@ -165,26 +173,26 @@ packages: dependency: transitive description: name: camera - sha256: "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797" + sha256: "26ff41045772153f222ffffecba711a206f670f5834d40ebf5eed3811692f167" url: "https://pub.dev" source: hosted - version: "0.10.5+9" - camera_android: + version: "0.11.0+2" + camera_android_camerax: dependency: transitive description: - name: camera_android - sha256: b350ac087f111467e705b2b76cc1322f7f5bdc122aa83b4b243b0872f390d229 + name: camera_android_camerax + sha256: "011be2ab0e5b3e3aa8094413fa890f8c5c5afd7cfdaef353a992047d4dab5780" url: "https://pub.dev" source: hosted - version: "0.10.9+2" + version: "0.6.8+2" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: "608b56b0880722f703871329c4d7d4c2f379c8e2936940851df7fc041abc6f51" + sha256: "2e4c568f70e406ccb87376bc06b53d2f5bebaab71e2fbcc1a950e31449381bcf" url: "https://pub.dev" source: hosted - version: "0.9.13+10" + version: "0.9.17+5" camera_platform_interface: dependency: transitive description: @@ -257,22 +265,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.18.0" - connectivity_plus: - dependency: "direct main" - description: - name: connectivity_plus - sha256: "224a77051d52a11fbad53dd57827594d3bd24f945af28bd70bab376d68d437f0" - url: "https://pub.dev" - source: hosted - version: "5.0.2" - connectivity_plus_platform_interface: - dependency: transitive - description: - name: connectivity_plus_platform_interface - sha256: cf1d1c28f4416f8c654d7dc3cd638ec586076255d407cef3ddbdaf178272a71a - url: "https://pub.dev" - source: hosted - version: "1.2.4" convert: dependency: transitive description: @@ -293,10 +285,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.4+2" crypto: dependency: transitive description: @@ -324,12 +316,10 @@ packages: dart_mappable_builder: dependency: "direct dev" description: - path: "packages/dart_mappable_builder" - ref: master - resolved-ref: "8011a4c367094dfb018fce701d700a582ba862bb" - url: "https://github.com/egovernments/health-campaign-field-worker-app/" - source: git - version: "4.2.0" + path: "../dart_mappable_builder" + relative: true + source: path + version: "4.2.3" dart_style: dependency: transitive description: @@ -346,14 +336,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - dbus: - dependency: transitive - description: - name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" - url: "https://pub.dev" - source: hosted - version: "0.7.10" diff_match_patch: dependency: transitive description: @@ -362,28 +344,28 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.1" - digit_components: + digit_data_model: dependency: "direct main" description: - path: "../digit_components" + path: "../digit_data_model" relative: true source: path - version: "1.0.2+1" - digit_data_model: - dependency: "direct main" - description: - name: digit_data_model - sha256: "63c878bfe49e3e8db190dd5cd35d7a7b93b2e3b6663cebaaee25ff0089c1112b" - url: "https://pub.dev" - source: hosted version: "1.0.5-dev.1" + digit_firebase_services: + dependency: "direct overridden" + description: + path: "../digit_firebase_services" + relative: true + source: path + version: "0.0.1" digit_ui_components: dependency: "direct main" description: - name: digit_ui_components - sha256: e38f163515aa6a6c5283754e741b21f33fb3a6c0a1fc171a1e4e6620510d46ae - url: "https://pub.dev" - source: hosted + path: "flutter/digit-ui-components/digit_components" + ref: version_update + resolved-ref: c68a3ceb1f00c6128780c0cbeb58d9aa8c4d7a13 + url: "https://github.com/egovernments/DIGIT-UI-LIBRARIES" + source: git version: "0.0.1+7" dio: dependency: "direct main" @@ -413,10 +395,10 @@ packages: dependency: "direct main" description: name: drift - sha256: b50a8342c6ddf05be53bda1d246404cbad101b64dc73e8d6d1ac1090d119b4e2 + sha256: "6acedc562ffeed308049f78fb1906abad3d65714580b6745441ee6d50ec564cd" url: "https://pub.dev" source: hosted - version: "2.15.0" + version: "2.18.0" drift_db_viewer: dependency: "direct main" description: @@ -429,10 +411,10 @@ packages: dependency: "direct dev" description: name: drift_dev - sha256: c037d9431b6f8dc633652b1469e5f53aaec6e4eb405ed29dd232fa888ef10d88 + sha256: d9b020736ea85fff1568699ce18b89fabb3f0f042e8a7a05e84a3ec20d39acde url: "https://pub.dev" source: hosted - version: "2.15.0" + version: "2.18.0" fake_async: dependency: transitive description: @@ -497,6 +479,46 @@ packages: url: "https://pub.dev" source: hosted version: "0.9.3+2" + firebase_core: + dependency: transitive + description: + name: firebase_core + sha256: "26de145bb9688a90962faec6f838247377b0b0d32cc0abecd9a4e43525fc856c" + url: "https://pub.dev" + source: hosted + version: "2.32.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: b94b217e3ad745e784960603d33d99471621ecca151c99c670869b76e50ad2a6 + url: "https://pub.dev" + source: hosted + version: "5.3.1" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "362e52457ed2b7b180964769c1e04d1e0ea0259fdf7025fdfedd019d4ae2bd88" + url: "https://pub.dev" + source: hosted + version: "2.17.5" + firebase_crashlytics: + dependency: transitive + description: + name: firebase_crashlytics + sha256: "9897c01efaa950d2f6da8317d12452749a74dc45f33b46390a14cfe28067f271" + url: "https://pub.dev" + source: hosted + version: "3.5.7" + firebase_crashlytics_platform_interface: + dependency: transitive + description: + name: firebase_crashlytics_platform_interface + sha256: "16a71e08fbf6e00382816e1b13397898c29a54fa0ad969c2c2a3b82a704877f0" + url: "https://pub.dev" + source: hosted + version: "3.6.35" fixnum: dependency: transitive description: @@ -542,62 +564,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.13" - flutter_keyboard_visibility: - dependency: transitive - description: - name: flutter_keyboard_visibility - sha256: "4983655c26ab5b959252ee204c2fffa4afeb4413cd030455194ec0caa3b8e7cb" - url: "https://pub.dev" - source: hosted - version: "5.4.1" - flutter_keyboard_visibility_linux: - dependency: transitive - description: - name: flutter_keyboard_visibility_linux - sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - flutter_keyboard_visibility_macos: - dependency: transitive - description: - name: flutter_keyboard_visibility_macos - sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 - url: "https://pub.dev" - source: hosted - version: "1.0.0" - flutter_keyboard_visibility_platform_interface: - dependency: transitive - description: - name: flutter_keyboard_visibility_platform_interface - sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 - url: "https://pub.dev" - source: hosted - version: "2.0.0" - flutter_keyboard_visibility_web: - dependency: transitive - description: - name: flutter_keyboard_visibility_web - sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 - url: "https://pub.dev" - source: hosted - version: "2.0.0" - flutter_keyboard_visibility_windows: - dependency: transitive - description: - name: flutter_keyboard_visibility_windows - sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 - url: "https://pub.dev" - source: hosted - version: "1.0.0" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "4.0.0" flutter_localizations: dependency: transitive description: flutter @@ -640,14 +614,6 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_typeahead: - dependency: transitive - description: - name: flutter_typeahead - sha256: b9942bd5b7611a6ec3f0730c477146cffa4cd4b051077983ba67ddfc9e7ee818 - url: "https://pub.dev" - source: hosted - version: "4.8.0" flutter_web_plugins: dependency: transitive description: flutter @@ -697,10 +663,10 @@ packages: dependency: transitive description: name: geolocator_android - sha256: "93906636752ea4d4e778afa981fdfe7409f545b3147046300df194330044d349" + sha256: "7aefc530db47d90d0580b552df3242440a10fe60814496a979aa67aa98b1fd47" url: "https://pub.dev" source: hosted - version: "4.3.1" + version: "4.6.1" geolocator_apple: dependency: transitive description: @@ -745,10 +711,10 @@ packages: dependency: transitive description: name: google_fonts - sha256: "2776c66b3e97c6cdd58d1bd3281548b074b64f1fd5c8f82391f7456e38849567" + sha256: b1ac0fe2832c9cc95e5e88b57d627c5e68c223b9657f4b96e1487aa9098c7b82 url: "https://pub.dev" source: hosted - version: "4.0.5" + version: "6.2.1" graphs: dependency: transitive description: @@ -777,10 +743,10 @@ packages: dependency: transitive description: name: http - sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -865,10 +831,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -917,38 +883,62 @@ packages: url: "https://pub.dev" source: hosted version: "6.8.0" - lints: + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: "direct dev" description: name: lints - sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "4.0.0" location: dependency: "direct main" description: name: location - sha256: "06be54f682c9073cbfec3899eb9bc8ed90faa0e17735c9d9fa7fe426f5be1dd1" + sha256: "37ffdadcd4b1498b769824f45ebb4de8ed46663a4a67ac27b33a590ee486579f" url: "https://pub.dev" source: hosted - version: "5.0.3" + version: "6.0.2" location_platform_interface: dependency: transitive description: name: location_platform_interface - sha256: "8aa1d34eeecc979d7c9fe372931d84f6d2ebbd52226a54fe1620de6fdc0753b1" + sha256: "2ecde6bb0f88032b0bbbde37e18975b4468711dd92619c2235cc0c0ee93b4b8e" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "4.0.0" location_web: dependency: transitive description: name: location_web - sha256: ec484c66e8a4ff1ee5d044c203f4b6b71e3a0556a97b739a5bc9616de672412b + sha256: "49dda13d415c4603c5775a33fb22f575e0aa3f0ec2916644ddcd722db31ee884" url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "5.0.2" logging: dependency: transitive description: @@ -961,34 +951,34 @@ packages: dependency: transitive description: name: lottie - sha256: a93542cc2d60a7057255405f62252533f8e8956e7e06754955669fd32fb4b216 + sha256: "7afc60865a2429d994144f7d66ced2ae4305fe35d82890b8766e3359872d872c" url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "3.1.3" matcher: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.12.0" mime: dependency: transitive description: @@ -1013,14 +1003,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" - nm: - dependency: transitive - description: - name: nm - sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" - url: "https://pub.dev" - source: hosted - version: "0.5.0" node_preamble: dependency: transitive description: @@ -1049,10 +1031,10 @@ packages: dependency: "direct main" description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_drawing: dependency: transitive description: @@ -1141,14 +1123,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" - pointer_interceptor: - dependency: transitive - description: - name: pointer_interceptor - sha256: adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22 - url: "https://pub.dev" - source: hosted - version: "0.9.3+7" pool: dependency: transitive description: @@ -1181,22 +1155,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" - reactive_flutter_typeahead: - dependency: transitive - description: - name: reactive_flutter_typeahead - sha256: ef91627df8cef70e603e8a6458749d8a99a385b78854332602fd08ad905cdab8 - url: "https://pub.dev" - source: hosted - version: "0.8.1" reactive_forms: dependency: "direct main" description: name: reactive_forms - sha256: "5aa9c48a0626c20d00a005e597cb10efbdebbfeecb9c4227b03a5945fbb91ec4" + sha256: "9b1fb18e0aae9c50cfa0aaabaaa38bc4d78eefc9b7b95fa9c947b051f6524b8e" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "17.0.1" recase: dependency: transitive description: @@ -1282,6 +1248,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" sqlite3: dependency: transitive description: @@ -1302,10 +1276,10 @@ packages: dependency: transitive description: name: sqlparser - sha256: "7b20045d1ccfb7bc1df7e8f9fee5ae58673fce6ff62cefbb0e0fd7214e90e5a0" + sha256: ade9a67fd70d0369329ed3373208de7ebd8662470e8c396fc8d0d60f9acdfc9f url: "https://pub.dev" source: hosted - version: "0.34.1" + version: "0.36.0" stack_trace: dependency: transitive description: @@ -1350,26 +1324,26 @@ packages: dependency: transitive description: name: test - sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f + sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073" url: "https://pub.dev" source: hosted - version: "1.24.9" + version: "1.25.2" test_api: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" test_core: dependency: transitive description: name: test_core - sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a + sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4" url: "https://pub.dev" source: hosted - version: "0.5.9" + version: "0.6.0" timing: dependency: transitive description: @@ -1462,10 +1436,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.3" url_launcher_windows: dependency: transitive description: @@ -1478,10 +1452,10 @@ packages: dependency: transitive description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.5.1" vector_graphics: dependency: transitive description: @@ -1526,10 +1500,10 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" watcher: dependency: transitive description: @@ -1542,10 +1516,10 @@ packages: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.5.1" web_socket_channel: dependency: transitive description: @@ -1595,5 +1569,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.2.0 <=3.9.0" - flutter: ">=3.16.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0"