diff --git a/.vscode/launch.json b/.vscode/launch.json
index 56a0452..ef3b4ee 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -4,23 +4,25 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
-
{
"name": "rasadyar_app",
"request": "launch",
- "type": "dart"
+ "type": "dart",
+ "program": "lib/main.dart",
},
{
"name": "rasadyar_app (profile mode)",
"request": "launch",
"type": "dart",
- "flutterMode": "profile"
+ "flutterMode": "profile",
+ "program": "lib/main.dart",
},
{
"name": "rasadyar_app (release mode)",
"request": "launch",
"type": "dart",
- "flutterMode": "release"
+ "flutterMode": "release",
+ "program": "lib/main.dart",
}
]
}
\ No newline at end of file
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index dfb286d..d2212b6 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -19,7 +19,7 @@ if (keystorePropertiesFile.exists()) {
android {
namespace = "ir.mnpc.rasadyar"
compileSdk = flutter.compileSdkVersion
- ndkVersion = "27.0.12077973"
+ ndkVersion = "28.2.13676358"
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
diff --git a/android/local.properties b/android/local.properties
index 200b790..8cd06f6 100644
--- a/android/local.properties
+++ b/android/local.properties
@@ -1,5 +1,5 @@
-sdk.dir=C:/Users/Housh11/AppData/Local/Android/Sdk
+sdk.dir=C:\\Users\\Housh11\\AppData\\Local\\Android\\sdk
flutter.sdk=C:\\src\\flutter
flutter.buildMode=debug
-flutter.versionName=1.3.32
-flutter.versionCode=29
\ No newline at end of file
+flutter.versionName=1.3.33
+flutter.versionCode=30
\ No newline at end of file
diff --git a/assets/icons/gallery_add.svg b/assets/icons/gallery_add.svg
new file mode 100644
index 0000000..adb97ee
--- /dev/null
+++ b/assets/icons/gallery_add.svg
@@ -0,0 +1,7 @@
+
diff --git a/assets/vec/gallery_add.svg.vec b/assets/vec/gallery_add.svg.vec
new file mode 100644
index 0000000..cf57447
Binary files /dev/null and b/assets/vec/gallery_add.svg.vec differ
diff --git a/doc/BuildRow.png b/doc/BuildRow.png
deleted file mode 100644
index 05606a0..0000000
Binary files a/doc/BuildRow.png and /dev/null differ
diff --git a/doc/BuildRow.webp b/doc/BuildRow.webp
new file mode 100644
index 0000000..14caac1
Binary files /dev/null and b/doc/BuildRow.webp differ
diff --git a/doc/CoreLoadingIndicator.png b/doc/CoreLoadingIndicator.png
deleted file mode 100644
index 20ed332..0000000
Binary files a/doc/CoreLoadingIndicator.png and /dev/null differ
diff --git a/doc/CoreLoadingIndicator.webp b/doc/CoreLoadingIndicator.webp
new file mode 100644
index 0000000..b9fe1d3
Binary files /dev/null and b/doc/CoreLoadingIndicator.webp differ
diff --git a/doc/EmptyWidget.png b/doc/EmptyWidget.png
deleted file mode 100644
index c7b4de0..0000000
Binary files a/doc/EmptyWidget.png and /dev/null differ
diff --git a/doc/EmptyWidget.webp b/doc/EmptyWidget.webp
new file mode 100644
index 0000000..f104722
Binary files /dev/null and b/doc/EmptyWidget.webp differ
diff --git a/doc/LogoWidget.png b/doc/LogoWidget.png
deleted file mode 100644
index 39d9a23..0000000
Binary files a/doc/LogoWidget.png and /dev/null differ
diff --git a/doc/LogoWidget.webp b/doc/LogoWidget.webp
new file mode 100644
index 0000000..c8563d6
Binary files /dev/null and b/doc/LogoWidget.webp differ
diff --git a/doc/RErrorWidget.png b/doc/RErrorWidget.png
deleted file mode 100644
index 0326572..0000000
Binary files a/doc/RErrorWidget.png and /dev/null differ
diff --git a/doc/RErrorWidget.webp b/doc/RErrorWidget.webp
new file mode 100644
index 0000000..571839a
Binary files /dev/null and b/doc/RErrorWidget.webp differ
diff --git a/doc/RSegment.png b/doc/RSegment.png
deleted file mode 100644
index c7dac32..0000000
Binary files a/doc/RSegment.png and /dev/null differ
diff --git a/doc/RSegment.webp b/doc/RSegment.webp
new file mode 100644
index 0000000..0b046e7
Binary files /dev/null and b/doc/RSegment.webp differ
diff --git a/lib/presentation/pages/test/view.dart b/lib/presentation/pages/test/view.dart
index e8981b9..e1a7aad 100644
--- a/lib/presentation/pages/test/view.dart
+++ b/lib/presentation/pages/test/view.dart
@@ -8,6 +8,7 @@ class TestPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ // ignore: unused_local_variable
final TestLogic logic = Get.put(TestLogic());
return Scaffold(
diff --git a/packages/chicken/lib/data/common/dio_error_handler.dart b/packages/chicken/lib/data/common/dio_error_handler.dart
index 57f29bc..ffb4d44 100644
--- a/packages/chicken/lib/data/common/dio_error_handler.dart
+++ b/packages/chicken/lib/data/common/dio_error_handler.dart
@@ -25,6 +25,7 @@ class DioErrorHandler {
}
//wrong captcha => "detail": "Captcha code is incorrect" - 403
+ // ignore: unused_element
void _handle403() {}
void _handleGeneric(DioException error) {
diff --git a/packages/chicken/lib/data/data_source/local/chicken_local_imp.dart b/packages/chicken/lib/data/data_source/local/chicken_local_imp.dart
index 9b83807..f66c786 100644
--- a/packages/chicken/lib/data/data_source/local/chicken_local_imp.dart
+++ b/packages/chicken/lib/data/data_source/local/chicken_local_imp.dart
@@ -1,4 +1,3 @@
-import 'package:rasadyar_chicken/chicken.dart';
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
import 'package:rasadyar_core/core.dart';
@@ -15,7 +14,7 @@ class ChickenLocalDataSourceImp implements ChickenLocalDataSource {
@override
Future initWidleyUsed() async {
- List tmpList = [
+ /* List tmpList = [
WidelyUsedLocalItem(
index: 0,
pathId: 0,
@@ -43,7 +42,7 @@ class ChickenLocalDataSourceImp implements ChickenLocalDataSource {
iconPath: Assets.vec.cubeRotateSvg.path,
path: ChickenRoutes.buysInProvinceSteward,
),
- ];
+ ]; */
}
@override
diff --git a/packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart b/packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart
index 4878de0..c42add7 100644
--- a/packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart
+++ b/packages/chicken/lib/data/data_source/remote/auth/auth_remote.dart
@@ -1,4 +1,4 @@
-import 'package:rasadyar_chicken/data/models/response/captcha/captcha_response_model.dart';
+
import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart';
import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart';
diff --git a/packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart b/packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart
index 6454fed..a0b85f8 100644
--- a/packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart
+++ b/packages/chicken/lib/data/data_source/remote/auth/auth_remote_imp.dart
@@ -11,7 +11,9 @@ class AuthRemoteDataSourceImp extends AuthRemoteDataSource {
AuthRemoteDataSourceImp(this._httpClient);
@override
- Future login({required Map authRequest}) async {
+ Future login({
+ required Map authRequest,
+ }) async {
var res = await _httpClient.post(
'/api/login/',
data: authRequest,
@@ -40,7 +42,7 @@ class AuthRemoteDataSourceImp extends AuthRemoteDataSource {
@override
Future getUserInfo(String phoneNumber) async {
var res = await _httpClient.post(
- 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ 'https://userbackend.rasadyar.com/api/send_otp/',
data: {"mobile": phoneNumber, "state": ""},
fromJson: UserInfoModel.fromJson,
headers: {'Content-Type': 'application/json'},
@@ -56,7 +58,10 @@ class AuthRemoteDataSourceImp extends AuthRemoteDataSource {
await _httpClient.post(
'/steward-app-login/',
data: queryParameters,
- headers: {'Content-Type': 'application/json', 'Authorization': 'Bearer $token'},
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Authorization': 'Bearer $token',
+ },
);
}
}
diff --git a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart
index 23ea0ff..f9e6741 100644
--- a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart
+++ b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart
@@ -142,7 +142,7 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
required String token,
required Map allocation,
}) async {
- var res = await _httpClient.put(
+ await _httpClient.put(
'/steward-allocation/0/',
headers: {'Authorization': 'Bearer $token'},
data: allocation,
@@ -312,7 +312,7 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
required String token,
required CreateStewardFreeBar body,
}) async {
- var res = await _httpClient.post(
+ await _httpClient.post(
'/steward_free_bar/',
headers: {'Authorization': 'Bearer $token'},
data: body.toJson()..removeWhere((key, value) => value==null,),
diff --git a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.dart b/packages/chicken/lib/data/models/request/kill_registration/kill_registration.dart
index b8fd661..b5380b4 100644
--- a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.dart
+++ b/packages/chicken/lib/data/models/request/kill_registration/kill_registration.dart
@@ -14,6 +14,7 @@ abstract class KillRegistrationRequest with _$KillRegistrationRequest {
int? quantity,
String? sendDate,
String? chickenBreed,
+ // ignore: invalid_annotation_target
@JsonKey(name: "Index_weight") double? indexWeight,
String? losses,
List? auctionList,
diff --git a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.dart b/packages/chicken/lib/data/models/response/poultry_order/poultry_order.dart
index 607ef0b..f11f99c 100644
--- a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.dart
+++ b/packages/chicken/lib/data/models/response/poultry_order/poultry_order.dart
@@ -20,6 +20,7 @@ abstract class PoultryOrder with _$PoultryOrder {
double? amount,
String? financialOperation,
int? remainQuantity,
+ // ignore: invalid_annotation_target
@JsonKey(name: "Index_weight") double? indexWeight,
Hatching? hatching,
String? finalState,
diff --git a/packages/chicken/lib/presentation/pages/common/auth/logic.dart b/packages/chicken/lib/presentation/pages/common/auth/logic.dart
index feac081..17af2d5 100644
--- a/packages/chicken/lib/presentation/pages/common/auth/logic.dart
+++ b/packages/chicken/lib/presentation/pages/common/auth/logic.dart
@@ -122,6 +122,15 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin {
var tmpRoles = result?.role
?.where((element) => element == 'PoultryScience' || element == 'Steward')
.toList();
+
+ /*var tmpRoles = result?.role?.where((element) {
+ return element == 'PoultryScience' ||
+ element == 'Steward' ||
+ element == 'CityOperator' ||
+ element == 'CityJahad' ||
+ element.toLowerCase().contains("admin");
+ }).toList();*/
+
await tokenStorageService.saveRoles(_module, tmpRoles ?? []);
if (rememberMe.value) {
await tokenStorageService.saveUserPass(
diff --git a/packages/chicken/lib/presentation/pages/common/role/logic.dart b/packages/chicken/lib/presentation/pages/common/role/logic.dart
index bec7578..3253738 100644
--- a/packages/chicken/lib/presentation/pages/common/role/logic.dart
+++ b/packages/chicken/lib/presentation/pages/common/role/logic.dart
@@ -9,20 +9,10 @@ class RoleLogic extends GetxController {
void onInit() {
super.onInit();
List items = tokenService.getUserLocal(Module.chicken)!.roles ?? [];
- if (items.isNotEmpty ?? false) {
+ if (items.isNotEmpty) {
roles.assignAll(items);
}
}
- @override
- void onReady() {
- // TODO: implement onReady
- super.onReady();
- }
- @override
- void onClose() {
- // TODO: implement onClose
- super.onClose();
- }
}
diff --git a/packages/chicken/lib/presentation/pages/common/role/view.dart b/packages/chicken/lib/presentation/pages/common/role/view.dart
index d4c8f89..58b1b11 100644
--- a/packages/chicken/lib/presentation/pages/common/role/view.dart
+++ b/packages/chicken/lib/presentation/pages/common/role/view.dart
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:rasadyar_chicken/data/common/fa_user_role.dart';
-import 'package:rasadyar_chicken/presentation/widget/app_bar.dart';
import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
import 'package:rasadyar_core/core.dart';
@@ -15,11 +14,7 @@ class RolePage extends GetView {
isBase: true,
child: Column(
children: [
- Assets.images.selectRole.image(
- height: 212.h,
- width: Get.width.w,
- fit: BoxFit.cover,
- ),
+ Assets.images.selectRole.image(height: 212.h, width: Get.width.w, fit: BoxFit.cover),
ObxValue((data) {
return Expanded(
child: GridView.builder(
@@ -38,15 +33,9 @@ class RolePage extends GetView {
title: role.keys.first,
onTap: () async {
String route = role.values.first;
- await controller.gService.saveRoute(
- Module.chicken,
- route,
- );
+ await controller.gService.saveRoute(Module.chicken, route);
- await controller.gService.saveRole(
- Module.chicken,
- data[index],
- );
+ await controller.gService.saveRole(Module.chicken, data[index]);
Get.offAllNamed(route);
},
);
@@ -58,17 +47,9 @@ class RolePage extends GetView {
),
);
}
-
-
}
-
-Widget roleCard({
- required String title,
- Function()? onTap,
- int? width,
- int? height,
-}) {
+Widget roleCard({required String title, Function()? onTap, int? width, int? height}) {
return Container(
width: width?.w ?? 128.w,
height: height?.h ?? 48.h,
@@ -84,6 +65,7 @@ Widget roleCard({
child: Text(
title,
style: AppFonts.yekan12Bold.copyWith(color: AppColor.blueNormal),
+ textAlign: TextAlign.center,
),
),
),
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/home/logic.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/home/logic.dart
new file mode 100644
index 0000000..ac81519
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/home/logic.dart
@@ -0,0 +1,152 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_core/core.dart';
+
+import '../widgets/step1_page.dart';
+
+class PoultryFarmInspectionHomeLogic extends GetxController
+ with GetTickerProviderStateMixin {
+ RxInt selectedSegmentIndex = 0.obs;
+ RxList>> inspectionList = RxList([
+ Resource>.success(
+ PaginationModel(results: ["s", "b", "c", "d"]),
+ ),
+ ]);
+ RxList>> inactiveInspectionList = RxList([
+ Resource>.success(
+ PaginationModel(results: ["s", "b", "c", "d"]),
+ ),
+ ]);
+
+ RxInt expandedIndex = RxInt(-1);
+
+ late TabController tabController;
+
+ RxInt selectedTabIndex = 0.obs;
+
+ RxInt activeStepperIndex = 0.obs;
+
+ PageController pageController = PageController(initialPage: 0);
+
+ //step1
+
+ TextEditingController nameOfThePoultryFarmUnit = TextEditingController();
+
+ //step2
+ RxInt sanitaryConditionOfTheHallIndex = (-1).obs;
+ RxInt ventilationStatusIndex = (-1).obs;
+ RxInt beddingStatusIndex = (-1).obs;
+ RxInt waterQualityIndex = (-1).obs;
+ RxInt fuelTypeIndex = (-1).obs;
+ RxInt sampleTypeIndex = (-1).obs;
+
+ //step3
+ RxInt grainQualityInputIndex = (-1).obs;
+ RxInt generatorOperatingStatusIndex = (-1).obs;
+ RxInt workerContractStatusIndex = (-1).obs;
+ RxInt newBeneficiaryRequestIndex = (-1).obs;
+
+ //step4
+ RxInt inspectorConclusionIndex = (-1).obs;
+ TextEditingController inspectorConclusionDescriptionController =
+ TextEditingController();
+
+ @override
+ void onReady() {
+ super.onReady();
+
+ activeStepperIndex.listen((value) {
+ pageController.animateToPage(
+ value,
+ duration: Duration(milliseconds: 300),
+ curve: Curves.linear,
+ );
+ });
+ }
+
+ @override
+ void onClose() {
+ // TODO: implement onClose
+ super.onClose();
+ }
+
+ void toggleExpanded(int index) {
+ expandedIndex.value = expandedIndex.value == index ? -1 : index;
+ }
+
+ void changeSegmentIndex(int index) {
+ if (index == selectedSegmentIndex.value) {
+ return;
+ }
+ expandedIndex.value = -1;
+ selectedSegmentIndex.value = index;
+ }
+
+ void changeTab(int index) {
+ if (index == selectedTabIndex.value) {
+ return;
+ }
+ selectedTabIndex.value = index;
+ }
+
+ void clearForm() {
+ nameOfThePoultryFarmUnit.clear();
+ activeStepperIndex.value = 0;
+ selectedTabIndex.value = 0;
+ }
+
+ void setSanitaryConditionOfTheHallIndex(int index) {
+ sanitaryConditionOfTheHallIndex.value =
+ index == sanitaryConditionOfTheHallIndex.value ? -1 : index;
+ }
+
+ void setFuelTypeIndex(int index) {
+ fuelTypeIndex.value = index == fuelTypeIndex.value ? -1 : index;
+ }
+
+ void setVentilationStatusIndex(int index) {
+ ventilationStatusIndex.value = index == ventilationStatusIndex.value
+ ? -1
+ : index;
+ }
+
+ void setBeddingStatusIndex(int index) {
+ beddingStatusIndex.value = index == beddingStatusIndex.value ? -1 : index;
+ }
+
+ void setWaterQualityIndex(int index) {
+ waterQualityIndex.value = index == waterQualityIndex.value ? -1 : index;
+ }
+
+ void setSampleTypeIndex(int index) {
+ sampleTypeIndex.value = index == sampleTypeIndex.value ? -1 : index;
+ }
+
+ void setGrainQualityInputIndex(int index) {
+ grainQualityInputIndex.value = index == grainQualityInputIndex.value
+ ? -1
+ : index;
+ }
+
+ void setGeneratorOperatingStatusIndex(int index) {
+ generatorOperatingStatusIndex.value =
+ index == generatorOperatingStatusIndex.value ? -1 : index;
+ }
+
+ void setWorkerContractStatusIndex(int index) {
+ workerContractStatusIndex.value = index == workerContractStatusIndex.value
+ ? -1
+ : index;
+ }
+
+ void setNewBeneficiaryRequestIndex(int index) {
+ newBeneficiaryRequestIndex.value = index == newBeneficiaryRequestIndex.value
+ ? -1
+ : index;
+ }
+
+ void setInspectorConclusionIndex(int index) {
+ inspectorConclusionIndex.value = index == inspectorConclusionIndex.value
+ ? -1
+ : index;
+ }
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/home/view.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/home/view.dart
new file mode 100644
index 0000000..bd30cf3
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/home/view.dart
@@ -0,0 +1,934 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart';
+import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
+import 'package:rasadyar_chicken/presentation/widget/info_card/info_card.dart';
+import 'package:rasadyar_core/core.dart';
+
+import '../widgets/cu_bottom_sheet.dart';
+import 'logic.dart';
+
+class PoultryFarmInspectionHomePage extends GetView {
+ const PoultryFarmInspectionHomePage({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ return ChickenBasePage(
+ onFilterTap: () {
+ //TODO
+ },
+
+ onSearchTap: () {
+ //TODO
+ },
+
+ onSearchChanged: (data) {
+ //TODO
+ },
+ backId: poultryFirstKey,
+
+ child: Stack(
+ fit: StackFit.expand,
+ children: [
+ Positioned.fill(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ infoCards(),
+ segmentWidget(),
+ ObxValue((data) {
+ return data.value == 0 ? activeInspectionWidget() : inactiveInspectionWidget();
+ }, controller.selectedSegmentIndex),
+ ],
+ ),
+ ),
+
+ Positioned(
+ right: 10,
+ bottom: 90.h,
+ child: RFab.add(
+ onPressed: () {
+ Get.bottomSheet(
+ addOrEditBottomSheet(controller),
+ isScrollControlled: true,
+ ignoreSafeArea: false,
+ ).then((value) => controller.clearForm());
+ },
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Padding infoCards() {
+ return Padding(
+ padding: const EdgeInsets.fromLTRB(9, 12, 9, 8),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ spacing: 8,
+ children: [
+ cardInfo(value: 2225256, description: 'بازرسی شده', color: const Color(0xFFB6DED8)),
+ cardInfo(value: 2050, description: 'بازرسی نشده', color: const Color(0xFFE9CED7)),
+ cardInfo(value: 2225256, description: 'عملکرد مناسب', color: const Color(0xFFCFE0FF)),
+ cardInfo(value: 55225, description: 'عملکرد ضعیف', color: const Color(0xFFF3D6CB)),
+ ],
+ ),
+ );
+ }
+
+ Padding segmentWidget() {
+ return Padding(
+ padding: const EdgeInsets.fromLTRB(8, 0, 8, 8),
+ child: Row(
+ children: [
+ Expanded(
+ child: RSegment(
+ children: ['بازرسی فعال', 'بایگانی'],
+ selectedIndex: 0,
+ borderColor: const Color(0xFFB4B4B4),
+ selectedBorderColor: AppColor.blueNormal,
+ selectedBackgroundColor: AppColor.blueLight,
+ onSegmentSelected: (index) => controller.changeSegmentIndex(index),
+ backgroundColor: AppColor.whiteGreyNormal,
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Widget activeInspectionWidget() {
+ return Expanded(
+ child: ObxValue((data) {
+ return RPaginatedListView(
+ listType: ListType.separated,
+ resource: data.first,
+ hasMore: false,
+ onLoadMore: () async {},
+ padding: EdgeInsets.fromLTRB(8, 8, 8, 80),
+ itemBuilder: (context, index) {
+ return ObxValue((val) {
+ return ExpandableListItem2(
+ selected: val.value.isEqual(index),
+ onTap: () => controller.toggleExpanded(index),
+ index: index,
+ child: activeinspecitonItemListWidget(),
+ secondChild: avtiveInspectionItemListExpandedWidget(),
+ labelColor: AppColor.blueLight,
+ labelIcon: Assets.vec.checkSquareSvg.path,
+ labelIconColor: AppColor.mediumGreyDarkHover,
+ );
+ }, controller.expandedIndex);
+ },
+ itemCount: 2,
+ separatorBuilder: (context, index) => SizedBox(height: 8.h),
+ );
+ }, controller.inspectionList),
+ );
+ }
+
+ Container avtiveInspectionItemListExpandedWidget() {
+ const farmerName = 'آرمان صادقی';
+ const showViolationLabel = true;
+ const violationLabel = 'پیگیری';
+ const breed = 'راس ۳۰۸';
+ const ageInDays = '۴۲';
+ const growPeriod = 'بهار ۱۴۰۴';
+ const licenceNumber = '۱۲۳۴۵۶۷۸';
+ const chickVolume = '۲۵,۰۰۰';
+ const hallRemain = '۲۳,۴۵۰';
+ const losses = '۱,۵۵۰';
+ const vetInfo = 'دکتر نرگس مرادی(۰۹۳۵۴۵۶۶۷۷۹)';
+ const showReportButton = true;
+ const reportStatus = 'ارسال تصویر جوجه ریزی فارم';
+ final reportColor = AppColor.redDark;
+ return Container(
+ padding: EdgeInsets.symmetric(horizontal: 8),
+ decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ child: Column(
+ spacing: 8,
+ children: [
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Text(
+ farmerName,
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(color: AppColor.greenDark),
+ ),
+ Spacer(),
+ Visibility(
+ visible: showViolationLabel,
+ child: Text(
+ violationLabel,
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan10.copyWith(color: AppColor.redDark),
+ ),
+ ),
+ ],
+ ),
+ Container(
+ height: 32,
+ padding: EdgeInsets.symmetric(horizontal: 8),
+ decoration: ShapeDecoration(
+ color: AppColor.blueLight,
+ shape: RoundedRectangleBorder(
+ side: BorderSide(width: 1, color: AppColor.blueLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Text('نژاد:$breed', style: AppFonts.yekan14.copyWith(color: AppColor.textColor)),
+ Text(
+ ' سن $ageInDays (روزه)',
+ style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal),
+ ),
+ Text(
+ ' دوره جوجه ریزی:$growPeriod',
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ ),
+ ],
+ ),
+ ),
+ buildRow(title: 'شماره مجوز جوجه ریزی', value: licenceNumber),
+ buildUnitRow(title: 'حجم جوجه ریزی', value: chickVolume, unit: '(قطعه)'),
+ buildUnitRow(title: 'مانده در سالن', value: hallRemain, unit: '(قطعه)'),
+ buildUnitRow(title: 'تلفات', value: losses, unit: '(قطعه)'),
+ buildRow(title: 'دامپزشک فارم', value: vetInfo),
+ buildRow(
+ title: 'شرح بازرسی',
+ value: reportStatus,
+ titleStyle: AppFonts.yekan14.copyWith(color: reportColor),
+ valueStyle: AppFonts.yekan14.copyWith(color: reportColor),
+ ),
+ Visibility(
+ visible: showReportButton,
+ child: RElevated(
+ text: 'ثبت بازرسی',
+ isFullWidth: true,
+ width: 150.w,
+ height: 40.h,
+ onPressed: () {},
+ textStyle: AppFonts.yekan20.copyWith(color: Colors.white),
+ backgroundColor: AppColor.greenNormal,
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Widget activeinspecitonItemListWidget() {
+ const farmerName = 'آرمان صادقی';
+ const farmerMobile = '۰۹۱۲۱۲۳۴۵۶۷';
+ const unitName = 'فارم نمونه آفتاب';
+ const unitLicence = 'مجوز ۵۴۲۱-الف';
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ children: [
+ SizedBox(width: 20),
+ Expanded(
+ flex: 2,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 5,
+ children: [
+ Text(
+ farmerName,
+ textAlign: TextAlign.start,
+ style: AppFonts.yekan12.copyWith(color: AppColor.blueNormal),
+ ),
+ Text(
+ farmerMobile,
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan14.copyWith(color: AppColor.bgDark),
+ ),
+ ],
+ ),
+ ),
+ Expanded(
+ flex: 3,
+ child: Column(
+ spacing: 5,
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Text(
+ unitName,
+ textAlign: TextAlign.start,
+ style: AppFonts.yekan12.copyWith(color: AppColor.blueNormal),
+ ),
+ Text(
+ unitLicence,
+ textAlign: TextAlign.left,
+ style: AppFonts.yekan12.copyWith(color: AppColor.bgDark),
+ ),
+ ],
+ ),
+ ),
+ Expanded(
+ flex: 1,
+ child: Assets.vec.scanSvg.svg(
+ width: 32.w,
+ height: 32.h,
+ colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn),
+ ),
+ ),
+ ],
+ );
+ }
+
+ Widget inactiveInspectionWidget() {
+ return Expanded(
+ child: ObxValue((data) {
+ return RPaginatedListView(
+ listType: ListType.separated,
+ resource: data.first,
+ hasMore: false,
+ onLoadMore: () async {},
+ padding: EdgeInsets.fromLTRB(8, 8, 8, 80),
+ itemBuilder: (context, index) {
+ return ObxValue((val) {
+ return ExpandableListItem2(
+ selected: val.value.isEqual(index),
+ onTap: () => controller.toggleExpanded(index),
+ index: index,
+ child: inActiveinspecitonItemListWidget(),
+ secondChild: inAvtiveInspectionItemListExpandedWidget(),
+ labelColor: AppColor.blueLight,
+ labelIcon: Assets.vec.checkSquareSvg.path,
+ labelIconColor: AppColor.mediumGreyDarkHover,
+ );
+ }, controller.expandedIndex);
+ },
+ itemCount: 5,
+ separatorBuilder: (context, index) => SizedBox(height: 8.h),
+ );
+ }, controller.inspectionList),
+ );
+ }
+
+ Widget inActiveinspecitonItemListWidget() {
+ const farmerName = 'زهرا موسوی';
+ const farmerMobile = '۰۹۳۸۸۸۷۷۶۶۵';
+ const unitName = 'کشت و پرورش افق سبز';
+ const unitLicence = 'مجوز ۷۶۳۲-ج';
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ children: [
+ SizedBox(width: 20),
+ Expanded(
+ flex: 2,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 5,
+ children: [
+ Text(
+ farmerName,
+ textAlign: TextAlign.start,
+ style: AppFonts.yekan12.copyWith(color: AppColor.blueNormal),
+ ),
+ Text(
+ farmerMobile,
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan14.copyWith(color: AppColor.bgDark),
+ ),
+ ],
+ ),
+ ),
+ Expanded(
+ flex: 3,
+ child: Column(
+ spacing: 5,
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Text(
+ unitName,
+ textAlign: TextAlign.start,
+ style: AppFonts.yekan12.copyWith(color: AppColor.blueNormal),
+ ),
+ Text(
+ unitLicence,
+ textAlign: TextAlign.left,
+ style: AppFonts.yekan12.copyWith(color: AppColor.bgDark),
+ ),
+ ],
+ ),
+ ),
+ Expanded(
+ flex: 1,
+ child: Assets.vec.scanSvg.svg(
+ width: 32.w,
+ height: 32.h,
+ colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn),
+ ),
+ ),
+ ],
+ );
+ }
+
+ Container inAvtiveInspectionItemListExpandedWidget() {
+ const farmerName = 'زهرا موسوی';
+ const showViolationLabel = false;
+ const violationLabel = 'عادی';
+ const breed = 'کاب ۵۰۰';
+ const ageInDays = '۳۵';
+ const growPeriod = 'پاییز ۱۴۰۳';
+ const licenceNumber = '۸۹۴۵۶۱۲۳';
+ const chickVolume = '۱۸,۵۰۰';
+ const hallRemain = '۱۷,۹۴۰';
+ const losses = '۵۶۰';
+ const vetInfo = 'دکتر حمید نادری(۰۹۱۳۴۴۵۵۶۶۷)';
+ const reportStatus = 'بازدید تایید شده';
+ final reportColor = AppColor.greenNormal;
+ return Container(
+ padding: EdgeInsets.symmetric(horizontal: 8),
+ decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ child: Column(
+ spacing: 8,
+ children: [
+ Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Text(
+ farmerName,
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(color: AppColor.greenDark),
+ ),
+ Spacer(),
+ Visibility(
+ visible: showViolationLabel,
+ child: Text(
+ violationLabel,
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan10.copyWith(color: AppColor.redDark),
+ ),
+ ),
+ ],
+ ),
+ Container(
+ height: 32,
+ padding: EdgeInsets.symmetric(horizontal: 8),
+ decoration: ShapeDecoration(
+ color: AppColor.blueLight,
+ shape: RoundedRectangleBorder(
+ side: BorderSide(width: 1, color: AppColor.blueLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Text('نژاد:$breed', style: AppFonts.yekan14.copyWith(color: AppColor.textColor)),
+ Text(
+ ' سن $ageInDays (روزه)',
+ style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal),
+ ),
+ Text(
+ ' دوره جوجه ریزی:$growPeriod',
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ ),
+ ],
+ ),
+ ),
+ buildRow(title: 'شماره مجوز جوجه ریزی', value: licenceNumber),
+ buildUnitRow(title: 'حجم جوجه ریزی', value: chickVolume, unit: '(قطعه)'),
+ buildUnitRow(title: 'مانده در سالن', value: hallRemain, unit: '(قطعه)'),
+ buildUnitRow(title: 'تلفات', value: losses, unit: '(قطعه)'),
+ buildRow(title: 'دامپزشک فارم', value: vetInfo),
+ buildRow(
+ title: 'شرح بازرسی',
+ value: reportStatus,
+ titleStyle: AppFonts.yekan14.copyWith(color: reportColor),
+ valueStyle: AppFonts.yekan14.copyWith(color: reportColor),
+ ),
+ ROutlinedElevated(
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 4,
+ children: [
+ Assets.vec.excelDownloadSvg.svg(
+ width: 24.w,
+ height: 24.h,
+ colorFilter: ColorFilter.mode(AppColor.greenDark, BlendMode.srcIn),
+ ),
+
+ Text(
+ 'مشاهده جزییات ',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.greenDark),
+ ),
+ ],
+ ),
+ borderColor: AppColor.greenDark,
+ onPressed: () {
+ Get.bottomSheet(detailsWidget(), isScrollControlled: true, isDismissible: true);
+ },
+ ),
+ ],
+ ),
+ );
+ }
+
+ Widget detailsWidget() {
+ return BaseBottomSheet(
+ height: Get.height * 0.8,
+ child: Column(
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 16),
+ child: Column(
+ children: [
+ Row(
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 10),
+ child: Text(
+ 'جزییات',
+ style: AppFonts.yekan18Bold.copyWith(color: AppColor.iconColor),
+ ),
+ ),
+ ],
+ ),
+ Divider(color: AppColor.blackLightHover, height: 1, thickness: 1),
+ ObxValue((data) {
+ return tabBarWidget(
+ ['اطلاعات', 'پاییش سلامت', 'زیرساخت', 'مستندات'],
+ controller.selectedTabIndex.value,
+ (index) => controller.changeTab(index),
+ );
+ }, controller.selectedTabIndex),
+
+ ObxValue((data) {
+ switch (data.value) {
+ case 0:
+ return infoTable();
+ case 1:
+ return healthTable();
+ case 2:
+ return infrastructureTable();
+ case 3:
+ return documentsTable();
+ default:
+ return infoTable();
+ }
+ }, controller.selectedTabIndex),
+ ],
+ ),
+ ),
+
+ // Expanded در سطح بالاتر
+ ],
+ ),
+ );
+ }
+
+ Container infoTable() {
+ return Container(
+ height: Get.height,
+ width: Get.width,
+ child: Column(
+ children: [
+ SizedBox(height: 10),
+ Row(
+ children: [
+ Text('مشخصات کلی', style: AppFonts.yekan16Bold.copyWith(color: AppColor.iconColor)),
+ ],
+ ),
+ SizedBox(height: 10),
+
+ Container(
+ clipBehavior: Clip.hardEdge,
+ decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ child: Column(
+ children: [
+ rTableRow(title: 'نام واحد مرغداری', value: 'لذیذ'),
+ rTableRow(title: 'کد یکتا / شناسه واحد', value: '2541415'),
+ rTableRow(title: 'نام مالک / بهرهبردار', value: 'مرغداری احمدی'),
+ rTableRow(title: 'موجودی سوخت اضطراری', value: '200 لیتر'),
+
+ rTableRow(title: 'شهر/تعاونی', value: 'خرم آباد/تعاونی خرم آباد'),
+
+ rTableRow(title: 'شماره تلفن واحد', value: '021-12345678'),
+ rTableRow(title: 'دامپزشک فارم', value: 'dd dd (05218569685)'),
+
+ rTableRow(title: 'سالن', value: '2'),
+ rTableRow(title: 'تاریخ ثبت جوجه ریزی', value: '1402/09/19 (10:12)'),
+ rTableRow(title: 'شهر/تعاونی', value: 'خرم آباد/تعاونی خرم آباد'),
+
+ rTableRow(title: 'شماره تلفن واحد', value: '021-12345678'),
+ rTableRow(title: 'دامپزشک فارم', value: 'dd dd (05218569685)'),
+
+ rTableRow(title: 'سالن', value: '2'),
+ rTableRow(title: 'تاریخ ثبت جوجه ریزی', value: '1402/09/19 (10:12)'),
+ ],
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Row rTableRow({String? title, String? value}) {
+ return Row(
+ children: [
+ Expanded(
+ flex: 1,
+ child: Container(
+ padding: EdgeInsets.symmetric(horizontal: 9, vertical: 11),
+ alignment: Alignment.centerRight,
+ decoration: BoxDecoration(
+ color: AppColor.bgLight2,
+ border: Border(bottom: BorderSide(color: AppColor.blackLightHover, width: 1)),
+ ),
+ child: Text(
+ title ?? '',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.iconColor),
+ ),
+ ),
+ ),
+ Expanded(
+ flex: 1,
+ child: Container(
+ padding: EdgeInsets.symmetric(horizontal: 9, vertical: 11),
+ alignment: Alignment.centerRight,
+ decoration: BoxDecoration(
+ border: Border(bottom: BorderSide(color: AppColor.blackLightHover, width: 1)),
+ ),
+ child: Text(
+ value ?? '',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor),
+ ),
+ ),
+ ),
+ ],
+ );
+ }
+
+ Widget tabBarWidget(List tabs, int selectedIndex, Function(int) onTabSelected) {
+ return SizedBox(
+ height: 38.h,
+ width: Get.width,
+ child: Stack(
+ fit: StackFit.expand,
+ children: [
+ Positioned(
+ right: 0,
+ top: 0,
+ bottom: 0,
+ child: Row(
+ children: [
+ ...tabs.map(
+ (tab) => GestureDetector(
+ onTap: () => onTabSelected(tabs.indexOf(tab)),
+ behavior: HitTestBehavior.opaque,
+ child: Container(
+ padding: EdgeInsets.symmetric(horizontal: 10, vertical: 11),
+ decoration: BoxDecoration(
+ border: tab == tabs[selectedIndex]
+ ? Border(bottom: BorderSide(color: AppColor.blueNormalOld, width: 3))
+ : null,
+ ),
+ child: Text(
+ tab,
+ style: AppFonts.yekan12Bold.copyWith(
+ color: tab == tabs[selectedIndex]
+ ? AppColor.blueNormalOld
+ : AppColor.mediumGrey,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+
+ Positioned(
+ bottom: 0,
+ left: 0,
+ right: 0,
+ child: Divider(color: AppColor.blackLightHover, height: 1, thickness: 1),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Widget healthTable() {
+ return Container(
+ height: Get.height,
+ width: Get.width,
+ child: Column(
+ children: [
+ SizedBox(height: 10),
+ Row(
+ children: [
+ Text('پاییش سلامت', style: AppFonts.yekan16Bold.copyWith(color: AppColor.iconColor)),
+ ],
+ ),
+ SizedBox(height: 10),
+
+ Container(
+ clipBehavior: Clip.hardEdge,
+ decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ child: Column(
+ children: [
+ rTableRow(title: 'نام واحد مرغداری', value: 'لذیذ'),
+ rTableRow(title: 'کد یکتا / شناسه واحد', value: '2541415'),
+ rTableRow(title: 'نام مالک / بهرهبردار', value: 'مرغداری احمدی'),
+ rTableRow(title: 'موجودی سوخت اضطراری', value: '200 لیتر'),
+
+ rTableRow(title: 'شهر/تعاونی', value: 'خرم آباد/تعاونی خرم آباد'),
+
+ rTableRow(title: 'شماره تلفن واحد', value: '021-12345678'),
+ rTableRow(title: 'دامپزشک فارم', value: 'dd dd (05218569685)'),
+
+ rTableRow(title: 'سالن', value: '2'),
+ rTableRow(title: 'تاریخ ثبت جوجه ریزی', value: '1402/09/19 (10:12)'),
+ rTableRow(title: 'شهر/تعاونی', value: 'خرم آباد/تعاونی خرم آباد'),
+
+ rTableRow(title: 'شماره تلفن واحد', value: '021-12345678'),
+ rTableRow(title: 'دامپزشک فارم', value: 'dd dd (05218569685)'),
+
+ rTableRow(title: 'سالن', value: '2'),
+ rTableRow(title: 'تاریخ ثبت جوجه ریزی', value: '1402/09/19 (10:12)'),
+ ],
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Widget infrastructureTable() {
+ return Container(
+ height: Get.height,
+ width: Get.width,
+ child: Column(
+ children: [
+ SizedBox(height: 10),
+ Row(
+ children: [
+ Text('زیرساخت', style: AppFonts.yekan16Bold.copyWith(color: AppColor.iconColor)),
+ ],
+ ),
+ SizedBox(height: 10),
+
+ Container(
+ clipBehavior: Clip.hardEdge,
+ decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ child: Column(
+ children: [
+ rTableRow(title: 'نام واحد مرغداری', value: 'لذیذ'),
+ rTableRow(title: 'کد یکتا / شناسه واحد', value: '2541415'),
+ rTableRow(title: 'نام مالک / بهرهبردار', value: 'مرغداری احمدی'),
+ rTableRow(title: 'موجودی سوخت اضطراری', value: '200 لیتر'),
+
+ rTableRow(title: 'شهر/تعاونی', value: 'خرم آباد/تعاونی خرم آباد'),
+
+ rTableRow(title: 'شماره تلفن واحد', value: '021-12345678'),
+ rTableRow(title: 'دامپزشک فارم', value: 'dd dd (05218569685)'),
+
+ rTableRow(title: 'سالن', value: '2'),
+ rTableRow(title: 'تاریخ ثبت جوجه ریزی', value: '1402/09/19 (10:12)'),
+ rTableRow(title: 'شهر/تعاونی', value: 'خرم آباد/تعاونی خرم آباد'),
+
+ rTableRow(title: 'شماره تلفن واحد', value: '021-12345678'),
+ rTableRow(title: 'دامپزشک فارم', value: 'dd dd (05218569685)'),
+
+ rTableRow(title: 'سالن', value: '2'),
+ rTableRow(title: 'تاریخ ثبت جوجه ریزی', value: '1402/09/19 (10:12)'),
+ ],
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Widget documentsTable() {
+ return Container(
+ height: Get.height,
+ width: Get.width,
+ child: Column(
+ children: [
+ SizedBox(height: 10),
+ Row(
+ children: [
+ Text('مستندات', style: AppFonts.yekan16Bold.copyWith(color: AppColor.iconColor)),
+ ],
+ ),
+
+ SizedBox(height: 16),
+
+ Container(
+ height: 135.h,
+ width: Get.width,
+ decoration: BoxDecoration(
+ color: AppColor.bgLight,
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Column(
+ spacing: 10,
+ children: [
+ SizedBox(
+ height: 100.h,
+ width: Get.width,
+ child: ListView.separated(
+ itemCount: 10,
+ padding: EdgeInsets.symmetric(horizontal: 12),
+ scrollDirection: Axis.horizontal,
+ itemBuilder: (context, index) {
+ return Container(
+ width: 80.w,
+ height: 80.h,
+ decoration: BoxDecoration(
+ color: Color(0x33000000),
+ image: DecorationImage(
+ fit: BoxFit.cover,
+ image: NetworkImage("https://picsum.photos/150/150?random=$index"),
+ ),
+
+ borderRadius: BorderRadius.circular(8),
+ ),
+ );
+ },
+ separatorBuilder: (context, index) => SizedBox(width: 10),
+ ),
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 18),
+ child: Row(
+ children: [
+ Text(
+ '200 فارم در این سالن تخمین زده شده است.',
+ textAlign: TextAlign.right,
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+
+ SizedBox(height: 16),
+
+ Container(
+ height: 135.h,
+ width: Get.width,
+ decoration: BoxDecoration(
+ color: AppColor.bgLight,
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Column(
+ spacing: 10,
+ children: [
+ SizedBox(
+ height: 100.h,
+ width: Get.width,
+ child: ListView.separated(
+ itemCount: 10,
+ padding: EdgeInsets.symmetric(horizontal: 12),
+ scrollDirection: Axis.horizontal,
+ itemBuilder: (context, index) {
+ return Container(
+ width: 80.w,
+ height: 80.h,
+ decoration: BoxDecoration(
+ color: Color(0x33000000),
+ image: DecorationImage(
+ fit: BoxFit.cover,
+ image: NetworkImage(
+ "https://picsum.photos/150/150?random=${index * 2 + 1}",
+ ),
+ ),
+
+ borderRadius: BorderRadius.circular(8),
+ ),
+ );
+ },
+ separatorBuilder: (context, index) => SizedBox(width: 10),
+ ),
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 18),
+ child: Row(
+ children: [
+ Text(
+ 'انبار نهاده ها',
+ textAlign: TextAlign.right,
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+
+ SizedBox(height: 16),
+
+ Container(
+ height: 135.h,
+ width: Get.width,
+ decoration: BoxDecoration(
+ color: AppColor.bgLight,
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Column(
+ spacing: 10,
+ children: [
+ SizedBox(
+ height: 100.h,
+ width: Get.width,
+ child: ListView.separated(
+ itemCount: 10,
+ padding: EdgeInsets.symmetric(horizontal: 12),
+ scrollDirection: Axis.horizontal,
+ itemBuilder: (context, index) {
+ return Container(
+ width: 80.w,
+ height: 80.h,
+ decoration: BoxDecoration(
+ color: Color(0x33000000),
+ image: DecorationImage(
+ fit: BoxFit.cover,
+ image: NetworkImage(
+ "https://picsum.photos/150/150?random=${index * 3 + 1}",
+ ),
+ ),
+
+ borderRadius: BorderRadius.circular(8),
+ ),
+ );
+ },
+ separatorBuilder: (context, index) => SizedBox(width: 10),
+ ),
+ ),
+ Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 18),
+ child: Row(
+ children: [
+ Text(
+ 'تلفات',
+ textAlign: TextAlign.right,
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/poultry_farm_inspection.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/poultry_farm_inspection.dart
new file mode 100644
index 0000000..fa5363a
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/poultry_farm_inspection.dart
@@ -0,0 +1,2 @@
+export 'home/logic.dart';
+export 'home/view.dart';
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/card_info.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/card_info.dart
new file mode 100644
index 0000000..3f55e48
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/card_info.dart
@@ -0,0 +1,59 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/home/logic.dart';
+import 'package:rasadyar_core/core.dart';
+
+Widget farmInfoWidget({
+ required PoultryFarmInspectionHomeLogic controller,
+ required String title,
+ required Widget child,
+ EdgeInsets? padding,
+}) {
+ return Stack(
+ clipBehavior: Clip.none,
+ children: [
+ Positioned.fill(
+ child: Container(
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(width: 0.50, color: AppColor.mediumGrey),
+ ),
+
+ padding:
+ padding ?? EdgeInsets.symmetric(horizontal: 12.w, vertical: 11.h),
+ child: child,
+ ),
+ ),
+ Positioned(
+ top: -17,
+ right: 7,
+ child: Container(
+ padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 5.h),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(width: 0.50, color: AppColor.mediumGrey),
+ ),
+ child: Text(
+ title,
+ style: AppFonts.yekan14.copyWith(color: AppColor.iconColor),
+ ),
+ ),
+ ),
+ ],
+ );
+}
+
+Widget cardInfo({required Widget child, EdgeInsets? padding}) {
+ return Container(
+ width: Get.width,
+ padding: padding ?? EdgeInsets.symmetric(horizontal: 12.w, vertical: 14.h),
+ decoration: BoxDecoration(
+ color: AppColor.bgLight,
+
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(width: 1, color: AppColor.blackLight),
+ ),
+ child: child,
+ );
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/cu_bottom_sheet.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/cu_bottom_sheet.dart
new file mode 100644
index 0000000..f08329d
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/cu_bottom_sheet.dart
@@ -0,0 +1,224 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_core/core.dart';
+import '../home/logic.dart';
+import 'step1_page.dart';
+import 'step2_page.dart';
+import 'step3_page.dart';
+import 'step4_page.dart';
+import 'step5_page.dart';
+
+Widget addOrEditBottomSheet(PoultryFarmInspectionHomeLogic controller) {
+ List pages = [
+ step1Page(controller),
+ step2Page(controller),
+ step3Page(controller),
+ step4Page(controller),
+ step5Page(controller),
+ ];
+
+ return BaseBottomSheet(
+ height: Get.height,
+ rootChild: Column(
+ children: [
+ ObxValue((data) {
+ return stepper(activeStep: data.value);
+ }, controller.activeStepperIndex),
+ Expanded(
+ child: PageView.builder(
+ physics: const NeverScrollableScrollPhysics(),
+ reverse: true,
+ controller: controller.pageController,
+ itemBuilder: (context, index) => pages[index],
+ ),
+ ),
+
+ ObxValue((data) {
+ return Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 16),
+ child: Row(
+ spacing: 16,
+ children: [
+ Expanded(
+ child: RElevated(
+ height: 40.h,
+ backgroundColor: AppColor.greenNormal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+
+ children: [
+ Icon(Icons.arrow_back_ios, color: Colors.white),
+
+ Text('ادامه'),
+ ],
+ ),
+ onPressed: () {
+ if (controller.activeStepperIndex.value <4) {
+ controller.activeStepperIndex.value++;
+ }
+ },
+ ),
+ ),
+ Expanded(
+ child: ROutlinedElevated(
+ borderColor: AppColor.error,
+ height: 40.h,
+ child: Text('برگشت'),
+ enabled: controller.activeStepperIndex.value > 0,
+ onPressed: () {
+ if (controller.activeStepperIndex.value > 0) {
+ controller.activeStepperIndex.value--;
+ }
+ },
+ ),
+ ),
+ ],
+ ),
+ );
+ }, controller.activeStepperIndex),
+ ],
+ ),
+ );
+}
+
+class stepper extends StatelessWidget {
+ const stepper({super.key, required this.activeStep});
+ final int activeStep;
+
+ @override
+ Widget build(BuildContext context) {
+ return Directionality(
+ textDirection: TextDirection.ltr,
+ child: SizedBox(
+ height: 24,
+ width: Get.width,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Container(
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ color: activeStep >= 0
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ shape: BoxShape.circle,
+ ),
+ width: 24.w,
+ height: 24.h,
+ child: Text(
+ '1',
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(
+ color: activeStep >= 0 ? Colors.white : AppColor.iconColor,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Divider(
+ color: activeStep >= 1
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ thickness: 8,
+ ),
+ ),
+ Container(
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ color: activeStep >= 1
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ shape: BoxShape.circle,
+ ),
+ width: 24.w,
+ height: 24.h,
+ child: Text(
+ '2',
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(
+ color: activeStep >= 1 ? Colors.white : AppColor.iconColor,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Divider(
+ color: activeStep >= 2
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ thickness: 8,
+ ),
+ ),
+ Container(
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ color: activeStep >= 2
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ shape: BoxShape.circle,
+ ),
+ width: 24.w,
+ height: 24.h,
+ child: Text(
+ '3',
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(
+ color: activeStep >= 2 ? Colors.white : AppColor.iconColor,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Divider(
+ color: activeStep >= 3
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ thickness: 8,
+ ),
+ ),
+ Container(
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ color: activeStep >= 3
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ shape: BoxShape.circle,
+ ),
+ width: 24.w,
+ height: 24.h,
+ child: Text(
+ '4',
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(
+ color: activeStep >= 3 ? Colors.white : AppColor.iconColor,
+ ),
+ ),
+ ),
+ Expanded(
+ child: Divider(
+ color: activeStep >= 4
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ thickness: 8,
+ ),
+ ),
+ Container(
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ color: activeStep >= 4
+ ? AppColor.greenNormalHover
+ : AppColor.whiteNormalActive,
+ shape: BoxShape.circle,
+ ),
+ width: 24.w,
+ height: 24.h,
+ child: Text(
+ '5',
+ textAlign: TextAlign.center,
+ style: AppFonts.yekan16.copyWith(
+ color: activeStep >= 3 ? Colors.white : AppColor.iconColor,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step1_page.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step1_page.dart
new file mode 100644
index 0000000..6740746
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step1_page.dart
@@ -0,0 +1,166 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/widgets/card_info.dart';
+import 'package:rasadyar_core/core.dart';
+
+import '../home/logic.dart';
+
+Widget step1Page(PoultryFarmInspectionHomeLogic controller) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Column(
+ children: [
+ SizedBox(height: 25.h),
+
+ Container(
+ height: 610.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'اطلاعات پایه واحد',
+ child: basicUnitInformation(controller),
+ ),
+ ),
+
+ SizedBox(height: 30.h),
+
+ Container(
+ height: 400.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'اطلاعات جوجه ریزی',
+ child: hatchingInformation(controller),
+ ),
+ ),
+ SizedBox(height: 16.h),
+ ],
+ ),
+ );
+}
+
+Column basicUnitInformation(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نام واحد مرغداری',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'کد یکتا / شناسه واحد',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نام مالک / بهرهبردار',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['مالک', 'بهرهبردار', 'مشاور', 'دیگر']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'نوع مالکیت'),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'کد ملی بهرهبردار',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'شماره تماس بهرهبردار',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'ظرفیت اسمی سالنها',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نوع سیستم پرورش',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RElevated(
+ isFullWidth: true,
+ height: 40.h,
+ backgroundColor: AppColor.greenNormal,
+ onPressed: () {},
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 4,
+ children: [
+ Icon(Icons.my_location_rounded, color: Colors.white, size: 24),
+ Text('دریافت موقعیت جغرافیایی', style: AppFonts.yekan14.copyWith(color: Colors.white)),
+ ],
+ ),
+ ),
+ ],
+ );
+}
+
+Column hatchingInformation(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تاریخ جوجه ریزی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد جوجهریزی اولیه',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'منبع تهیه جوجه',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['سرابی', 'پژدر', 'روتوایلر', 'دیگر']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'نوع نژاد'),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'گرید جوجه',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میانگین وزن جوجه در ورود',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ ],
+ );
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step2_page.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step2_page.dart
new file mode 100644
index 0000000..f09c7d3
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step2_page.dart
@@ -0,0 +1,499 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/widgets/card_info.dart';
+import 'package:rasadyar_core/core.dart';
+
+import '../home/logic.dart';
+
+Widget step2Page(PoultryFarmInspectionHomeLogic controller) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Column(
+ children: [
+ SizedBox(height: 35.h),
+
+ Container(
+ height: 760.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'وضعیت عمومی سالن',
+ child: generalConditionOfTheHall(controller),
+ ),
+ ),
+
+ SizedBox(height: 30.h),
+
+ Container(
+ height: 430.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'تلفات',
+ child: casualtiesInformation(controller),
+ ),
+ ),
+ SizedBox(height: 24.h),
+
+ Container(
+ height: 450.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'بیماریها و وضعیت سلامت',
+ child: diseasesAndHealthInformation(controller),
+ ),
+ ),
+ ],
+ ),
+ );
+}
+
+Column generalConditionOfTheHall(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 12),
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(0, 12, 12, 6),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Container(
+ height: 80.h,
+ width: 80.w,
+ padding: EdgeInsets.all(22),
+ decoration: BoxDecoration(
+ color: Color(0xFFE9E9E9),
+ border: Border.all(width: 1, color: AppColor.blackLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Assets.vec.galleryAddSvg.svg(width: 36, height: 36),
+ ),
+ ],
+ ),
+ ),
+
+ Text(
+ 'تعداد موجود فعلی',
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColorLight),
+ ),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'وضعیت بهداشتی سالن',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ formChips(
+ selectedIndex: data.value,
+ index: 0,
+ label: 'عالی',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 1,
+ label: 'خوب',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 2,
+ label: 'متوسط',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 3,
+ label: 'ضعیف',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ ],
+ );
+ }, controller.sanitaryConditionOfTheHallIndex),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('وضعیت تهویه', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setVentilationStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'خشک',
+ ),
+ formChips(
+ onTap: (index) => controller.setVentilationStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'نیمهمرطوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setVentilationStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'مرطوب',
+ ),
+ ],
+ );
+ }, controller.ventilationStatusIndex),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('وضعیت بستر', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ spacing: 8,
+ children: [
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'خشک',
+ ),
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'نیمهمرطوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'مرطوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'نیازمند اصلاح',
+ ),
+ ],
+ ),
+ );
+ }, controller.beddingStatusIndex),
+ ],
+ ),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'دمای سالن',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ maxLines: 1,
+ minLines: 1,
+ keyboardType: TextInputType.number,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'کیفیت آب مصرفی',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setWaterQualityIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'چاه',
+ ),
+ formChips(
+ onTap: (index) => controller.setWaterQualityIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'شهری',
+ ),
+ formChips(
+ onTap: (index) => controller.setWaterQualityIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'تصفیهشده',
+ ),
+ ],
+ );
+ }, controller.waterQualityIndex),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'کیفیت آب مصرفی',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ formChips(
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'گازوییل',
+ ),
+ formChips(
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'بنزین',
+ ),
+ formChips(
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'گاز',
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 3,
+ label: 'نفت',
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ ),
+ ],
+ );
+ }, controller.fuelTypeIndex),
+ ],
+ ),
+ ),
+ ],
+ );
+}
+
+ChoiceChip formChips({
+ required int selectedIndex,
+ required int index,
+ required String label,
+ required Function(int) onTap,
+}) {
+ return ChoiceChip(
+ selectedColor: AppColor.green1Normal,
+ labelStyle: index == selectedIndex
+ ? AppFonts.yekan14Bold.copyWith(color: Colors.white)
+ : AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ surfaceTintColor: Colors.white,
+ checkmarkColor: Colors.white,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
+ side: index == selectedIndex
+ ? BorderSide.none
+ : BorderSide(width: 1, color: AppColor.blackLightHover),
+ ),
+ padding: EdgeInsets.symmetric(horizontal: 12, vertical: 6),
+
+ materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
+ label: Text(label),
+ selected: index == selectedIndex,
+ onSelected: (value) => onTap(index),
+ );
+}
+
+Column casualtiesInformation(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد تلفات عادی دوره',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تلفات غیرعادی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'منبع تهیه جوجه',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['بیماری', 'قطعی برق', 'استرس گرمایی', 'مشکلات دانه']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'علت احتمالی تلفات غیرعادی'),
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['انجام نشد', 'انجام شد']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'نمونهبرداری انجامشده'),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('نوع نمونه', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'رنده',
+ ),
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'لاشه',
+ ),
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'ترکیبی',
+ ),
+ ],
+ );
+ }, controller.sampleTypeIndex),
+ ],
+ ),
+ ),
+ ],
+ );
+}
+
+Column diseasesAndHealthInformation(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['بیماری', 'قطعی برق', 'استرس گرمایی', 'مشکلات دانه']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'وجود علائم بیماری در گله'),
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['انجام نشد', 'انجام شد']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'نوع بیماری تشخیص دادهشده / مشکوک'),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تاریخ واکسیناسیونهای انجامشده',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success([
+ 'واکسن 1',
+ 'واکسن 2',
+ 'واکسن 3',
+ 'واکسن 4',
+ 'واکسن 5',
+ 'واکسن 6',
+ 'واکسن 7',
+ 'واکسن 8',
+ 'واکسن 9',
+ 'واکسن 10',
+ ]),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'نوع واکسن'),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'شرکت تولیدکننده',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نام مسئول فنی بهداشتی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نام مسئول فنی نظام مهندسی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ ],
+ );
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step3_page.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step3_page.dart
new file mode 100644
index 0000000..eba203d
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step3_page.dart
@@ -0,0 +1,719 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/widgets/card_info.dart';
+import 'package:rasadyar_core/core.dart';
+
+import '../home/logic.dart';
+
+Widget step3Page(PoultryFarmInspectionHomeLogic controller) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Column(
+ children: [
+ SizedBox(height: 35.h),
+
+ Container(
+ height: 410.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'نهاده و خوراک',
+ child: agriculturalInput(controller),
+ ),
+ ),
+
+ SizedBox(height: 30.h),
+
+ Container(
+ height: 650.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'زیرساخت و انرژی',
+ child: infrastructureAndEnergy(controller),
+ ),
+ ),
+ SizedBox(height: 24.h),
+
+ Container(
+ height: 405.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'نیروی انسانی',
+ child: humanResources(controller),
+ ),
+ ),
+ SizedBox(height: 24.h),
+
+ Container(
+ height: 440.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'تسهیلات و حمایتها',
+ child: facilitiesAndSupport(controller),
+ ),
+ ),
+ ],
+ ),
+ );
+}
+
+Column agriculturalInput2(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(0, 12, 12, 6),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Container(
+ height: 80.h,
+ width: 80.w,
+ padding: EdgeInsets.all(22),
+ decoration: BoxDecoration(
+ color: Color(0xFFE9E9E9),
+ border: Border.all(width: 1, color: AppColor.blackLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Assets.vec.galleryAddSvg.svg(width: 36, height: 36),
+ ),
+ ],
+ ),
+ ),
+
+ Text(
+ 'تعداد موجود فعلی',
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColorLight),
+ ),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'وضعیت بهداشتی سالن',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ formChips(
+ selectedIndex: data.value,
+ index: 0,
+ label: 'عالی',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 1,
+ label: 'خوب',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 2,
+ label: 'متوسط',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 3,
+ label: 'ضعیف',
+ onTap: (index) => controller.setSanitaryConditionOfTheHallIndex(index),
+ ),
+ ],
+ );
+ }, controller.sanitaryConditionOfTheHallIndex),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('وضعیت تهویه', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setVentilationStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'خشک',
+ ),
+ formChips(
+ onTap: (index) => controller.setVentilationStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'نیمهمرطوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setVentilationStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'مرطوب',
+ ),
+ ],
+ );
+ }, controller.ventilationStatusIndex),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('وضعیت بستر', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ spacing: 8,
+ children: [
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'خشک',
+ ),
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'نیمهمرطوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'مرطوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setBeddingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'نیازمند اصلاح',
+ ),
+ ],
+ ),
+ );
+ }, controller.beddingStatusIndex),
+ ],
+ ),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'دمای سالن',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ maxLines: 1,
+ minLines: 1,
+ keyboardType: TextInputType.number,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'کیفیت آب مصرفی',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setWaterQualityIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'چاه',
+ ),
+ formChips(
+ onTap: (index) => controller.setWaterQualityIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'شهری',
+ ),
+ formChips(
+ onTap: (index) => controller.setWaterQualityIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'تصفیهشده',
+ ),
+ ],
+ );
+ }, controller.waterQualityIndex),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'کیفیت آب مصرفی',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ formChips(
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'گازوییل',
+ ),
+ formChips(
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'بنزین',
+ ),
+ formChips(
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'گاز',
+ ),
+ formChips(
+ selectedIndex: data.value,
+ index: 3,
+ label: 'نفت',
+ onTap: (index) => controller.setFuelTypeIndex(index),
+ ),
+ ],
+ );
+ }, controller.fuelTypeIndex),
+ ],
+ ),
+ ),
+ ],
+ );
+}
+
+ChoiceChip formChips({
+ required int selectedIndex,
+ required int index,
+ required String label,
+ required Function(int) onTap,
+}) {
+ return ChoiceChip(
+ selectedColor: AppColor.green1Normal,
+ labelStyle: index == selectedIndex
+ ? AppFonts.yekan14Bold.copyWith(color: Colors.white)
+ : AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ surfaceTintColor: Colors.white,
+ checkmarkColor: Colors.white,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
+ side: index == selectedIndex
+ ? BorderSide.none
+ : BorderSide(width: 1, color: AppColor.blackLightHover),
+ ),
+ padding: EdgeInsets.symmetric(horizontal: 12, vertical: 6),
+
+ materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
+ label: Text(label),
+ selected: index == selectedIndex,
+ onSelected: (value) => onTap(index),
+ );
+}
+
+Column infrastructureAndEnergy(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نوع ژنراتور',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'ظرفیت (KVA)',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'وضعیت عملکرد ژنراتور',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setGeneratorOperatingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'سالم',
+ ),
+ formChips(
+ onTap: (index) => controller.setGeneratorOperatingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'نیمهسالم',
+ ),
+ formChips(
+ onTap: (index) => controller.setGeneratorOperatingStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'معیوب',
+ ),
+ ],
+ );
+ }, controller.generatorOperatingStatusIndex),
+ ],
+ ),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان موجودی سوخت اضطراری (لیتر)',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['بیماری', 'قطعی برق', 'استرس گرمایی', 'مشکلات دانه']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'علت احتمالی تلفات غیرعادی'),
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['ندارد', 'دارد']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'سابقه قطعی برق دوره جاری'),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد تلفات',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'مدت قطعی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'توضیحات تکمیلی',
+ filled: true,
+ maxLines: 3,
+ minLines: 3,
+ filledColor: AppColor.bgLight,
+ ),
+ ],
+ );
+}
+
+Column agriculturalInput(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان نهاده مصرفی تا روز بازدید (کیلوگرم)',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان نهاده موجود در انبار',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان نهاده خریداریشده و حملنشده از بازارگاه',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('کیفیت دانه', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'خوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'متوسط',
+ ),
+ formChips(
+ onTap: (index) => controller.setGrainQualityInputIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'ضعیف',
+ ),
+ ],
+ );
+ }, controller.grainQualityInputIndex),
+ ],
+ ),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'فرمول دانه (در صورت ارائه)',
+ filled: true,
+ minLines: 3,
+ maxLines: 3,
+ filledColor: AppColor.bgLight,
+ ),
+ ],
+ );
+}
+
+Column humanResources(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد افراد شاغل',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد افراد بومی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد افراد غیر بومی',
+ filled: true,
+ maxLines: 3,
+ minLines: 3,
+ filledColor: AppColor.bgLight,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'وضعیت قرارداد کارگران',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setWorkerContractStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'دائم',
+ ),
+ formChips(
+ onTap: (index) => controller.setWorkerContractStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'موقت',
+ ),
+ formChips(
+ onTap: (index) => controller.setWorkerContractStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'روزمزدی',
+ ),
+ ],
+ );
+ }, controller.workerContractStatusIndex),
+ ],
+ ),
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['آموزش ندیده است', 'آموزش دیده است']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'آموزشدیده در حوزه بهداشت و امنیت زیستی'),
+ ),
+ ],
+ );
+}
+
+Column facilitiesAndSupport(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تسهیلات دریافتی فعال',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نوع تسهیلات',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'مبلغ',
+ filled: true,
+
+ filledColor: AppColor.bgLight,
+ ),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'سال دریافت',
+ filled: true,
+
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['دریافت نشده', 'دریافت شده']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'وضعیت بازپرداخت'),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'درخواست جدید بهرهبردار',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'نهاده',
+ ),
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'تسهیلات',
+ ),
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'واکسن',
+ ),
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 3,
+ label: 'تجهیزات',
+ ),
+ ],
+ ),
+ );
+ }, controller.newBeneficiaryRequestIndex),
+ ],
+ ),
+ ),
+ ],
+ );
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step4_page.dart b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step4_page.dart
new file mode 100644
index 0000000..8c2dadc
--- /dev/null
+++ b/packages/chicken/lib/presentation/pages/poultry_farm_inspection/widgets/step4_page.dart
@@ -0,0 +1,487 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/widgets/card_info.dart';
+import 'package:rasadyar_core/core.dart';
+
+import '../home/logic.dart';
+
+Widget step4Page(PoultryFarmInspectionHomeLogic controller) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Column(
+ children: [
+ SizedBox(height: 35.h),
+
+ Container(
+ height: 455.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'مستندات',
+ child: documents(controller),
+ ),
+ ),
+
+ SizedBox(height: 30.h),
+
+ Container(
+ height: 220.h,
+ clipBehavior: Clip.none,
+ width: Get.width,
+ child: farmInfoWidget(
+ controller: controller,
+ title: 'جمعبندی بازرس',
+ child: inspectorConclusion(controller),
+ ),
+ ),
+ SizedBox(height: 24.h),
+ ],
+ ),
+ );
+}
+
+Column documents(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(0, 12, 12, 6),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ SizedBox(height: 10.h),
+ SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Container(
+ height: 80.h,
+ width: 80.w,
+ padding: EdgeInsets.all(22),
+ decoration: BoxDecoration(
+ color: Color(0xFFE9E9E9),
+ border: Border.all(width: 1, color: AppColor.blackLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Assets.vec.galleryAddSvg.svg(width: 36, height: 36),
+ ),
+ ],
+ ),
+ ),
+
+ Text(
+ 'ثبت عکس سالن (حداقل ۳ زاویه) *',
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColorLight),
+ ),
+ ],
+ ),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(0, 12, 12, 6),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Container(
+ height: 80.h,
+ width: 80.w,
+ padding: EdgeInsets.all(22),
+ decoration: BoxDecoration(
+ color: Color(0xFFE9E9E9),
+ border: Border.all(width: 1, color: AppColor.blackLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Assets.vec.galleryAddSvg.svg(width: 36, height: 36),
+ ),
+ ],
+ ),
+ ),
+
+ Text(
+ 'ثبت عکس انبار نهادهها',
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColorLight),
+ ),
+ ],
+ ),
+ ),
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(0, 12, 12, 6),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Container(
+ height: 80.h,
+ width: 80.w,
+ padding: EdgeInsets.all(22),
+ decoration: BoxDecoration(
+ color: Color(0xFFE9E9E9),
+ border: Border.all(width: 1, color: AppColor.blackLightHover),
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Assets.vec.galleryAddSvg.svg(width: 36, height: 36),
+ ),
+ ],
+ ),
+ ),
+
+ Text('ثبت عکس تلفات', style: AppFonts.yekan14.copyWith(color: AppColor.textColorLight)),
+ ],
+ ),
+ ),
+ ],
+ );
+}
+
+ChoiceChip formChips({
+ required int selectedIndex,
+ required int index,
+ required String label,
+ required Function(int) onTap,
+}) {
+ return ChoiceChip(
+ selectedColor: AppColor.green1Normal,
+ labelStyle: index == selectedIndex
+ ? AppFonts.yekan14Bold.copyWith(color: Colors.white)
+ : AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ surfaceTintColor: Colors.white,
+ checkmarkColor: Colors.white,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
+ side: index == selectedIndex
+ ? BorderSide.none
+ : BorderSide(width: 1, color: AppColor.blackLightHover),
+ ),
+ padding: EdgeInsets.symmetric(horizontal: 12, vertical: 6),
+
+ materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
+ label: Text(label),
+ selected: index == selectedIndex,
+ onSelected: (value) => onTap(index),
+ );
+}
+
+Column inspectorConclusion(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'وضعیت کلی واحد',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setInspectorConclusionIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'تایید شده',
+ ),
+ formChips(
+ onTap: (index) => controller.setInspectorConclusionIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'نیازمند اصلاح',
+ ),
+ formChips(
+ onTap: (index) => controller.setInspectorConclusionIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'پرریسک',
+ ),
+ ],
+ ),
+ );
+ }, controller.inspectorConclusionIndex),
+ ],
+ ),
+ ),
+
+ RTextField(
+ controller: controller.inspectorConclusionDescriptionController,
+ hintText: 'توصیهها / اخطارها / اقدامات اصلاحی ...',
+ hintStyle: AppFonts.yekan14.copyWith(color: AppColor.textColorLight),
+ maxLines: 3,
+ minLines: 3,
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+ ],
+ );
+}
+
+Column agriculturalInput(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان نهاده مصرفی تا روز بازدید (کیلوگرم)',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان نهاده موجود در انبار',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'میزان نهاده خریداریشده و حملنشده از بازارگاه',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text('کیفیت دانه', style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2)),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'خوب',
+ ),
+ formChips(
+ onTap: (index) => controller.setSampleTypeIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'متوسط',
+ ),
+ formChips(
+ onTap: (index) => controller.setGrainQualityInputIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'ضعیف',
+ ),
+ ],
+ );
+ }, controller.grainQualityInputIndex),
+ ],
+ ),
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'فرمول دانه (در صورت ارائه)',
+ filled: true,
+ minLines: 3,
+ maxLines: 3,
+ filledColor: AppColor.bgLight,
+ ),
+ ],
+ );
+}
+
+Column humanResources(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد افراد شاغل',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد افراد بومی',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تعداد افراد غیر بومی',
+ filled: true,
+ maxLines: 3,
+ minLines: 3,
+ filledColor: AppColor.bgLight,
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'وضعیت قرارداد کارگران',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setWorkerContractStatusIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'دائم',
+ ),
+ formChips(
+ onTap: (index) => controller.setWorkerContractStatusIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'موقت',
+ ),
+ formChips(
+ onTap: (index) => controller.setWorkerContractStatusIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'روزمزدی',
+ ),
+ ],
+ );
+ }, controller.workerContractStatusIndex),
+ ],
+ ),
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['آموزش ندیده است', 'آموزش دیده است']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'آموزشدیده در حوزه بهداشت و امنیت زیستی'),
+ ),
+ ],
+ );
+}
+
+Column facilitiesAndSupport(PoultryFarmInspectionHomeLogic controller) {
+ return Column(
+ spacing: 10,
+ children: [
+ SizedBox(height: 1.h),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'تسهیلات دریافتی فعال',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'نوع تسهیلات',
+ filled: true,
+ filledColor: AppColor.bgLight,
+ ),
+
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'مبلغ',
+ filled: true,
+
+ filledColor: AppColor.bgLight,
+ ),
+ RTextField(
+ controller: controller.nameOfThePoultryFarmUnit,
+ label: 'سال دریافت',
+ filled: true,
+
+ filledColor: AppColor.bgLight,
+ ),
+
+ ResourceOverlayDropdown(
+ items: Resource.success(['دریافت نشده', 'دریافت شده']),
+
+ itemBuilder: (item) => Text(item),
+ labelBuilder: (selected) => Text(selected ?? 'وضعیت بازپرداخت'),
+ ),
+
+ cardInfo(
+ padding: EdgeInsets.fromLTRB(12, 12, 12, 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ spacing: 9,
+ children: [
+ Text(
+ 'درخواست جدید بهرهبردار',
+ style: AppFonts.yekan14Bold.copyWith(color: AppColor.textColor2),
+ ),
+
+ ObxValue((data) {
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ spacing: 10,
+ children: [
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 0,
+ label: 'نهاده',
+ ),
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 1,
+ label: 'تسهیلات',
+ ),
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 2,
+ label: 'واکسن',
+ ),
+ formChips(
+ onTap: (index) => controller.setNewBeneficiaryRequestIndex(index),
+ selectedIndex: data.value,
+ index: 3,
+ label: 'تجهیزات',
+ ),
+ ],
+ );
+ }, controller.newBeneficiaryRequestIndex),
+ ],
+ ),
+ ),
+ ],
+ );
+}
diff --git a/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart
index 3b89fe7..be6f035 100644
--- a/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart
+++ b/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart
@@ -136,7 +136,7 @@ class GenocidePage extends GetView {
),
Text(
- 'تعداد:${item.quantity.separatedByComma ?? '-'} (قطعه)',
+ 'تعداد:${item.quantity.separatedByComma} (قطعه)',
style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
),
],
@@ -149,7 +149,7 @@ class GenocidePage extends GetView {
value: (item.freeSaleInProvince ?? false) ? 'آزاد' : 'دولتی ',
),
buildRow(title: 'نوع کشتار ', value: controller.getKillType(item)),
- buildRow(title: 'درخواست', value: controller.getRequestType(item) ?? 'N/A'),
+ buildRow(title: 'درخواست', value: controller.getRequestType(item)),
buildRow(title: 'میانگین وزنی', value: '${(item.indexWeight)} (کیلوگرم)'),
buildRow(title: 'قیمت مرغدار', value: '${item.amount.separatedByComma} (ریال)'),
@@ -231,7 +231,7 @@ class GenocidePage extends GetView {
),
Text(
- 'تعداد:${item.quantity.separatedByComma ?? '-'} (قطعه)',
+ 'تعداد:${item.quantity.separatedByComma} (قطعه)',
style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
),
],
diff --git a/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart
index e20d239..07149c4 100644
--- a/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart
+++ b/packages/chicken/lib/presentation/pages/poultry_science/inspection/view.dart
@@ -465,7 +465,7 @@ class InspectionPoultrySciencePage extends GetView {
title: item.title,
vecIcon: item.icon,
onTap: () async {
-
Get.toNamed(item.route, id: poultryFirstKey);
},
);
diff --git a/packages/chicken/lib/presentation/pages/poultry_science/root/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/root/logic.dart
index 53f576f..c12b9c0 100644
--- a/packages/chicken/lib/presentation/pages/poultry_science/root/logic.dart
+++ b/packages/chicken/lib/presentation/pages/poultry_science/root/logic.dart
@@ -4,7 +4,6 @@ import 'package:rasadyar_chicken/data/di/chicken_di.dart';
import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository.dart';
import 'package:rasadyar_chicken/presentation/pages/common/profile/view.dart';
import 'package:rasadyar_chicken/presentation/pages/poultry_science/home/view.dart';
-import 'package:rasadyar_chicken/presentation/pages/poultry_science/poultry_action/view.dart';
import 'package:rasadyar_chicken/presentation/routes/pages.dart';
import 'package:rasadyar_chicken/presentation/routes/routes.dart';
import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart';
diff --git a/packages/chicken/lib/presentation/pages/steward/buy_in_province/logic.dart b/packages/chicken/lib/presentation/pages/steward/buy_in_province/logic.dart
index f3c64f9..28f5734 100644
--- a/packages/chicken/lib/presentation/pages/steward/buy_in_province/logic.dart
+++ b/packages/chicken/lib/presentation/pages/steward/buy_in_province/logic.dart
@@ -83,7 +83,6 @@ class BuyInProvinceLogic extends GetxController {
}
Future onRefresh() async {
- final isWaiting = selectedSegmentIndex.value == 0;
await rootLogic.onRefresh();
await Future.wait([buyWaitingLogic.getWaitingArrivals(), buyAllLogic.getAllArrivals()]);
}
diff --git a/packages/chicken/lib/presentation/pages/steward/buy_in_province_all/logic.dart b/packages/chicken/lib/presentation/pages/steward/buy_in_province_all/logic.dart
index b734c2a..0c23aa9 100644
--- a/packages/chicken/lib/presentation/pages/steward/buy_in_province_all/logic.dart
+++ b/packages/chicken/lib/presentation/pages/steward/buy_in_province_all/logic.dart
@@ -42,11 +42,7 @@ class BuyInProvinceAllLogic extends GetxController {
});
}
- @override
- void onClose() {
- // TODO: implement onClose
- super.onClose();
- }
+
Future getAllArrivals([bool isLoadingMore = false]) async {
if (isLoadingMore) {
@@ -71,8 +67,8 @@ class BuyInProvinceAllLogic extends GetxController {
search: 'filter',
role: 'Steward',
value: searchedValue.value,
- fromDate: fromDateFilter.value?.toDateTime(),
- toDate: toDateFilter.value?.toDateTime(),
+ fromDate: fromDateFilter.value.toDateTime(),
+ toDate: toDateFilter.value.toDateTime(),
),
),
onSuccess: (res) async {
diff --git a/packages/chicken/lib/presentation/pages/steward/buy_in_province_waiting/logic.dart b/packages/chicken/lib/presentation/pages/steward/buy_in_province_waiting/logic.dart
index b537576..a8dab30 100644
--- a/packages/chicken/lib/presentation/pages/steward/buy_in_province_waiting/logic.dart
+++ b/packages/chicken/lib/presentation/pages/steward/buy_in_province_waiting/logic.dart
@@ -48,10 +48,7 @@ class BuyInProvinceWaitingLogic extends GetxController {
});
}
- @override
- void onClose() {
- super.onClose();
- }
+
void setSearchValue(String? data) {
searchedValue.value = data?.trim();
@@ -80,8 +77,8 @@ class BuyInProvinceWaitingLogic extends GetxController {
search: 'filter',
role: 'Steward',
value: searchedValue.value,
- fromDate: fromDateFilter.value?.toDateTime(),
- toDate: toDateFilter.value?.toDateTime(),
+ fromDate: fromDateFilter.value.toDateTime(),
+ toDate: toDateFilter.value.toDateTime(),
),
),
onSuccess: (res) async {
diff --git a/packages/chicken/lib/presentation/pages/steward/buy_out_of_province/view.dart b/packages/chicken/lib/presentation/pages/steward/buy_out_of_province/view.dart
index de73035..3b25625 100644
--- a/packages/chicken/lib/presentation/pages/steward/buy_out_of_province/view.dart
+++ b/packages/chicken/lib/presentation/pages/steward/buy_out_of_province/view.dart
@@ -428,7 +428,7 @@ class BuyOutOfProvincePage extends GetView {
enabled: controller.isSubmitButtonEnabled.value,
onPressed: isOnEdit
? () async {
- var res = await controller.editStewardPurchaseOutOfProvince();
+ await controller.editStewardPurchaseOutOfProvince();
Get.back();
}
: () async {
diff --git a/packages/chicken/lib/presentation/pages/steward/home/logic.dart b/packages/chicken/lib/presentation/pages/steward/home/logic.dart
index d5864cd..b0ef74a 100644
--- a/packages/chicken/lib/presentation/pages/steward/home/logic.dart
+++ b/packages/chicken/lib/presentation/pages/steward/home/logic.dart
@@ -1,6 +1,5 @@
import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
-import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/presentation/pages/steward/root/logic.dart';
import 'package:rasadyar_core/core.dart';
diff --git a/packages/chicken/lib/presentation/pages/steward/root/logic.dart b/packages/chicken/lib/presentation/pages/steward/root/logic.dart
index e6fc6fa..1d6bd06 100644
--- a/packages/chicken/lib/presentation/pages/steward/root/logic.dart
+++ b/packages/chicken/lib/presentation/pages/steward/root/logic.dart
@@ -225,9 +225,6 @@ class StewardRootLogic extends GetxController {
final nestedKeyId = getNestedKey();
GlobalKey? currentNestedKey = Get.nestedKey(nestedKeyId);
- final currentRoute = currentNestedKey?.currentState;
-
- fLog("onPopScopTaped ==> ${currentNestedKey?.currentState?.canPop()}");
if (currentNestedKey?.currentState?.canPop() == true) {
iLog(currentNestedKey?.currentState?.canPop());
iLog(currentNestedKey?.currentContext);
diff --git a/packages/chicken/lib/presentation/pages/steward/root/view.dart b/packages/chicken/lib/presentation/pages/steward/root/view.dart
index 5fa415b..ea2af0f 100644
--- a/packages/chicken/lib/presentation/pages/steward/root/view.dart
+++ b/packages/chicken/lib/presentation/pages/steward/root/view.dart
@@ -25,8 +25,9 @@ class StewardRootPage extends GetView {
onGenerateRoute: (settings) {
final page = ChickenPages.pages.firstWhere(
(e) => e.name == settings.name,
- orElse: () =>
- ChickenPages.pages.firstWhere((e) => e.name == ChickenRoutes.buySteward),
+ orElse: () => ChickenPages.pages.firstWhere(
+ (e) => e.name == ChickenRoutes.buySteward,
+ ),
);
return buildRouteFromGetPage(page);
@@ -37,8 +38,9 @@ class StewardRootPage extends GetView {
onGenerateRoute: (settings) {
final page = ChickenPages.pages.firstWhere(
(e) => e.name == settings.name,
- orElse: () =>
- ChickenPages.pages.firstWhere((e) => e.name == ChickenRoutes.saleSteward),
+ orElse: () => ChickenPages.pages.firstWhere(
+ (e) => e.name == ChickenRoutes.saleSteward,
+ ),
);
return buildRouteFromGetPage(page);
@@ -46,15 +48,18 @@ class StewardRootPage extends GetView {
),
Navigator(
key: Get.nestedKey(stewardThirdKey),
- onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[2]),
+ onGenerateRoute: (settings) =>
+ GetPageRoute(page: () => controller.pages[2]),
),
Navigator(
key: Get.nestedKey(stewardFourthKey),
- onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[3]),
+ onGenerateRoute: (settings) =>
+ GetPageRoute(page: () => controller.pages[3]),
),
Navigator(
key: Get.nestedKey(stewardFifthKey),
- onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[4]),
+ onGenerateRoute: (settings) =>
+ GetPageRoute(page: () => controller.pages[4]),
),
],
index: data.value,
@@ -150,7 +155,10 @@ class StewardRootPage extends GetView {
return Container(
height: 70,
width: Get.width / 2,
- decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(8),
+ ),
clipBehavior: Clip.hardEdge,
child: Row(
children: [
@@ -171,7 +179,9 @@ class StewardRootPage extends GetView {
Text(
'بارهای امروز',
textAlign: TextAlign.right,
- style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.blueNormal,
+ ),
),
],
),
@@ -238,7 +248,9 @@ class StewardRootPage extends GetView {
Text(
title,
textAlign: TextAlign.right,
- style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
],
),
@@ -261,12 +273,16 @@ class StewardRootPage extends GetView {
Text(
description,
textAlign: TextAlign.right,
- style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan16.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
Text(
unit,
textAlign: TextAlign.center,
- style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan12.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
],
),
@@ -311,17 +327,23 @@ class StewardRootPage extends GetView {
Text(
title,
textAlign: TextAlign.right,
- style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
Text(
description,
textAlign: TextAlign.right,
- style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan16.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
Text(
unit,
textAlign: TextAlign.center,
- style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan12.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
],
),
@@ -369,14 +391,18 @@ class StewardRootPage extends GetView {
padding: EdgeInsets.all(4),
decoration: ShapeDecoration(
color: const Color(0xFFBECDFF),
- shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
+ ),
),
child: Container(
width: 40,
height: 40,
decoration: ShapeDecoration(
color: AppColor.blueNormal,
- shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
+ ),
),
child: SvgGenImage.vec(iconPath).svg(
width: 24,
@@ -386,7 +412,10 @@ class StewardRootPage extends GetView {
),
),
),
- Text(title, style: AppFonts.yekan10.copyWith(color: AppColor.blueNormal)),
+ Text(
+ title,
+ style: AppFonts.yekan10.copyWith(color: AppColor.blueNormal),
+ ),
],
);
}
@@ -403,16 +432,24 @@ class StewardRootPage extends GetView {
padding: EdgeInsets.all(4),
decoration: ShapeDecoration(
color: const Color(0xFFD9F7F0),
- shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
+ ),
),
child: Assets.vec.messageAddSvg.svg(
width: 40,
height: 40,
- colorFilter: ColorFilter.mode(AppColor.greenNormal, BlendMode.srcIn),
+ colorFilter: ColorFilter.mode(
+ AppColor.greenNormal,
+ BlendMode.srcIn,
+ ),
fit: BoxFit.cover,
),
),
- Text('افزودن', style: AppFonts.yekan10.copyWith(color: AppColor.greenDarkHover)),
+ Text(
+ 'افزودن',
+ style: AppFonts.yekan10.copyWith(color: AppColor.greenDarkHover),
+ ),
],
);
}
@@ -559,7 +596,9 @@ class StewardRootPage extends GetView {
child: Text(
title,
textAlign: TextAlign.right,
- style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.darkGreyDarkHover,
+ ),
),
),
Flexible(
@@ -567,7 +606,9 @@ class StewardRootPage extends GetView {
child: Text(
value,
textAlign: TextAlign.center,
- style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.darkGreyDarkHover,
+ ),
),
),
],
@@ -593,7 +634,9 @@ class StewardRootPage extends GetView {
Text(
'اطلاعات ارسالی',
textAlign: TextAlign.right,
- style: AppFonts.yekan16Bold.copyWith(color: AppColor.blueNormal),
+ style: AppFonts.yekan16Bold.copyWith(
+ color: AppColor.blueNormal,
+ ),
),
const SizedBox(height: 12),
buildRow(
diff --git a/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart b/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart
index 79b72a4..e6d2286 100644
--- a/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart
+++ b/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart
@@ -474,7 +474,7 @@ class SalesInProvincePage extends GetView {
Expanded(
child: ObxValue((data) {
return Text(
- date.value?.formatCompactDate() ?? Jalali.now().formatCompactDate(),
+ date.value.formatCompactDate(),
textAlign: TextAlign.center,
style: AppFonts.yekan16.copyWith(color: AppColor.lightGreyNormalActive),
);
diff --git a/packages/chicken/lib/presentation/pages/steward/sales_in_province/widgets/cu_sale_in_provience.dart b/packages/chicken/lib/presentation/pages/steward/sales_in_province/widgets/cu_sale_in_provience.dart
index 0d27602..eee86cc 100644
--- a/packages/chicken/lib/presentation/pages/steward/sales_in_province/widgets/cu_sale_in_provience.dart
+++ b/packages/chicken/lib/presentation/pages/steward/sales_in_province/widgets/cu_sale_in_provience.dart
@@ -46,7 +46,7 @@ Widget addOrEditBottomSheet(SalesInProvinceLogic controller, {bool isEditMode =
);
},
borderColor: AppColor.darkGreyLight,
- initText: (data.value ?? Jalali.now()).formatCompactDate(),
+ initText: (data.value).formatCompactDate(),
);
}, controller.fromDateFilter),
Visibility(
diff --git a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart
index ed43283..5db4b13 100644
--- a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart
+++ b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart
@@ -36,7 +36,8 @@ class SalesOutOfProvincePage extends GetView {
ObxValue((data) {
return RPaginatedListView(
- onLoadMore: () async => controller.getOutProvinceSales(true),
+ onLoadMore: () async =>
+ controller.getOutProvinceSales(true),
hasMore: data.value.data?.next != null,
listType: ListType.separated,
resource: data.value,
@@ -70,19 +71,27 @@ class SalesOutOfProvincePage extends GetView {
children: [
RFab.add(
onPressed: () {
- Get.bottomSheet(addOrEditSaleBottomSheet(), isScrollControlled: true).then((
- value,
- ) {
+ Get.bottomSheet(
+ addOrEditSaleBottomSheet(),
+ isScrollControlled: true,
+ ).then((value) {
controller.clearSaleForm();
});
},
),
Spacer(),
RFab(
- icon: Icon(CupertinoIcons.person_add_solid, color: Colors.white, size: 35.w),
+ icon: Icon(
+ CupertinoIcons.person_add_solid,
+ color: Colors.white,
+ size: 35.w,
+ ),
backgroundColor: AppColor.blueNormal,
onPressed: () {
- Get.toNamed(ChickenRoutes.salesOutOfProvinceBuyerSteward, id: stewardSecondKey);
+ Get.toNamed(
+ ChickenRoutes.salesOutOfProvinceBuyerSteward,
+ id: stewardSecondKey,
+ );
},
),
SizedBox(width: 25),
@@ -176,7 +185,10 @@ class SalesOutOfProvincePage extends GetView {
itemListExpandedWidget(StewardFreeSaleBar item, int index) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 8),
- decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(8),
+ ),
child: Column(
spacing: 8,
children: [
@@ -208,12 +220,16 @@ class SalesOutOfProvincePage extends GetView {
children: [
Text(
item.date?.toJalali.formatter.wN ?? 'ندارد',
- style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.textColor,
+ ),
),
Text(
'${item.date?.toJalali.formatter.d} ${item.date?.toJalali.formatter.mN ?? 'ندارد'}',
- style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.blueNormal,
+ ),
),
],
),
@@ -230,7 +246,10 @@ class SalesOutOfProvincePage extends GetView {
],
),
),
- buildRow(title: 'مشخصات خریدار', value: item.buyer?.fullname ?? 'ندارد'),
+ buildRow(
+ title: 'مشخصات خریدار',
+ value: item.buyer?.fullname ?? 'ندارد',
+ ),
buildRow(title: 'تلفن خریدار', value: item.buyer?.mobile ?? 'ندارد'),
buildRow(title: 'نام واحد', value: item.buyer?.unitName ?? 'ندارد'),
buildRow(
@@ -248,7 +267,10 @@ class SalesOutOfProvincePage extends GetView {
value: item.productionDate?.toJalali.formatCompactDate() ?? 'ندارد',
),
buildRow(title: 'انبار فروش', value: '${item.quota?.faTitle}'),
- buildRow(title: 'کد قرنطینه ', value: item.clearanceCode ?? 'بدون کد'),
+ buildRow(
+ title: 'کد قرنطینه ',
+ value: item.clearanceCode ?? 'بدون کد',
+ ),
buildRow(
title: 'حجم تقریبی لاشه ',
@@ -261,7 +283,9 @@ class SalesOutOfProvincePage extends GetView {
children: [
Text(
'کد احراز',
- style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.darkGreyDarkHover,
+ ),
),
Spacer(),
RElevated(
@@ -271,7 +295,9 @@ class SalesOutOfProvincePage extends GetView {
backgroundColor: AppColor.blueDarkHover,
text: 'ارسال کد',
onPressed: () {
- Get.bottomSheet(bottomSendOtpSheetSellCode(item)).then((value) {
+ Get.bottomSheet(bottomSendOtpSheetSellCode(item)).then((
+ value,
+ ) {
controller.otpCode.value = '';
controller.otpCodeSell.clear();
});
@@ -280,7 +306,10 @@ class SalesOutOfProvincePage extends GetView {
],
)
: buildRow(title: 'کد احراز ', value: '${item.registerCode}'),
- buildRow(title: 'کد قرنطینه ', value: item.clearanceCode ?? 'بدون کد'),
+ buildRow(
+ title: 'کد قرنطینه ',
+ value: item.clearanceCode ?? 'بدون کد',
+ ),
Row(
mainAxisAlignment: MainAxisAlignment.center,
@@ -338,7 +367,9 @@ class SalesOutOfProvincePage extends GetView {
children: [
Text(
isOnEdit ? 'ویرایش فروش' : 'افزودن فروش',
- style: AppFonts.yekan16Bold.copyWith(color: AppColor.blueNormal),
+ style: AppFonts.yekan16Bold.copyWith(
+ color: AppColor.blueNormal,
+ ),
),
_productDropDown(),
@@ -360,7 +391,9 @@ class SalesOutOfProvincePage extends GetView {
label: 'تاریخ',
onTap: () {
Get.bottomSheet(
- modalDatePicker((value) => controller.setSaleDate(value)),
+ modalDatePicker(
+ (value) => controller.setSaleDate(value),
+ ),
);
},
borderColor: AppColor.darkGreyLight,
@@ -375,7 +408,10 @@ class SalesOutOfProvincePage extends GetView {
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
- border: Border.all(color: AppColor.darkGreyLight, width: 1),
+ border: Border.all(
+ color: AppColor.darkGreyLight,
+ width: 1,
+ ),
),
child: Stack(
fit: StackFit.expand,
@@ -383,7 +419,10 @@ class SalesOutOfProvincePage extends GetView {
clipBehavior: Clip.none,
children: [
Positioned(
- child: Container(color: Colors.white, child: Text("انبار")),
+ child: Container(
+ color: Colors.white,
+ child: Text("انبار"),
+ ),
top: -10,
right: 8,
),
@@ -404,7 +443,10 @@ class SalesOutOfProvincePage extends GetView {
child: Row(
children: [
Radio(value: 1),
- Text('دولتی', style: AppFonts.yekan14),
+ Text(
+ 'دولتی',
+ style: AppFonts.yekan14,
+ ),
],
),
),
@@ -418,7 +460,10 @@ class SalesOutOfProvincePage extends GetView {
child: Row(
children: [
Radio(value: 2),
- Text('آزاد', style: AppFonts.yekan14),
+ Text(
+ 'آزاد',
+ style: AppFonts.yekan14,
+ ),
],
),
),
@@ -435,7 +480,8 @@ class SalesOutOfProvincePage extends GetView {
Obx(() {
return MonthlyDataCalendar(
label: 'تاریخ تولید گوشت',
- selectedDate: controller.productionDate.value?.formatCompactDate(),
+ selectedDate: controller.productionDate.value
+ ?.formatCompactDate(),
onDateSelect: (value) {
controller.setProductionDate(value);
},
@@ -445,7 +491,10 @@ class SalesOutOfProvincePage extends GetView {
);
}),
- Visibility(visible: isOnEdit == false, child: _buyerWidget()),
+ Visibility(
+ visible: isOnEdit == false,
+ child: _buyerWidget(),
+ ),
RTextField(
controller: controller.saleWeightController,
@@ -500,7 +549,10 @@ class SalesOutOfProvincePage extends GetView {
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
- border: Border.all(color: AppColor.darkGreyLight, width: 1),
+ border: Border.all(
+ color: AppColor.darkGreyLight,
+ width: 1,
+ ),
),
child: Stack(
fit: StackFit.expand,
@@ -508,7 +560,10 @@ class SalesOutOfProvincePage extends GetView {
clipBehavior: Clip.none,
children: [
Positioned(
- child: Container(color: Colors.white, child: Text("فروش")),
+ child: Container(
+ color: Colors.white,
+ child: Text("فروش"),
+ ),
top: -10,
right: 8,
),
@@ -522,7 +577,12 @@ class SalesOutOfProvincePage extends GetView {
children: [
Expanded(
child: GestureDetector(
- onTap: (controller.broadcastPrice.value?.active ?? false)
+ onTap:
+ (controller
+ .broadcastPrice
+ .value
+ ?.active ??
+ false)
? () {
controller.saleType.value = 2;
}
@@ -532,13 +592,20 @@ class SalesOutOfProvincePage extends GetView {
Radio(
value: 1,
enabled:
- controller.broadcastPrice.value?.active ?? false,
+ controller
+ .broadcastPrice
+ .value
+ ?.active ??
+ false,
),
Text(
'قیمت مصوب',
style: AppFonts.yekan14.copyWith(
color:
- (controller.broadcastPrice.value?.active ??
+ (controller
+ .broadcastPrice
+ .value
+ ?.active ??
false)
? AppColor.textColor
: AppColor.labelTextColor,
@@ -557,7 +624,10 @@ class SalesOutOfProvincePage extends GetView {
child: Row(
children: [
Radio(value: 2),
- Text('قیمت آزاد', style: AppFonts.yekan14),
+ Text(
+ 'قیمت آزاد',
+ style: AppFonts.yekan14,
+ ),
],
),
),
@@ -584,7 +654,8 @@ class SalesOutOfProvincePage extends GetView {
filled: true,
readonly: data.value == 1,
onChanged: (p0) {
- controller.pricePerKilo.value = int.tryParse(p0.clearComma) ?? 0;
+ controller.pricePerKilo.value =
+ int.tryParse(p0.clearComma) ?? 0;
},
keyboardType: TextInputType.number,
label: 'قیمت هر کیلو (ريال)',
@@ -639,7 +710,9 @@ class SalesOutOfProvincePage extends GetView {
text: isOnEdit ? 'ویرایش' : 'ثبت',
onPressed: data.value
? () async {
- var res = isOnEdit ? await controller.editSale() : await controller.createSale();
+ isOnEdit
+ ? await controller.editSale()
+ : await controller.createSale();
}
: null,
height: 40,
@@ -684,7 +757,10 @@ class SalesOutOfProvincePage extends GetView {
Text(item?.name ?? 'انتخاب محصول'),
Spacer(),
ObxValue((data) {
- return Visibility(visible: data.value != null, child: Text('موجودی: $data'));
+ return Visibility(
+ visible: data.value != null,
+ child: Text('موجودی: $data'),
+ );
}, controller.remainingStock),
],
),
@@ -716,15 +792,23 @@ class SalesOutOfProvincePage extends GetView {
Assets.vec.calendarSvg.svg(
width: 24,
height: 24,
- colorFilter: const ColorFilter.mode(AppColor.bgDark, BlendMode.srcIn),
+ colorFilter: const ColorFilter.mode(
+ AppColor.bgDark,
+ BlendMode.srcIn,
+ ),
+ ),
+ Text(
+ title ?? 'تاریخ',
+ style: AppFonts.yekan16.copyWith(color: AppColor.bgDark),
),
- Text(title ?? 'تاریخ', style: AppFonts.yekan16.copyWith(color: AppColor.bgDark)),
Expanded(
child: ObxValue((data) {
return Text(
date.value.formatCompactDate(),
textAlign: TextAlign.center,
- style: AppFonts.yekan16.copyWith(color: AppColor.darkGreyDark),
+ style: AppFonts.yekan16.copyWith(
+ color: AppColor.darkGreyDark,
+ ),
);
}, date),
),
@@ -806,7 +890,9 @@ class SalesOutOfProvincePage extends GetView {
height: 40.h,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
- border: borderColor != null ? Border.all(width: 1, color: borderColor) : null,
+ border: borderColor != null
+ ? Border.all(width: 1, color: borderColor)
+ : null,
),
clipBehavior: Clip.hardEdge,
child: Row(
@@ -868,12 +954,16 @@ class SalesOutOfProvincePage extends GetView {
maxLines: 1,
textDirection: TextDirection.ltr,
overflow: TextOverflow.ellipsis,
- style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan14.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
Text(
unit,
textAlign: TextAlign.center,
- style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive),
+ style: AppFonts.yekan12.copyWith(
+ color: AppColor.mediumGreyDarkActive,
+ ),
),
],
),
diff --git a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province_buyers/logic.dart b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province_buyers/logic.dart
index 45624e4..4a441b4 100644
--- a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province_buyers/logic.dart
+++ b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province_buyers/logic.dart
@@ -175,7 +175,7 @@ class SalesOutOfProvinceBuyersLogic extends GetxController {
mobile: buyerPhoneController.text,
role: 'Steward',
);
- final res = await rootLogic.chickenRepository.createOutProvinceCarcassesBuyer(
+ await rootLogic.chickenRepository.createOutProvinceCarcassesBuyer(
token: rootLogic.tokenService.accessToken.value!,
body: buyer,
);
diff --git a/packages/chicken/lib/presentation/routes/pages.dart b/packages/chicken/lib/presentation/routes/pages.dart
index 03c1924..22a1194 100644
--- a/packages/chicken/lib/presentation/routes/pages.dart
+++ b/packages/chicken/lib/presentation/routes/pages.dart
@@ -2,6 +2,7 @@ import 'package:rasadyar_chicken/presentation/pages/common/auth/logic.dart';
import 'package:rasadyar_chicken/presentation/pages/common/auth/view.dart';
import 'package:rasadyar_chicken/presentation/pages/common/role/logic.dart';
import 'package:rasadyar_chicken/presentation/pages/common/role/view.dart';
+import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/poultry_farm_inspection.dart';
import 'package:rasadyar_chicken/presentation/pages/poultry_science/active_hatching/logic.dart';
import 'package:rasadyar_chicken/presentation/pages/poultry_science/active_hatching/view.dart';
import 'package:rasadyar_chicken/presentation/pages/poultry_science/farm/logic.dart';
@@ -69,7 +70,6 @@ sealed class ChickenPages {
page: () => HomePage(),
middlewares: [AuthMiddleware()],
binding: BindingsBuilder(() {
-
Get.put(HomeLogic());
Get.lazyPut(() => BaseLogic());
}),
@@ -223,5 +223,16 @@ sealed class ChickenPages {
}),
),
//endregion
+
+ //region Poultry Farm Inspection
+ GetPage(
+ name: ChickenRoutes.poultryFarmInspectionHome,
+ page: () => PoultryFarmInspectionHomePage(),
+ binding: BindingsBuilder(() {
+ Get.lazyPut(() => PoultryFarmInspectionHomeLogic());
+ Get.lazyPut(() => BaseLogic(), fenix: true);
+ }),
+ ),
+ //endregion
];
}
diff --git a/packages/chicken/lib/presentation/routes/routes.dart b/packages/chicken/lib/presentation/routes/routes.dart
index fe4e827..9049f91 100644
--- a/packages/chicken/lib/presentation/routes/routes.dart
+++ b/packages/chicken/lib/presentation/routes/routes.dart
@@ -35,7 +35,11 @@ sealed class ChickenRoutes {
static const genocidePoultryScience = '$_poultryScience/genocidePoultryScience';
static const killingRegistrationPoultryScience = '$genocidePoultryScience/KillingRegistration';
+ //endregion
+ //region poultry Farm Inspection
+ static const _poultryFarmInspection = '$_base/poultryFarmInspection';
+ static const poultryFarmInspectionHome = '$_poultryFarmInspection/Home';
//endregion
}
diff --git a/packages/chicken/lib/presentation/widget/info_card/info_card.dart b/packages/chicken/lib/presentation/widget/info_card/info_card.dart
new file mode 100644
index 0000000..ca520fe
--- /dev/null
+++ b/packages/chicken/lib/presentation/widget/info_card/info_card.dart
@@ -0,0 +1,26 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_core/core.dart';
+
+Widget cardInfo({required int value, required String description, required Color color}) {
+ return Container(
+ width: 90.w,
+ height: 53.h,
+ decoration: BoxDecoration(
+ color: color,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(width: 0.50, color: const Color.fromARGB(54, 169, 169, 169)),
+ ),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ spacing: 4,
+ children: [
+ Text(
+ value.separatedByCommaFa,
+ style: AppFonts.yekan13Bold.copyWith(color: AppColor.textColor),
+ ),
+ Text(description, style: AppFonts.yekan10.copyWith(color: AppColor.textColor)),
+ ],
+ ),
+ );
+}
diff --git a/packages/chicken/pubspec.yaml b/packages/chicken/pubspec.yaml
index fd61c05..4babdf4 100644
--- a/packages/chicken/pubspec.yaml
+++ b/packages/chicken/pubspec.yaml
@@ -1,9 +1,9 @@
name: rasadyar_chicken
description: A starting point for Dart libraries or applications.
-version: 1.3.18
+version: 1.3.20
environment:
- sdk: ^3.9.2
+ sdk: ^3.10.0
dependencies:
diff --git a/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart b/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart
index e616636..bb1fa65 100644
--- a/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart
+++ b/packages/chicken/test/data/data_source/remote/auth/auth_remote_imp_test.dart
@@ -229,14 +229,14 @@ void main() {
data: expectedUserInfo,
statusCode: 200,
requestOptions: RequestOptions(
- path: 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ path: 'https://userbackend.rasadyar.com/api/send_otp/',
),
),
);
when(
() => mockDioRemote.post(
- 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ 'https://userbackend.rasadyar.com/api/send_otp/',
data: {"mobile": phoneNumber, "state": ""},
fromJson: any(named: 'fromJson'),
headers: any(named: 'headers'),
@@ -250,7 +250,7 @@ void main() {
expect(result, equals(expectedUserInfo));
verify(
() => mockDioRemote.post(
- 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ 'https://userbackend.rasadyar.com/api/send_otp/',
data: {"mobile": phoneNumber, "state": ""},
fromJson: UserInfoModel.fromJson,
headers: {'Content-Type': 'application/json'},
@@ -267,14 +267,14 @@ void main() {
data: null,
statusCode: 404,
requestOptions: RequestOptions(
- path: 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ path: 'https://userbackend.rasadyar.com/api/send_otp/',
),
),
);
when(
() => mockDioRemote.post(
- 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ 'https://userbackend.rasadyar.com/api/send_otp/',
data: {"mobile": phoneNumber, "state": ""},
fromJson: any(named: 'fromJson'),
headers: any(named: 'headers'),
@@ -288,7 +288,7 @@ void main() {
expect(result, isNull);
verify(
() => mockDioRemote.post(
- 'https://userbackend.rasadyaar.ir/api/send_otp/',
+ 'https://userbackend.rasadyar.com/api/send_otp/',
data: {"mobile": phoneNumber, "state": ""},
fromJson: UserInfoModel.fromJson,
headers: {'Content-Type': 'application/json'},
diff --git a/packages/chicken/test/integration/steward_workflow_integration_test.dart b/packages/chicken/test/integration/steward_workflow_integration_test.dart
index 9e9d303..58025c8 100644
--- a/packages/chicken/test/integration/steward_workflow_integration_test.dart
+++ b/packages/chicken/test/integration/steward_workflow_integration_test.dart
@@ -4,27 +4,14 @@ import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote.dart';
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart';
-import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart';
-import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart';
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
-import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
-import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart';
-import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
-import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
-import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart';
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
-import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
-import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart';
-import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart';
-import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart';
-import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
-import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart';
import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository_imp.dart';
import 'package:rasadyar_core/core.dart';
diff --git a/packages/core/lib/core.dart b/packages/core/lib/core.dart
index 1412fac..b071a46 100644
--- a/packages/core/lib/core.dart
+++ b/packages/core/lib/core.dart
@@ -73,5 +73,5 @@ export 'utils/logger_utils.dart';
export 'utils/map_utils.dart';
export 'utils/network/network.dart';
export 'utils/route_utils.dart';
-export 'utils/separator_input_formatter.dart';
+export 'utils/text_input_formatter/separator_input_formatter.dart';
export 'utils/utils.dart';
diff --git a/packages/core/lib/presentation/common/app_color.dart b/packages/core/lib/presentation/common/app_color.dart
index 1a4e92c..6e61427 100644
--- a/packages/core/lib/presentation/common/app_color.dart
+++ b/packages/core/lib/presentation/common/app_color.dart
@@ -4,136 +4,319 @@ class AppColor {
AppColor._();
//region --- Blue Colors ---
- static const Color blueLight = Color(0xFFeaefff); // #eaefff rgb(234, 239, 255)
- static const Color blueLightHover = Color(0xFFe0e7ff); // #e0e7ff rgb(224, 231, 255)
- static const Color blueLightActive = Color(0xFFbecdff); // #becdff rgb(190, 205, 255)
- static const Color blueNormalOld = Color(0xFF2d5fff); // #2d5fff rgb(45, 95, 255)
+ static const Color blueLight = Color(
+ 0xFFeaefff,
+ ); // #eaefff rgb(234, 239, 255)
+ static const Color blueLightHover = Color(
+ 0xFFe0e7ff,
+ ); // #e0e7ff rgb(224, 231, 255)
+ static const Color blueLightActive = Color(
+ 0xFFbecdff,
+ ); // #becdff rgb(190, 205, 255)
+ static const Color blueNormalOld = Color(
+ 0xFF2d5fff,
+ ); // #2d5fff rgb(45, 95, 255)
static const Color blueNormal = blueDark;
- static const Color blueNormalHover = Color(0xFF2956e6); // #2956e6 rgb(41, 86, 230)
- static const Color blueNormalActive = Color(0xFF244ccc); // #244ccc rgb(36, 76, 204)
+ static const Color blueNormalHover = Color(
+ 0xFF2956e6,
+ ); // #2956e6 rgb(41, 86, 230)
+ static const Color blueNormalActive = Color(
+ 0xFF244ccc,
+ ); // #244ccc rgb(36, 76, 204)
static const Color blueDark = Color(0xFF2247bf); // #2247bf rgb(34, 71, 191)
- static const Color blueDarkHover = Color(0xFF1b3999); // #1b3999 rgb(27, 57, 153)
- static const Color blueDarkActive = Color(0xFF142b73); // #142b73 rgb(20, 43, 115)
+ static const Color blueDarkHover = Color(
+ 0xFF1b3999,
+ ); // #1b3999 rgb(27, 57, 153)
+ static const Color blueDarkActive = Color(
+ 0xFF142b73,
+ ); // #142b73 rgb(20, 43, 115)
static const Color blueDarker = Color(0xFF102159); // #102159 rgb(16, 33, 89)
- static const Color blueFlashing = Color(0xFF6F91FF); // #6F91FF rgb(111, 145, 255)
+ static const Color blueFlashing = Color(
+ 0xFF6F91FF,
+ ); // #6F91FF rgb(111, 145, 255)
//endregion
//region --- Green Colors ---
- static const Color greenLight = Color(0xFFe6faf5); // #e6faf5 rgb(230, 250, 245)
- static const Color greenLightHover = Color(0xFFd9f7f0); // #d9f7f0 rgb(217, 247, 240)
- static const Color greenLightActive = Color(0xFFb0efdf); // #b0efdf rgb(176, 239, 223)
- static const Color greenNormal = Color(0xFF00cc99); // #00cc99 rgb(0, 204, 153)
- static const Color greenNormalHover = Color(0xFF00b88a); // #00b88a rgb(0, 184, 138)
- static const Color greenNormalActive = Color(0xFF00a37a); // #00a37a rgb(0, 163, 122)
+ static const Color greenLight = Color(
+ 0xFFe6faf5,
+ ); // #e6faf5 rgb(230, 250, 245)
+ static const Color greenLightHover = Color(
+ 0xFFd9f7f0,
+ ); // #d9f7f0 rgb(217, 247, 240)
+ static const Color greenLightActive = Color(
+ 0xFFb0efdf,
+ ); // #b0efdf rgb(176, 239, 223)
+ static const Color greenNormal = Color(
+ 0xFF00cc99,
+ ); // #00cc99 rgb(0, 204, 153)
+ static const Color greenNormalHover = Color(
+ 0xFF00b88a,
+ ); // #00b88a rgb(0, 184, 138)
+ static const Color greenNormalActive = Color(
+ 0xFF00a37a,
+ ); // #00a37a rgb(0, 163, 122)
static const Color greenDark = Color(0xFF009973); // #009973 rgb(0, 153, 115)
- static const Color greenDarkHover = Color(0xFF007a5c); // #007a5c rgb(0, 122, 92)
- static const Color greenDarkActive = Color(0xFF005c45); // #005c45 rgb(0, 92, 69)
+ static const Color greenDarkHover = Color(
+ 0xFF007a5c,
+ ); // #007a5c rgb(0, 122, 92)
+ static const Color greenDarkActive = Color(
+ 0xFF005c45,
+ ); // #005c45 rgb(0, 92, 69)
static const Color greenDarker = Color(0xFF004736); // #004736 rgb(0, 71, 54)
//endregion
//region --- Black Colors ---
- static const Color blackLight = Color(0xFFe6e6e6); // #e6e6e6 rgb(230, 230, 230)
- static const Color blackLightHover = Color(0xFFd9d9d9); // #d9d9d9 rgb(217, 217, 217)
- static const Color blackLightActive = Color(0xFFb0b0b0); // #b0b0b0 rgb(176, 176, 176)
+ static const Color blackLight = Color(
+ 0xFFe6e6e6,
+ ); // #e6e6e6 rgb(230, 230, 230)
+ static const Color blackLightHover = Color(
+ 0xFFd9d9d9,
+ ); // #d9d9d9 rgb(217, 217, 217)
+ static const Color blackLightActive = Color(
+ 0xFFb0b0b0,
+ ); // #b0b0b0 rgb(176, 176, 176)
static const Color blackNormal = Color(0xFF000000); // #000000 rgb(0, 0, 0)
- static const Color blackNormalHover = Color(0xFF000000); // #000000 rgb(0, 0, 0)
- static const Color blackNormalActive = Color(0xFF000000); // #000000 rgb(0, 0, 0)
+ static const Color blackNormalHover = Color(
+ 0xFF000000,
+ ); // #000000 rgb(0, 0, 0)
+ static const Color blackNormalActive = Color(
+ 0xFF000000,
+ ); // #000000 rgb(0, 0, 0)
static const Color blackDark = Color(0xFF000000); // #000000 rgb(0, 0, 0)
static const Color blackDarkHover = Color(0xFF000000); // #000000 rgb(0, 0, 0)
- static const Color blackDarkActive = Color(0xFF000000); // #000000 rgb(0, 0, 0)
+ static const Color blackDarkActive = Color(
+ 0xFF000000,
+ ); // #000000 rgb(0, 0, 0)
static const Color blackDarker = Color(0xFF000000); // #000000 rgb(0, 0, 0)
//endregion
//region --- Grey Colors ---
- static const Color darkGreyLight = Color(0xFFeaeaea); // #eaeaea rgb(234, 234, 234)
- static const Color darkGreyLightHover = Color(0xFFdfdfdf); // #dfdfdf rgb(223, 223, 223)
- static const Color darkGreyLightActive = Color(0xFFbdbdbd); // #bdbdbd rgb(189, 189, 189)
- static const Color darkGreyNormal = Color(0xFF2a2a2a); // #2a2a2a rgb(42, 42, 42)
- static const Color darkGreyNormalHover = Color(0xFF262626); // #262626 rgb(38, 38, 38)
- static const Color darkGreyNormalActive = Color(0xFF222222); // #222222 rgb(34, 34, 34)
- static const Color darkGreyDark = Color(0xFF202020); // #202020 rgb(32, 32, 32)
- static const Color darkGreyDarkHover = Color(0xFF191919); // #191919 rgb(25, 25, 25)
- static const Color darkGreyDarkActive = Color(0xFF131313); // #131313 rgb(19, 19, 19)
- static const Color darkGreyDarker = Color(0xFF0f0f0f); // #0f0f0f rgb(15, 15, 15)
+ static const Color darkGreyLight = Color(
+ 0xFFeaeaea,
+ ); // #eaeaea rgb(234, 234, 234)
+ static const Color darkGreyLightHover = Color(
+ 0xFFdfdfdf,
+ ); // #dfdfdf rgb(223, 223, 223)
+ static const Color darkGreyLightActive = Color(
+ 0xFFbdbdbd,
+ ); // #bdbdbd rgb(189, 189, 189)
+ static const Color darkGreyNormal = Color(
+ 0xFF2a2a2a,
+ ); // #2a2a2a rgb(42, 42, 42)
+ static const Color darkGreyNormalHover = Color(
+ 0xFF262626,
+ ); // #262626 rgb(38, 38, 38)
+ static const Color darkGreyNormalActive = Color(
+ 0xFF222222,
+ ); // #222222 rgb(34, 34, 34)
+ static const Color darkGreyDark = Color(
+ 0xFF202020,
+ ); // #202020 rgb(32, 32, 32)
+ static const Color darkGreyDarkHover = Color(
+ 0xFF191919,
+ ); // #191919 rgb(25, 25, 25)
+ static const Color darkGreyDarkActive = Color(
+ 0xFF131313,
+ ); // #131313 rgb(19, 19, 19)
+ static const Color darkGreyDarker = Color(
+ 0xFF0f0f0f,
+ ); // #0f0f0f rgb(15, 15, 15)
//endregion
//region ---Medium Grey Colors ---
- static const Color mediumGreyLight = Color(0xFFf4f4f4); // #f4f4f4 rgb(244, 244, 244)
- static const Color mediumGreyLightHover = Color(0xFFeeeeee); // #eeeeee rgb(238, 238, 238)
- static const Color mediumGreyLightActive = Color(0xFFdcdcdc); // #dcdcdc rgb(220, 220, 220)
- static const Color mediumGreyNormal = Color(0xFF8f8f8f); // #8f8f8f rgb(143, 143, 143)
- static const Color mediumGreyNormalHover = Color(0xFF818181); // #818181 rgb(129, 129, 129)
- static const Color mediumGreyNormalActive = Color(0xFF727272); // #727272 rgb(114, 114, 114)
- static const Color mediumGreyDark = Color(0xFF6b6b6b); // #6b6b6b rgb(107, 107, 107)
- static const Color mediumGreyDarkHover = Color(0xFF565656); // #565656 rgb(86, 86, 86)
- static const Color mediumGreyDarkActive = Color(0xFF404040); // #404040 rgb(64, 64, 64)
- static const Color mediumGreyDarker = Color(0xFF323232); // #323232 rgb(50, 50, 50)
- static const Color customGrey = Color(0xFF808081); // #808081 rgb(128, 128, 129)
+ static const Color mediumGrey = Color(
+ 0xFF979797,
+ ); // #979797 rgb(151, 151, 151)
+ static const Color mediumGreyLight = Color(
+ 0xFFf4f4f4,
+ ); // #f4f4f4 rgb(244, 244, 244)
+ static const Color mediumGreyLightHover = Color(
+ 0xFFeeeeee,
+ ); // #eeeeee rgb(238, 238, 238)
+ static const Color mediumGreyLightActive = Color(
+ 0xFFdcdcdc,
+ ); // #dcdcdc rgb(220, 220, 220)
+ static const Color mediumGreyNormal = Color(
+ 0xFF8f8f8f,
+ ); // #8f8f8f rgb(143, 143, 143)
+ static const Color mediumGreyNormalHover = Color(
+ 0xFF818181,
+ ); // #818181 rgb(129, 129, 129)
+ static const Color mediumGreyNormalActive = Color(
+ 0xFF727272,
+ ); // #727272 rgb(114, 114, 114)
+ static const Color mediumGreyDark = Color(
+ 0xFF6b6b6b,
+ ); // #6b6b6b rgb(107, 107, 107)
+ static const Color mediumGreyDarkHover = Color(
+ 0xFF565656,
+ ); // #565656 rgb(86, 86, 86)
+ static const Color mediumGreyDarkActive = Color(
+ 0xFF404040,
+ ); // #404040 rgb(64, 64, 64)
+ static const Color mediumGreyDarker = Color(
+ 0xFF323232,
+ ); // #323232 rgb(50, 50, 50)
+ static const Color customGrey = Color(
+ 0xFF808081,
+ ); // #808081 rgb(128, 128, 129)
//endregion
//region ---Light Grey Colors ---
- static const Color lightGreyLight = Color(0xFFfdfdfd); // #fdfdfd rgb(253, 253, 253)
- static const Color lightGreyLightHover = Color(0xFFfcfcfc); // #fcfcfc rgb(252, 252, 252)
- static const Color lightGreyLightActive = Color(0xFFfafafa); // #fafafa rgb(250, 250, 250)
- static const Color lightGreyNormal = Color(0xFFeeeeee); // #eeeeee rgb(238, 238, 238)
- static const Color lightGreyNormalHover = Color(0xFFd6d6d6); // #d6d6d6 rgb(214, 214, 214)
- static const Color lightGreyNormalActive = Color(0xFFbebebe); // #bebebe rgb(190, 190, 190)
- static const Color lightGreyDark = Color(0xFFb3b3b3); // #b3b3b3 rgb(179, 179, 179)
- static const Color lightGreyDarkHover = Color(0xFF8f8f8f); // #8f8f8f rgb(143, 143, 143)
- static const Color lightGreyDarkActive = Color(0xFF6b6b6b); // #6b6b6b rgb(107, 107, 107)
- static const Color lightGreyDarker = Color(0xFF535353); // #535353 rgb(83, 83, 83)
+ static const Color lightGreyLight = Color(
+ 0xFFfdfdfd,
+ ); // #fdfdfd rgb(253, 253, 253)
+ static const Color lightGreyLightHover = Color(
+ 0xFFfcfcfc,
+ ); // #fcfcfc rgb(252, 252, 252)
+ static const Color lightGreyLightActive = Color(
+ 0xFFfafafa,
+ ); // #fafafa rgb(250, 250, 250)
+ static const Color lightGreyNormal = Color(
+ 0xFFeeeeee,
+ ); // #eeeeee rgb(238, 238, 238)
+ static const Color lightGreyNormalHover = Color(
+ 0xFFd6d6d6,
+ ); // #d6d6d6 rgb(214, 214, 214)
+ static const Color lightGreyNormalActive = Color(
+ 0xFFbebebe,
+ ); // #bebebe rgb(190, 190, 190)
+ static const Color lightGreyDark = Color(
+ 0xFFb3b3b3,
+ ); // #b3b3b3 rgb(179, 179, 179)
+ static const Color lightGreyDarkHover = Color(
+ 0xFF8f8f8f,
+ ); // #8f8f8f rgb(143, 143, 143)
+ static const Color lightGreyDarkActive = Color(
+ 0xFF6b6b6b,
+ ); // #6b6b6b rgb(107, 107, 107)
+ static const Color lightGreyDarker = Color(
+ 0xFF535353,
+ ); // #535353 rgb(83, 83, 83)
//endregion
//region ---WhiteGrey Colors ---
- static const Color whiteGreyLight = Color(0xFFfefefe); // #fefefe rgb(254, 254, 254)
- static const Color whiteGreyLightHover = Color(0xFFfefefe); // #fefefe rgb(254, 254, 254)
- static const Color whiteGreyLightActive = Color(0xFFfdfdfd); // #fdfdfd rgb(253, 253, 253)
- static const Color whiteGreyNormal = Color(0xFFf9f9f9); // #f9f9f9 rgb(249, 249, 249)
- static const Color whiteGreyNormalHover = Color(0xFFe0e0e0); // #e0e0e0 rgb(224, 224, 224)
- static const Color whiteGreyNormalActive = Color(0xFFc7c7c7); // #c7c7c7 rgb(199, 199, 199)
- static const Color whiteGreyDark = Color(0xFFbbbbbb); // #bbbbbb rgb(187, 187, 187)
- static const Color whiteGreyDarkHover = Color(0xFF959595); // #959595 rgb(149, 149, 149)
- static const Color whiteGreyDarkActive = Color(0xFF707070); // #707070 rgb(112, 112, 112)
- static const Color whiteGreyDarker = Color(0xFF575757); // #575757 rgb(87, 87, 87)
+ static const Color whiteGreyLight = Color(
+ 0xFFfefefe,
+ ); // #fefefe rgb(254, 254, 254)
+ static const Color whiteGreyLightHover = Color(
+ 0xFFfefefe,
+ ); // #fefefe rgb(254, 254, 254)
+ static const Color whiteGreyLightActive = Color(
+ 0xFFfdfdfd,
+ ); // #fdfdfd rgb(253, 253, 253)
+ static const Color whiteGreyNormal = Color(
+ 0xFFf9f9f9,
+ ); // #f9f9f9 rgb(249, 249, 249)
+ static const Color whiteGreyNormalHover = Color(
+ 0xFFe0e0e0,
+ ); // #e0e0e0 rgb(224, 224, 224)
+ static const Color whiteGreyNormalActive = Color(
+ 0xFFc7c7c7,
+ ); // #c7c7c7 rgb(199, 199, 199)
+ static const Color whiteGreyDark = Color(
+ 0xFFbbbbbb,
+ ); // #bbbbbb rgb(187, 187, 187)
+ static const Color whiteGreyDarkHover = Color(
+ 0xFF959595,
+ ); // #959595 rgb(149, 149, 149)
+ static const Color whiteGreyDarkActive = Color(
+ 0xFF707070,
+ ); // #707070 rgb(112, 112, 112)
+ static const Color whiteGreyDarker = Color(
+ 0xFF575757,
+ ); // #575757 rgb(87, 87, 87)
//endregion
//region ---White Colors ---
- static const Color whiteLight = Color(0xFFffffff); // #ffffff rgb(255, 255, 255)
- static const Color whiteLightHover = Color(0xFFffffff); // #ffffff rgb(255, 255, 255)
- static const Color whiteLightActive = Color(0xFFffffff); // #ffffff rgb(255, 255, 255)
- static const Color whiteNormal = Color(0xFFffffff); // #ffffff rgb(255, 255, 255)
- static const Color whiteNormalHover = Color(0xFFe6e6e6); // #e6e6e6 rgb(230, 230, 230)
- static const Color whiteNormalActive = Color(0xFFcccccc); // #cccccc rgb(204, 204, 204)
- static const Color whiteDark = Color(0xFFbfbfbf); // #bfbfbf rgb(191, 191, 191)
- static const Color whiteDarkHover = Color(0xFF999999); // #999999 rgb(153, 153, 153)
- static const Color whiteDarkActive = Color(0xFF737373); // #737373 rgb(115, 115, 115)
+ static const Color whiteLight = Color(
+ 0xFFffffff,
+ ); // #ffffff rgb(255, 255, 255)
+ static const Color whiteLightHover = Color(
+ 0xFFffffff,
+ ); // #ffffff rgb(255, 255, 255)
+ static const Color whiteLightActive = Color(
+ 0xFFffffff,
+ ); // #ffffff rgb(255, 255, 255)
+ static const Color whiteNormal = Color(
+ 0xFFffffff,
+ ); // #ffffff rgb(255, 255, 255)
+ static const Color whiteNormalHover = Color(
+ 0xFFe6e6e6,
+ ); // #e6e6e6 rgb(230, 230, 230)
+ static const Color whiteNormalActive = Color(
+ 0xFFcccccc,
+ ); // #cccccc rgb(204, 204, 204)
+ static const Color whiteDark = Color(
+ 0xFFbfbfbf,
+ ); // #bfbfbf rgb(191, 191, 191)
+ static const Color whiteDarkHover = Color(
+ 0xFF999999,
+ ); // #999999 rgb(153, 153, 153)
+ static const Color whiteDarkActive = Color(
+ 0xFF737373,
+ ); // #737373 rgb(115, 115, 115)
static const Color whiteDarker = Color(0xFF595959); // #595959 rgb(89, 89, 89)
//endregion
//region --- green1 Colors ---
- static const Color green1Light = Color(0xFFe6f6f4); // #e6f6f4 rgb(230, 246, 244)
- static const Color green1LightHover = Color(0xFFd9f2ef); // #d9f2ef rgb(217, 242, 239)
- static const Color green1LightActive = Color(0xFFb0e4dd); // #b0e4dd rgb(176, 228, 221)
- static const Color green1Normal = Color(0xFF00a991); // #00a991 rgb(0, 169, 145)
- static const Color green1NormalHover = Color(0xFF009883); // #009883 rgb(0, 152, 131)
- static const Color green1NormalActive = Color(0xFF008774); // #008774 rgb(0, 135, 116)
+ static const Color green1Light = Color(
+ 0xFFe6f6f4,
+ ); // #e6f6f4 rgb(230, 246, 244)
+ static const Color green1LightHover = Color(
+ 0xFFd9f2ef,
+ ); // #d9f2ef rgb(217, 242, 239)
+ static const Color green1LightActive = Color(
+ 0xFFb0e4dd,
+ ); // #b0e4dd rgb(176, 228, 221)
+ static const Color green1Normal = Color(
+ 0xFF00a991,
+ ); // #00a991 rgb(0, 169, 145)
+ static const Color green1NormalHover = Color(
+ 0xFF009883,
+ ); // #009883 rgb(0, 152, 131)
+ static const Color green1NormalActive = Color(
+ 0xFF008774,
+ ); // #008774 rgb(0, 135, 116)
static const Color green1Dark = Color(0xFF007f6d); // #007f6d rgb(0, 127, 109)
- static const Color green1DarkHover = Color(0xFF006557); // #006557 rgb(0, 101, 87)
- static const Color green1DarkActive = Color(0xFF004c41); // #004c41 rgb(0, 76, 65)
+ static const Color green1DarkHover = Color(
+ 0xFF006557,
+ ); // #006557 rgb(0, 101, 87)
+ static const Color green1DarkActive = Color(
+ 0xFF004c41,
+ ); // #004c41 rgb(0, 76, 65)
static const Color green1Darker = Color(0xFF003b33); // #003b33 rgb(0, 59, 51)
//endregion
//region --- Yellow Colors ---
- static const Color yellowLight = Color(0xFFfff9e6); // #fff9e6 rgb(255, 249, 230)
- static const Color yellowLightHover = Color(0xFFfff6da); // #fff6da rgb(255, 246, 218)
- static const Color yellowLightActive = Color(0xFFffecb2); // #ffecb2 rgb(255, 236, 178)
- static const Color yellowNormal = Color(0xFFffc107); // #ffc107 rgb(255, 193, 7)
- static const Color yellowNormal2 = Color(0xFFFF9800); // #FF9800 rgb(255, 152, 0)
- static const Color yellowNormalHover = Color(0xFFe6ae06); // #e6ae06 rgb(230, 174, 6)
- static const Color yellowNormalActive = Color(0xFFcc9a06); // #cc9a06 rgb(204, 154, 6)
+ static const Color yellowLight = Color(
+ 0xFFfff9e6,
+ ); // #fff9e6 rgb(255, 249, 230)
+ static const Color yellowLightHover = Color(
+ 0xFFfff6da,
+ ); // #fff6da rgb(255, 246, 218)
+ static const Color yellowLightActive = Color(
+ 0xFFffecb2,
+ ); // #ffecb2 rgb(255, 236, 178)
+ static const Color yellowNormal = Color(
+ 0xFFffc107,
+ ); // #ffc107 rgb(255, 193, 7)
+ static const Color yellowNormal2 = Color(
+ 0xFFFF9800,
+ ); // #FF9800 rgb(255, 152, 0)
+ static const Color yellowNormalHover = Color(
+ 0xFFe6ae06,
+ ); // #e6ae06 rgb(230, 174, 6)
+ static const Color yellowNormalActive = Color(
+ 0xFFcc9a06,
+ ); // #cc9a06 rgb(204, 154, 6)
static const Color yellowDark = Color(0xFFbf9105); // #bf9105 rgb(191, 145, 5)
- static const Color yellowDarkHover = Color(0xFF997404); // #997404 rgb(153, 116, 4)
- static const Color yellowDarkActive = Color(0xFF735703); // #735703 rgb(115, 87, 3)
+ static const Color yellowDarkHover = Color(
+ 0xFF997404,
+ ); // #997404 rgb(153, 116, 4)
+ static const Color yellowDarkActive = Color(
+ 0xFF735703,
+ ); // #735703 rgb(115, 87, 3)
static const Color yellowDarker = Color(0xFF594402); // #594402 rgb(89, 68, 2)
// #594402 rgb(89, 68, 2)
@@ -141,44 +324,81 @@ class AppColor {
//region --- red Colors ---
static const Color redLight = Color(0xFFfdeeee); // #fdeeee rgb(253, 238, 238)
- static const Color redLightHover = Color(0xFFfce6e6); // #fce6e6 rgb(252, 230, 230)
- static const Color redLightActive = Color(0xFFf9cbcb); // #f9cbcb rgb(249, 203, 203)
+ static const Color redLightHover = Color(
+ 0xFFfce6e6,
+ ); // #fce6e6 rgb(252, 230, 230)
+ static const Color redLightActive = Color(
+ 0xFFf9cbcb,
+ ); // #f9cbcb rgb(249, 203, 203)
static const Color redNormal = Color(0xFFeb5757); // #eb5757 rgb(235, 87, 87)
- static const Color redNormalHover = Color(0xFFd44e4e); // #d44e4e rgb(212, 78, 78)
- static const Color redNormalActive = Color(0xFFbc4646); // #bc4646 rgb(188, 70, 70)
+ static const Color redNormalHover = Color(
+ 0xFFd44e4e,
+ ); // #d44e4e rgb(212, 78, 78)
+ static const Color redNormalActive = Color(
+ 0xFFbc4646,
+ ); // #bc4646 rgb(188, 70, 70)
static const Color redDark = Color(0xFFb04141); // #b04141 rgb(176, 65, 65)
- static const Color redDarkHover = Color(0xFF8d3434); // #8d3434 rgb(141, 52, 52)
- static const Color redDarkActive = Color(0xFF6a2727); // #6a2727 rgb(106, 39, 39)
+ static const Color redDarkHover = Color(
+ 0xFF8d3434,
+ ); // #8d3434 rgb(141, 52, 52)
+ static const Color redDarkActive = Color(
+ 0xFF6a2727,
+ ); // #6a2727 rgb(106, 39, 39)
static const Color redDarker = Color(0xFF521e1e); // #521e1e rgb(82, 30, 30)
- static const Color redDarkerText = Color(0xFFD24E4E); // #D34E4E rgba(211, 78, 78, 1)
+ static const Color redDarkerText = Color(
+ 0xFFD24E4E,
+ ); // #D34E4E rgba(211, 78, 78, 1)
- static const Color redLight2 = Color(0xFFEDDCE0); // #EDDCE0 rgb(237, 220, 224)
- static const Color redLightActive2 = Color(0xFFE0BCC5); // #E0BCC5 rgb(224, 188, 197)
+ static const Color redLight2 = Color(
+ 0xFFEDDCE0,
+ ); // #EDDCE0 rgb(237, 220, 224)
+ static const Color redLightActive2 = Color(
+ 0xFFE0BCC5,
+ ); // #E0BCC5 rgb(224, 188, 197)
//endregion
//region --- Teal Colors ---
- static const Color tealLight = Color(0xFFe8f6f8); // #e8f6f8 rgb(232, 246, 248)
- static const Color tealLightHover = Color(0xFFdcf1f4); // #dcf1f4 rgb(220, 241, 244)
- static const Color tealLightActive = Color(0xFFb7e2e9); // #b7e2e9 rgb(183, 226, 233)
- static const Color tealNormal = Color(0xFF17a2b8); // #17a2b8 rgb(23, 162, 184)
- static const Color tealNormalHover = Color(0xFF1592a6); // #1592a6 rgb(21, 146, 166)
- static const Color tealNormalActive = Color(0xFF128293); // #128293 rgb(18, 130, 147)
+ static const Color tealLight = Color(
+ 0xFFe8f6f8,
+ ); // #e8f6f8 rgb(232, 246, 248)
+ static const Color tealLightHover = Color(
+ 0xFFdcf1f4,
+ ); // #dcf1f4 rgb(220, 241, 244)
+ static const Color tealLightActive = Color(
+ 0xFFb7e2e9,
+ ); // #b7e2e9 rgb(183, 226, 233)
+ static const Color tealNormal = Color(
+ 0xFF17a2b8,
+ ); // #17a2b8 rgb(23, 162, 184)
+ static const Color tealNormalHover = Color(
+ 0xFF1592a6,
+ ); // #1592a6 rgb(21, 146, 166)
+ static const Color tealNormalActive = Color(
+ 0xFF128293,
+ ); // #128293 rgb(18, 130, 147)
static const Color tealDark = Color(0xFF117a8a); // #117a8a rgb(17, 122, 138)
- static const Color tealDarkHover = Color(0xFF0e616e); // #0e616e rgb(14, 97, 110)
- static const Color tealDarkActive = Color(0xFF0a4953); // #0a4953 rgb(10, 73, 83)
+ static const Color tealDarkHover = Color(
+ 0xFF0e616e,
+ ); // #0e616e rgb(14, 97, 110)
+ static const Color tealDarkActive = Color(
+ 0xFF0a4953,
+ ); // #0a4953 rgb(10, 73, 83)
static const Color tealDarker = Color(0xFF083940); // #083940 rgb(8, 57, 64)
static const Color bgLight = Color(0xFFF5F5F5); // #083940 rgb(8, 57, 64)
static const Color bgIcon = Color(0xFF797979); // #797979
static const Color bgDark = Color(0xFF979797); // #083940 rgb(8, 57, 64)
static const Color textColor = Color(0xFF5B5B5B); // #083940 rgb(8, 57, 64)
+ static const Color textColor2 = Color(0xFF636363); // #636363 rgb(99, 99, 99)
static const Color labelTextColor = Color(0xFF808080);
static const Color textColorLight = Color(0xFFB2B2B2);
static const Color iconColor = Color(0xFF444444); // #444444 rgb(68, 68, 68)
- static const Color borderColor = Color(0xFFC7CFCD); // #C7CFCD rgb(199, 207, 205)`
+ static const Color borderColor = Color(
+ 0xFFC7CFCD,
+ ); // #C7CFCD rgb(199, 207, 205)`
static const Color unselectTextColor = Color(0xFF888888); //
static const Color accent1 = Color(0xffffe5ce); //
-
+ static const Color bgLight2 = Color(0xFFEFEFEF); // #EFEFEF rgb(239, 239, 239)
//endregion
//region --- category Colors ---
diff --git a/packages/core/lib/presentation/common/assets.gen.dart b/packages/core/lib/presentation/common/assets.gen.dart
index cb5f975..5a43f44 100644
--- a/packages/core/lib/presentation/common/assets.gen.dart
+++ b/packages/core/lib/presentation/common/assets.gen.dart
@@ -187,6 +187,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/filter_outline.svg
SvgGenImage get filterOutline => const SvgGenImage('assets/icons/filter_outline.svg');
+ /// File path: assets/icons/gallery_add.svg
+ SvgGenImage get galleryAdd => const SvgGenImage('assets/icons/gallery_add.svg');
+
/// File path: assets/icons/gps.svg
SvgGenImage get gps => const SvgGenImage('assets/icons/gps.svg');
@@ -418,6 +421,7 @@ class $AssetsIconsGen {
farms,
filter,
filterOutline,
+ galleryAdd,
gps,
hashtag,
home,
@@ -674,6 +678,9 @@ class $AssetsVecGen {
/// File path: assets/vec/filter_outline.svg.vec
SvgGenImage get filterOutlineSvg => const SvgGenImage.vec('assets/vec/filter_outline.svg.vec');
+ /// File path: assets/vec/gallery_add.svg.vec
+ SvgGenImage get galleryAddSvg => const SvgGenImage.vec('assets/vec/gallery_add.svg.vec');
+
/// File path: assets/vec/gps.svg.vec
SvgGenImage get gpsSvg => const SvgGenImage.vec('assets/vec/gps.svg.vec');
@@ -905,6 +912,7 @@ class $AssetsVecGen {
farmsSvg,
filterSvg,
filterOutlineSvg,
+ galleryAddSvg,
gpsSvg,
hashtagSvg,
homeSvg,
diff --git a/packages/core/lib/presentation/widget/bottom_navigation/wave_bottom_navigation.dart b/packages/core/lib/presentation/widget/bottom_navigation/wave_bottom_navigation.dart
index 8c92900..0b9a07c 100644
--- a/packages/core/lib/presentation/widget/bottom_navigation/wave_bottom_navigation.dart
+++ b/packages/core/lib/presentation/widget/bottom_navigation/wave_bottom_navigation.dart
@@ -95,8 +95,8 @@ class _WaveBottomNavigationState extends State {
animation: _controller,
builder: (context, child) {
double value = 0.0;
- final scale = _calculateScale(_controller.page ?? _controller.initialPage.toDouble() ?? 0.0, index);
- value = index - (_controller.page ?? _controller.initialPage.toDouble() ?? 0.0);
+ final scale = _calculateScale(_controller.page ?? _controller.initialPage.toDouble(), index);
+ value = index - (_controller.page ?? _controller.initialPage.toDouble());
value = (value).clamp(-1, 1);
double offset = value * 30;
if (value.abs() < 0.2 || value.abs() > 0.2) {
diff --git a/packages/core/lib/presentation/widget/buttons/fab.dart b/packages/core/lib/presentation/widget/buttons/fab.dart
index a9dda88..2a739f7 100644
--- a/packages/core/lib/presentation/widget/buttons/fab.dart
+++ b/packages/core/lib/presentation/widget/buttons/fab.dart
@@ -220,7 +220,7 @@ class _RFabState extends State {
shape: WidgetStatePropertyAll(
CircleBorder(side: BorderSide(width: 1, color: Colors.transparent)),
),
- fixedSize: WidgetStatePropertyAll(Size(widget.radius ?? 56, widget.radius ?? 56)),
+ fixedSize: WidgetStatePropertyAll(Size(widget.radius, widget.radius)),
padding: WidgetStatePropertyAll(EdgeInsets.zero),
),
child: widget.isLoading
diff --git a/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart b/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart
index aa74dbc..b8f26bb 100644
--- a/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart
+++ b/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart
@@ -1,11 +1,6 @@
-import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
-
-import 'package:rasadyar_core/presentation/common/app_color.dart';
import 'package:rasadyar_core/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet_controller.dart';
-import 'package:flutter/material.dart';
-import 'package:get/get.dart';
class DraggableBottomSheet extends StatelessWidget {
final DraggableBottomSheetController controller;
diff --git a/packages/core/lib/presentation/widget/list_view/r_list_view.dart b/packages/core/lib/presentation/widget/list_view/r_list_view.dart
index b5a8298..f7ea3b9 100644
--- a/packages/core/lib/presentation/widget/list_view/r_list_view.dart
+++ b/packages/core/lib/presentation/widget/list_view/r_list_view.dart
@@ -180,39 +180,4 @@ class RListView extends StatelessWidget {
return onRefresh != null ? RefreshIndicator(onRefresh: onRefresh!, child: list) : list;
}
}
-
- RListView._({
- required this.type,
- required this.scrollDirection,
- required this.reverse,
- required this.controller,
- required this.primary,
- required this.physics,
- required this.scrollBehavior,
- required this.shrinkWrap,
- required this.center,
- required this.cacheExtent,
- required this.semanticChildCount,
- required this.itemCount,
- required this.dragStartBehavior,
- required this.keyboardDismissBehavior,
- required this.restorationId,
- required this.clipBehavior,
- required this.hitTestBehavior,
- required this.prototypeItem,
- required this.padding,
- required this.itemExtent,
- required this.itemExtentBuilder,
- required this.findChildIndexCallback,
- required this.itemBuilder,
- required this.separatorBuilder,
- required this.addAutomaticKeepAlives,
- required this.addRepaintBoundaries,
- required this.addSemanticIndexes,
- required this.loadingWidget,
- required this.emptyWidget,
- required this.errorWidget,
- required this.resource,
- required this.onRefresh,
- });
}
diff --git a/packages/core/lib/presentation/widget/stepper/r_stepper.dart b/packages/core/lib/presentation/widget/stepper/r_stepper.dart
new file mode 100644
index 0000000..a7ae4a7
--- /dev/null
+++ b/packages/core/lib/presentation/widget/stepper/r_stepper.dart
@@ -0,0 +1,55 @@
+import 'package:flutter/material.dart';
+import 'package:rasadyar_core/core.dart';
+
+class RStepper extends StatelessWidget {
+ const RStepper({
+ super.key,
+ required this.activeStepColor,
+ this.deactiveStepColor,
+ this.dividerColor,
+ required this.stepsCount,
+ required this.activeStep,
+ });
+
+ final Color activeStepColor;
+ final Color? deactiveStepColor;
+ final Color? dividerColor;
+ final int stepsCount;
+ final int activeStep;
+
+ @override
+ Widget build(BuildContext context) {
+
+
+ return SizedBox(
+ height: 24.h,
+ width: Get.width,
+ child: Row(
+ children: List.generate(stepsCount, (index) {
+ final isFirst = index == 0;
+ return SizedBox(
+ width: (Get.width) / (stepsCount - 1),
+ child: Container(
+ alignment: Alignment.center,
+ decoration: BoxDecoration(
+ color: index == activeStep
+ ? activeStepColor
+ : deactiveStepColor ?? AppColor.whiteNormalActive,
+ shape: BoxShape.circle,
+ ),
+ width: 24.w,
+ height: 24.h,
+ child: Center(
+ child: Text(
+ (index + 1).toString(),
+ style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
+ textAlign: TextAlign.center,
+ ),
+ ),
+ ),
+ );
+ }),
+ ),
+ );
+ }
+}
diff --git a/packages/core/lib/presentation/widget/widget.dart b/packages/core/lib/presentation/widget/widget.dart
index fd91299..e2d6bc3 100644
--- a/packages/core/lib/presentation/widget/widget.dart
+++ b/packages/core/lib/presentation/widget/widget.dart
@@ -45,6 +45,7 @@ export 'overlay_dropdown_widget/resource_overlay_dropdown.dart';
export 'pagination/pagination_from_until.dart';
export 'pagination/show_more.dart';
export 'slider/slider.dart';
+export 'stepper/r_stepper.dart';
export 'tabs/new_tab.dart';
export 'tabs/r_segment.dart';
export 'tabs/tab.dart';
diff --git a/packages/core/lib/utils/apk_updater.dart b/packages/core/lib/utils/apk_updater.dart
index 23776db..a741e8f 100644
--- a/packages/core/lib/utils/apk_updater.dart
+++ b/packages/core/lib/utils/apk_updater.dart
@@ -4,6 +4,11 @@ import 'package:dio/dio.dart';
import 'package:flutter/services.dart';
import 'package:path_provider/path_provider.dart';
+/// A class that allows you to download and install an APK file.
+/// Example:
+/// ```dart
+/// await ApkUpdater.downloadAndInstall();
+/// ```
class ApkUpdater {
static const _channel = MethodChannel('apk_installer');
@@ -13,7 +18,6 @@ class ApkUpdater {
final dir = await getExternalStorageDirectory();
final path = "${dir!.path}/update.apk";
- final file = File(path);
await dio.download(apkUrl, path);
diff --git a/packages/core/lib/utils/camera_utils.dart b/packages/core/lib/utils/camera_utils.dart
index 90f471f..b547825 100644
--- a/packages/core/lib/utils/camera_utils.dart
+++ b/packages/core/lib/utils/camera_utils.dart
@@ -1,5 +1,10 @@
import 'package:rasadyar_core/core.dart';
+/// Pick a camera image.
+/// Example:
+/// ```dart
+/// await pickCameraImage();
+/// ```
Future pickCameraImage({
double? maxWidth,
double? maxHeight,
@@ -21,6 +26,11 @@ Future pickCameraImage({
return tmpImage;
}
+/// Pick a gallery image.
+/// Example:
+/// ```dart
+/// await pickGalleryImage();
+/// ```
Future pickGalleryImage({
double? maxWidth,
double? maxHeight,
diff --git a/packages/core/lib/utils/extension/date_time_utils.dart b/packages/core/lib/utils/extension/date_time_utils.dart
index caa653a..2b251e7 100644
--- a/packages/core/lib/utils/extension/date_time_utils.dart
+++ b/packages/core/lib/utils/extension/date_time_utils.dart
@@ -2,12 +2,16 @@ import 'package:intl/intl.dart';
import 'package:persian_datetime_picker/persian_datetime_picker.dart';
extension XDateTime2 on DateTime {
- get formattedJalaliDate {
+ /// Convert the date time to a Jalali date.
+ /// Example: DateTime(2025, 1, 1) -> '1404/01/01'
+ String get formattedJalaliDate {
final jalaliDate = Jalali.fromDateTime(this);
return "${jalaliDate.year}/${jalaliDate.month.toString().padLeft(2, '0')}/${jalaliDate.day.toString().padLeft(2, '0')}";
}
- get formattedYHMS {
+ /// Convert the date time to a YHMS date.
+ /// Example: DateTime(2025, 1, 1) -> '2025-01-01 00:00:00'
+ String get formattedYHMS {
return DateFormat('yyyy-MM-dd HH:mm:ss').format(this);
}
}
diff --git a/packages/core/lib/utils/extension/num_utils.dart b/packages/core/lib/utils/extension/num_utils.dart
index b7293b9..3efc6e5 100644
--- a/packages/core/lib/utils/extension/num_utils.dart
+++ b/packages/core/lib/utils/extension/num_utils.dart
@@ -1,14 +1,17 @@
import 'package:intl/intl.dart';
extension XNumExtension on num? {
+ /// Convert the number to a string with comma separator.
+ /// Example: 1000 -> '۱,۰۰۰'
String get separatedByCommaFa {
final formatter = NumberFormat('#,###', 'fa_IR');
- return this == null ? '':formatter.format(this);
+ return this == null ? '' : formatter.format(this);
}
-
+ /// Convert the number to a string with comma separator.
+ /// Example: 1000 -> '1,000'
String get separatedByComma {
final formatter = NumberFormat('#,###', 'en_US');
- return this == null ? '':formatter.format(this);
+ return this == null ? '' : formatter.format(this);
}
}
diff --git a/packages/core/lib/utils/extension/string_utils.dart b/packages/core/lib/utils/extension/string_utils.dart
index 2663144..7823060 100644
--- a/packages/core/lib/utils/extension/string_utils.dart
+++ b/packages/core/lib/utils/extension/string_utils.dart
@@ -2,49 +2,92 @@ import 'package:intl/intl.dart';
import 'package:persian_datetime_picker/persian_datetime_picker.dart';
extension XString on String? {
+ /// Convert the string to a number with comma separator.
+ /// Example: '1000' -> '1,000'
+ /// Example: '1000000' -> '1,000,000'
+ /// Example: '1000000000' -> '1,000,000,000'
String get separatedByComma {
final formatter = NumberFormat('#,###');
final number = num.tryParse(this ?? '');
return number != null ? formatter.format(number) : (this ?? '');
}
+ /// Clear the comma from the string.
+ /// Example: '1,000' -> '1000'
+ /// Example: '1,000,000' -> '1000000'
+ /// Example: '1,000,000,000' -> '1000000000'
String get clearComma {
return (this ?? '').replaceAll(RegExp(r'\D'), '');
}
+ /// Add the count extension to the string.
+ /// Example: '1' -> '1 قطعه'
+ /// Example: '10' -> '10 قطعه'
+ /// Example: '100' -> '100 قطعه'
String get addCountEXT {
return '$this قطعه';
}
+ /// Add the day extension to the string.
+ /// Example: '1' -> '1 روزه'
+ /// Example: '10' -> '10 روزه'
+ /// Example: '100' -> '100 روزه'
String get addDayEXT {
return '$thisروزه';
}
+ /// Add the kg extension to the string.
+ /// Example: '1' -> '1 کیلوگرم'
+ /// Example: '10' -> '10 کیلوگرم'
+ /// Example: '100' -> '100 کیلوگرم'
String get addKgFa {
return '${this ?? 0}کیلوگرم ';
}
+ /// Add the kg extension to the string.
+ /// Example: '1' -> '1 کیلوگرم'
+ /// Example: '10' -> '10 کیلوگرم'
+ /// Example: '100' -> '100 کیلوگرم'
String get addKgFaWithParentheses {
return '${this ?? 0} (کیلوگرم)';
}
+ /// Add the kg extension to the string.
+ /// Example: '1' -> '1 KG'
+ /// Example: '10' -> '10 KG'
+ /// Example: '100' -> '100 KG'
String get addKg {
return '$this KG';
}
+ /// Add the real extension to the string.
+ /// Example: '1' -> '1 ریال'
+ /// Example: '10' -> '10 ریال'
+ /// Example: '100' -> '100 ریال'
String get addReal {
return ' $this ریال';
}
+ /// Convert the string to a DateTime.
+ /// Example: '2025-01-01' -> DateTime(2025, 1, 1)
+ /// Example: '2025-01-01 12:00:00' -> DateTime(2025, 1, 1, 12, 0, 0)
DateTime get toDateTime => DateTime.parse(this ?? '');
+ /// Convert the string to a Jalali date.
+ /// Example: '2025/01/01' -> '1404-01-01'
+ /// Example: '2025-01-01' -> '1404-01-01'
+ /// Example: '2025-01-01 12:00:00' -> '1404-01-01 12:00:00'
String get formattedJalaliDate {
- String tmp = (this != null && this!.contains("/")) ? this!.replaceAll("/", "-") : (this ?? "");
+ String tmp = (this != null && this!.contains("/"))
+ ? this!.replaceAll("/", "-")
+ : (this ?? "");
final dateTime = DateTime.parse(tmp);
final jalaliDate = Jalali.fromDateTime(dateTime);
return "${jalaliDate.year}/${jalaliDate.month.toString().padLeft(2, '0')}/${jalaliDate.day.toString().padLeft(2, '0')}";
}
+ /// Convert the string to a Jalali date and time.
+ /// Example: '2025-01-01 12:00:00' -> Jalali(year: 1404, month: 1, day: 1, hour: 12, minute: 0, second: 0)
String get formattedJalaliDateYHMS {
final dateTime = DateTime.parse(this ?? '');
final jalaliDate = Jalali.fromDateTime(dateTime);
@@ -55,15 +98,35 @@ extension XString on String? {
return DateFormat('yyyy-MM-dd HH:mm:ss').format(toDateTime);
}
+ /// Convert the string to a Jalali date.
+ /// Example: '2025-01-01' -> Jalali(year: 1404, month: 1, day: 1)
+ /// Example: '2025-01-01 12:00:00' -> Jalali(year: 1404, month: 1, day: 1, hour: 12, minute: 0, second: 0)
Jalali get toJalali {
final dateTime = DateTime.parse(this ?? '');
return Jalali.fromDateTime(dateTime);
}
+ /// Get the version number from the string.
+ /// Example: '1.0.0' -> 100
+ /// Example: '1.0.0.0' -> 1000
int get versionNumber => int.parse(this?.replaceAll(".", '') ?? '0');
+ /// Check if the string is a valid version number.
+ /// Example: '۹' -> true
+ /// Example: '۱۲۳۴۵۶۷۸۹۰' -> true
+ /// Example: '1234567890' -> false
bool get isDifferentDigits {
final regex = RegExp(r'[۰-۹٠-٩]');
return regex.hasMatch(this ?? '');
}
+
+ /// Normalize the string to remove extra spaces and convert to lowercase.
+ /// Example: " Hello World " -> "hello world"
+ /// Example: "Hello World" -> "hello world"
+ /// Example: "hello world" -> "hello world"
+ /// Example: "HELLO WORLD" -> "hello world"
+ /// Example: "Hello World" -> "hello world"
+ /// Example: "Hello World" -> "hello world"
+ String? get normalize =>
+ this?.toLowerCase().trim().replaceAll(RegExp(r'\s+'), ' ');
}
diff --git a/packages/core/lib/utils/file_utils.dart b/packages/core/lib/utils/file_utils.dart
index 4500eea..e158769 100644
--- a/packages/core/lib/utils/file_utils.dart
+++ b/packages/core/lib/utils/file_utils.dart
@@ -2,9 +2,16 @@ import 'dart:io';
import 'logger_utils.dart';
+/// Get the file size in KB.
+/// Example:
+/// ```dart
+/// getFileSizeInKB('path/to/file.jpg');
+/// ```
void getFileSizeInKB(String filePath, {String? tag}) {
final file = File(filePath);
final bytes = file.lengthSync();
var size = (bytes / 1024).ceil();
- iLog('${tag ?? 'Picked'} image Size: $size , fileName : ${file.path.split('/').last}');
-}
\ No newline at end of file
+ iLog(
+ '${tag ?? 'Picked'} image Size: $size , fileName : ${file.path.split('/').last}',
+ );
+}
diff --git a/packages/core/lib/utils/map_utils.dart b/packages/core/lib/utils/map_utils.dart
index 0f65d79..2bdedc9 100644
--- a/packages/core/lib/utils/map_utils.dart
+++ b/packages/core/lib/utils/map_utils.dart
@@ -1,5 +1,6 @@
import 'package:rasadyar_core/presentation/utils/data_time_utils.dart';
+/// Build a query params map.
Map buildQueryParams({
Map? queryParams,
String? search,
@@ -49,6 +50,7 @@ Map buildQueryParams({
return params;
}
+/// Build a raw query params map.
Map? buildRawQueryParams({
Map? queryParams,
String? search,
@@ -101,20 +103,21 @@ Map? buildRawQueryParams({
}
if (centerLat != null) {
- params['center_lat'] = centerLat ?? '';
+ params['center_lat'] = centerLat;
}
if (centerLng != null) {
- params['center_lon'] = centerLng ?? '';
+ params['center_lon'] = centerLng;
}
if (radius != null) {
- params['radius'] = radius ?? '';
+ params['radius'] = radius;
}
return params.keys.isEmpty ? null : params;
}
+/// A map of English digits to Persian digits.
const Map digitMap = {
'۰': '0',
'۱': '1',
diff --git a/packages/core/lib/utils/number_utils.dart b/packages/core/lib/utils/number_utils.dart
index c44012f..fadbc99 100644
--- a/packages/core/lib/utils/number_utils.dart
+++ b/packages/core/lib/utils/number_utils.dart
@@ -2,12 +2,12 @@ import 'dart:math';
final _random = Random();
-
+/// Generate a random integer between min and max.
int randomInt(int min, int max) {
return min + _random.nextInt(max - min + 1);
}
-
+/// Generate a random double between min and max.
double randomDouble(double min, double max) {
return min + _random.nextDouble() * (max - min);
}
\ No newline at end of file
diff --git a/packages/core/lib/utils/parser.dart b/packages/core/lib/utils/parser.dart
index 319be03..ac63629 100644
--- a/packages/core/lib/utils/parser.dart
+++ b/packages/core/lib/utils/parser.dart
@@ -1,5 +1,10 @@
import 'package:flutter/foundation.dart';
+/// Parse a list in isolate.
+/// Example:
+/// ```dart
+/// await parseListInIsolate(list, fromJson);
+/// ```
List _parserList(Map args) {
final list = args['list'] as List;
final T Function(Map) fromJson =
@@ -8,6 +13,11 @@ List _parserList(Map args) {
return list.map((e) => fromJson(e as Map)).toList();
}
+/// Parse a list in isolate.
+/// Example:
+/// ```dart
+/// await parseListInIsolate(list, fromJson);
+/// ```
Future> parseListInIsolate(
List list,
T Function(Map) fromJson,
diff --git a/packages/core/lib/utils/text_input_formatter/first_digit_decimal_formatter.dart b/packages/core/lib/utils/text_input_formatter/first_digit_decimal_formatter.dart
index 0816a8f..de65934 100644
--- a/packages/core/lib/utils/text_input_formatter/first_digit_decimal_formatter.dart
+++ b/packages/core/lib/utils/text_input_formatter/first_digit_decimal_formatter.dart
@@ -1,8 +1,14 @@
import 'package:flutter/services.dart';
+/// A text input formatter that allows only one decimal point and one digit before the decimal point.
+/// Example: '1234567890' -> '1234567890'
+/// Example: '1234567890.1234567890' -> '1234567890.1'
class FirstDigitDecimalFormatter extends TextInputFormatter {
@override
- TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
+ TextEditingValue formatEditUpdate(
+ TextEditingValue oldValue,
+ TextEditingValue newValue,
+ ) {
String digit = newValue.text.replaceAll(RegExp(r'[^0-9]'), "");
late String res;
diff --git a/packages/core/lib/utils/text_input_formatter/persian_formatter.dart b/packages/core/lib/utils/text_input_formatter/persian_formatter.dart
index 14eca87..7846291 100644
--- a/packages/core/lib/utils/text_input_formatter/persian_formatter.dart
+++ b/packages/core/lib/utils/text_input_formatter/persian_formatter.dart
@@ -2,6 +2,11 @@ import 'package:flutter/services.dart';
import '../map_utils.dart';
+/// A text input formatter that converts English digits to Persian digits.
+/// Example: '1234567890' -> '۱۲۳۴۵۶۷۸۹۰'
+/// Example: '۱۲۳۴۵۶۷۸۹۰' -> '۱۲۳۴۵۶۷۸۹۰'
+/// Example: '1234567890.1234567890' -> '۱۲۳۴۵۶۷۸۹۰.۱۲۳۴۵۶۷۸۹۰'
+/// Example: '۱۲۳۴۵۶۷۸۹۰.۱۲۳۴۵۶۷۸۹۰' -> '۱۲۳۴۵۶۷۸۹۰.۱۲۳۴۵۶۷۸۹۰'
class PersianFormatter extends TextInputFormatter {
String _convert(String input) {
final buffer = StringBuffer();
diff --git a/packages/core/lib/utils/separator_input_formatter.dart b/packages/core/lib/utils/text_input_formatter/separator_input_formatter.dart
similarity index 86%
rename from packages/core/lib/utils/separator_input_formatter.dart
rename to packages/core/lib/utils/text_input_formatter/separator_input_formatter.dart
index cc87a5f..6a86cc3 100644
--- a/packages/core/lib/utils/separator_input_formatter.dart
+++ b/packages/core/lib/utils/text_input_formatter/separator_input_formatter.dart
@@ -1,6 +1,12 @@
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
+
+/// A text input formatter that formats numbers with a separator.
+/// Example:
+/// ```dart
+/// SeparatorInputFormatter()
+/// ```
class SeparatorInputFormatter extends TextInputFormatter {
final NumberFormat _formatter;
diff --git a/packages/core/lib/utils/utils.dart b/packages/core/lib/utils/utils.dart
index 11d538e..6f7bb07 100644
--- a/packages/core/lib/utils/utils.dart
+++ b/packages/core/lib/utils/utils.dart
@@ -13,6 +13,6 @@ export 'network/network.dart';
export 'number_utils.dart';
export 'parser.dart';
export 'route_utils.dart';
-export 'separator_input_formatter.dart';
+export 'text_input_formatter/separator_input_formatter.dart';
export 'text_input_formatter/first_digit_decimal_formatter.dart';
export 'text_input_formatter/persian_formatter.dart';
diff --git a/packages/core/pubspec.lock b/packages/core/pubspec.lock
index b6df01c..a15e57e 100644
--- a/packages/core/pubspec.lock
+++ b/packages/core/pubspec.lock
@@ -5,18 +5,18 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- sha256: dd3d2ad434b9510001d089e8de7556d50c834481b9abc2891a0184a8493a19dc
+ sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d
url: "https://pub.dev"
source: hosted
- version: "89.0.0"
+ version: "91.0.0"
analyzer:
dependency: "direct overridden"
description:
name: analyzer
- sha256: c22b6e7726d1f9e5db58c7251606076a71ca0dbcf76116675edfadbec0c9e875
+ sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08
url: "https://pub.dev"
source: hosted
- version: "8.2.0"
+ version: "8.4.1"
android_intent_plus:
dependency: "direct main"
description:
@@ -77,10 +77,10 @@ packages:
dependency: transitive
description:
name: build
- sha256: "5b887c55a0f734b433b3b2d89f9cd1f99eb636b17e268a5b4259258bc916504b"
+ sha256: dfb67ccc9a78c642193e0c2d94cb9e48c2c818b3178a86097d644acdcde6a8d9
url: "https://pub.dev"
source: hosted
- version: "4.0.0"
+ version: "4.0.2"
build_config:
dependency: transitive
description:
@@ -93,18 +93,18 @@ packages:
dependency: transitive
description:
name: build_daemon
- sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa"
+ sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957
url: "https://pub.dev"
source: hosted
- version: "4.0.4"
+ version: "4.1.1"
build_runner:
dependency: "direct dev"
description:
name: build_runner
- sha256: "804c47c936df75e1911c19a4fb8c46fa8ff2b3099b9f2b2aa4726af3774f734b"
+ sha256: "7b5b569f3df370590a85029148d6fc66c7d0201fc6f1847c07dd85d365ae9fcd"
url: "https://pub.dev"
source: hosted
- version: "2.8.0"
+ version: "2.10.3"
built_collection:
dependency: transitive
description:
@@ -237,18 +237,18 @@ packages:
dependency: transitive
description:
name: cross_file
- sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
+ sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239"
url: "https://pub.dev"
source: hosted
- version: "0.3.4+2"
+ version: "0.3.5"
crypto:
dependency: transitive
description:
name: crypto
- sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
- version: "3.0.6"
+ version: "3.0.7"
cupertino_icons:
dependency: "direct main"
description:
@@ -277,10 +277,10 @@ packages:
dependency: transitive
description:
name: dart_style
- sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697
+ sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "3.1.3"
dartx:
dependency: "direct main"
description:
@@ -309,10 +309,10 @@ packages:
dependency: "direct main"
description:
name: device_info_plus
- sha256: "49413c8ca514dea7633e8def233b25efdf83ec8522955cc2c0e3ad802927e7c6"
+ sha256: dd0e8e02186b2196c7848c9d394a5fd6e5b57a43a546082c5820b1ec72317e33
url: "https://pub.dev"
source: hosted
- version: "12.1.0"
+ version: "12.2.0"
device_info_plus_platform_interface:
dependency: transitive
description:
@@ -325,10 +325,10 @@ packages:
dependency: "direct main"
description:
name: device_preview_plus
- sha256: "2ebe9cf25ed46875c9c1b745d0438df9e4c49f7bcf9ea466c88efbcffcc73ab7"
+ sha256: eb3e67929c9f04759e0d3708ad91d1018235549bcf8699f8a94909684c6555ae
url: "https://pub.dev"
source: hosted
- version: "2.5.1"
+ version: "2.5.5"
dio:
dependency: "direct main"
description:
@@ -381,34 +381,34 @@ packages:
dependency: transitive
description:
name: file_selector_linux
- sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
+ sha256: "80a877f5ec570c4fb3b40720a70b6f31e8bb1315a464b4d3e92fe82754d4b21a"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+2"
+ version: "0.9.3+3"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
- sha256: "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c"
+ sha256: "44f24d102e368370951b98ffe86c7325b38349e634578312976607d28cc6d747"
url: "https://pub.dev"
source: hosted
- version: "0.9.4+4"
+ version: "0.9.4+6"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
- sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
+ sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85"
url: "https://pub.dev"
source: hosted
- version: "2.6.2"
+ version: "2.7.0"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
- sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
+ sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+4"
+ version: "0.9.3+5"
fixnum:
dependency: transitive
description:
@@ -511,10 +511,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31
+ sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687"
url: "https://pub.dev"
source: hosted
- version: "2.0.30"
+ version: "2.0.32"
flutter_rating_bar:
dependency: "direct main"
description:
@@ -591,10 +591,10 @@ packages:
dependency: "direct main"
description:
name: flutter_svg
- sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678
+ sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355"
url: "https://pub.dev"
source: hosted
- version: "2.2.1"
+ version: "2.2.2"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -689,10 +689,10 @@ packages:
dependency: "direct main"
description:
name: get_it
- sha256: a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b
+ sha256: ae78de7c3f2304b8d81f2bb6e320833e5e81de942188542328f074978cc0efa9
url: "https://pub.dev"
source: hosted
- version: "8.2.0"
+ version: "8.3.0"
get_test:
dependency: "direct dev"
description:
@@ -729,34 +729,34 @@ packages:
dependency: "direct main"
description:
name: hive_ce
- sha256: d678b1b2e315c18cd7ed8fd79eda25d70a1f3852d6988bfe5461cffe260c60aa
+ sha256: "81d39a03c4c0ba5938260a8c3547d2e71af59defecea21793d57fc3551f0d230"
url: "https://pub.dev"
source: hosted
- version: "2.14.0"
+ version: "2.15.1"
hive_ce_flutter:
dependency: "direct main"
description:
name: hive_ce_flutter
- sha256: f5bd57fda84402bca7557fedb8c629c96c8ea10fab4a542968d7b60864ca02cc
+ sha256: "26d656c9e8974f0732f1d09020e2d7b08ba841b8961a02dbfb6caf01474b0e9a"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.3.3"
hive_ce_generator:
dependency: "direct dev"
description:
name: hive_ce_generator
- sha256: "8c677690c8ead43778ddf7ed8ff17e852dd5d22d082c75182b072842c0dc5055"
+ sha256: b19ac263cb37529513508ba47352c41e6de72ba879952898d9c18c9c8a955921
url: "https://pub.dev"
source: hosted
- version: "1.9.5"
+ version: "1.10.0"
http:
dependency: transitive
description:
name: http
- sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
+ sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
- version: "1.5.0"
+ version: "1.6.0"
http_multi_server:
dependency: transitive
description:
@@ -809,18 +809,18 @@ packages:
dependency: "direct main"
description:
name: image_picker
- sha256: "736eb56a911cf24d1859315ad09ddec0b66104bc41a7f8c5b96b4e2620cf5041"
+ sha256: "784210112be18ea55f69d7076e2c656a4e24949fa9e76429fe53af0c0f4fa320"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
- sha256: "8dfe08ea7fcf7467dbaf6889e72eebd5e0d6711caae201fdac780eb45232cd02"
+ sha256: a1cd1584fae64f6ecca63113fd5450e3483c097cc05e43a2f073330f62adcabe
url: "https://pub.dev"
source: hosted
- version: "0.8.13+3"
+ version: "0.8.13+8"
image_picker_for_web:
dependency: transitive
description:
@@ -833,10 +833,10 @@ packages:
dependency: transitive
description:
name: image_picker_ios
- sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e
+ sha256: "997d100ce1dda5b1ba4085194c5e36c9f8a1fb7987f6a36ab677a344cd2dc986"
url: "https://pub.dev"
source: hosted
- version: "0.8.13"
+ version: "0.8.13+2"
image_picker_linux:
dependency: transitive
description:
@@ -849,18 +849,18 @@ packages:
dependency: transitive
description:
name: image_picker_macos
- sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04
+ sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91"
url: "https://pub.dev"
source: hosted
- version: "0.2.2"
+ version: "0.2.2+1"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
- sha256: "9f143b0dba3e459553209e20cc425c9801af48e6dfa4f01a0fcf927be3f41665"
+ sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c"
url: "https://pub.dev"
source: hosted
- version: "2.11.0"
+ version: "2.11.1"
image_picker_windows:
dependency: transitive
description:
@@ -1017,10 +1017,10 @@ packages:
dependency: transitive
description:
name: meta
- sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
+ sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
- version: "1.16.0"
+ version: "1.17.0"
mgrs_dart:
dependency: transitive
description:
@@ -1153,18 +1153,18 @@ packages:
dependency: transitive
description:
name: path_provider_android
- sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db"
+ sha256: "95c68a74d3cab950fd0ed8073d9fab15c1c06eb1f3eec68676e87aabc9ecee5a"
url: "https://pub.dev"
source: hosted
- version: "2.2.18"
+ version: "2.2.21"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
- sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
+ sha256: "97390a0719146c7c3e71b6866c34f1cde92685933165c1c671984390d2aca776"
url: "https://pub.dev"
source: hosted
- version: "2.4.2"
+ version: "2.4.4"
path_provider_linux:
dependency: transitive
description:
@@ -1377,18 +1377,18 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
- sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e
+ sha256: "07d552dbe8e71ed720e5205e760438ff4ecfb76ec3b32ea664350e2ca4b0c43b"
url: "https://pub.dev"
source: hosted
- version: "2.4.13"
+ version: "2.4.16"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
- sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
+ sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
- version: "2.5.4"
+ version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
@@ -1478,10 +1478,10 @@ packages:
dependency: transitive
description:
name: source_gen
- sha256: ccf30b0c9fbcd79d8b6f5bfac23199fb354938436f62475e14aea0f29ee0f800
+ sha256: "9098ab86015c4f1d8af6486b547b11100e73b193e1899015033cb3e14ad20243"
url: "https://pub.dev"
source: hosted
- version: "4.0.1"
+ version: "4.0.2"
source_helper:
dependency: transitive
description:
@@ -1514,14 +1514,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.10.1"
- sprintf:
- dependency: transitive
- description:
- name: sprintf
- sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
- url: "https://pub.dev"
- source: hosted
- version: "7.0.0"
sqflite:
dependency: transitive
description:
@@ -1614,26 +1606,26 @@ packages:
dependency: "direct dev"
description:
name: test
- sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"
+ sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7"
url: "https://pub.dev"
source: hosted
- version: "1.26.2"
+ version: "1.26.3"
test_api:
dependency: transitive
description:
name: test_api
- sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
+ sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
- version: "0.7.6"
+ version: "0.7.7"
test_core:
dependency: transitive
description:
name: test_core
- sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a"
+ sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0"
url: "https://pub.dev"
source: hosted
- version: "0.6.11"
+ version: "0.6.12"
time:
dependency: transitive
description:
@@ -1662,10 +1654,10 @@ packages:
dependency: transitive
description:
name: uuid
- sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
+ sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
- version: "4.5.1"
+ version: "4.5.2"
vector_graphics:
dependency: transitive
description:
@@ -1710,10 +1702,10 @@ packages:
dependency: transitive
description:
name: watcher
- sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c"
+ sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a"
url: "https://pub.dev"
source: hosted
- version: "1.1.3"
+ version: "1.1.4"
web:
dependency: transitive
description:
@@ -1750,10 +1742,10 @@ packages:
dependency: transitive
description:
name: win32
- sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03"
+ sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
url: "https://pub.dev"
source: hosted
- version: "5.14.0"
+ version: "5.15.0"
win32_registry:
dependency: transitive
description:
@@ -1803,5 +1795,5 @@ packages:
source: hosted
version: "2.1.0"
sdks:
- dart: ">=3.9.2 <4.0.0"
- flutter: ">=3.35.4"
+ dart: ">=3.10.0 <4.0.0"
+ flutter: ">=3.35.7"
diff --git a/packages/core/pubspec.yaml b/packages/core/pubspec.yaml
index e66ad08..a1fce85 100644
--- a/packages/core/pubspec.yaml
+++ b/packages/core/pubspec.yaml
@@ -4,7 +4,7 @@ publish_to: none
version: 1.3.0
environment:
- sdk: ^3.9.2
+ sdk: ^3.10.0
dependencies:
flutter:
diff --git a/packages/inspection/pubspec.lock b/packages/inspection/pubspec.lock
index e4096fd..83af622 100644
--- a/packages/inspection/pubspec.lock
+++ b/packages/inspection/pubspec.lock
@@ -5,18 +5,18 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f
+ sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d
url: "https://pub.dev"
source: hosted
- version: "85.0.0"
+ version: "91.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
- sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d"
+ sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08
url: "https://pub.dev"
source: hosted
- version: "7.7.1"
+ version: "8.4.1"
android_intent_plus:
dependency: transitive
description:
@@ -77,10 +77,10 @@ packages:
dependency: transitive
description:
name: build
- sha256: ce76b1d48875e3233fde17717c23d1f60a91cc631597e49a400c89b475395b1d
+ sha256: dfb67ccc9a78c642193e0c2d94cb9e48c2c818b3178a86097d644acdcde6a8d9
url: "https://pub.dev"
source: hosted
- version: "3.1.0"
+ version: "4.0.2"
build_config:
dependency: transitive
description:
@@ -93,34 +93,18 @@ packages:
dependency: transitive
description:
name: build_daemon
- sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa"
+ sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957
url: "https://pub.dev"
source: hosted
- version: "4.0.4"
- build_resolvers:
- dependency: transitive
- description:
- name: build_resolvers
- sha256: d1d57f7807debd7349b4726a19fd32ec8bc177c71ad0febf91a20f84cd2d4b46
- url: "https://pub.dev"
- source: hosted
- version: "3.0.3"
+ version: "4.1.1"
build_runner:
dependency: "direct dev"
description:
name: build_runner
- sha256: b24597fceb695969d47025c958f3837f9f0122e237c6a22cb082a5ac66c3ca30
+ sha256: "7b5b569f3df370590a85029148d6fc66c7d0201fc6f1847c07dd85d365ae9fcd"
url: "https://pub.dev"
source: hosted
- version: "2.7.1"
- build_runner_core:
- dependency: transitive
- description:
- name: build_runner_core
- sha256: "066dda7f73d8eb48ba630a55acb50c4a84a2e6b453b1cb4567f581729e794f7b"
- url: "https://pub.dev"
- source: hosted
- version: "9.3.1"
+ version: "2.10.3"
built_collection:
dependency: transitive
description:
@@ -253,18 +237,18 @@ packages:
dependency: transitive
description:
name: cross_file
- sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
+ sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239"
url: "https://pub.dev"
source: hosted
- version: "0.3.4+2"
+ version: "0.3.5"
crypto:
dependency: transitive
description:
name: crypto
- sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
- version: "3.0.6"
+ version: "3.0.7"
cupertino_icons:
dependency: transitive
description:
@@ -293,10 +277,10 @@ packages:
dependency: transitive
description:
name: dart_style
- sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb"
+ sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
url: "https://pub.dev"
source: hosted
- version: "3.1.1"
+ version: "3.1.3"
dartx:
dependency: transitive
description:
@@ -325,10 +309,10 @@ packages:
dependency: transitive
description:
name: device_info_plus
- sha256: "49413c8ca514dea7633e8def233b25efdf83ec8522955cc2c0e3ad802927e7c6"
+ sha256: dd0e8e02186b2196c7848c9d394a5fd6e5b57a43a546082c5820b1ec72317e33
url: "https://pub.dev"
source: hosted
- version: "12.1.0"
+ version: "12.2.0"
device_info_plus_platform_interface:
dependency: transitive
description:
@@ -341,10 +325,10 @@ packages:
dependency: transitive
description:
name: device_preview_plus
- sha256: "2ebe9cf25ed46875c9c1b745d0438df9e4c49f7bcf9ea466c88efbcffcc73ab7"
+ sha256: eb3e67929c9f04759e0d3708ad91d1018235549bcf8699f8a94909684c6555ae
url: "https://pub.dev"
source: hosted
- version: "2.5.1"
+ version: "2.5.5"
dio:
dependency: transitive
description:
@@ -397,34 +381,34 @@ packages:
dependency: transitive
description:
name: file_selector_linux
- sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
+ sha256: "80a877f5ec570c4fb3b40720a70b6f31e8bb1315a464b4d3e92fe82754d4b21a"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+2"
+ version: "0.9.3+3"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
- sha256: "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c"
+ sha256: "44f24d102e368370951b98ffe86c7325b38349e634578312976607d28cc6d747"
url: "https://pub.dev"
source: hosted
- version: "0.9.4+4"
+ version: "0.9.4+6"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
- sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
+ sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85"
url: "https://pub.dev"
source: hosted
- version: "2.6.2"
+ version: "2.7.0"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
- sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
+ sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+4"
+ version: "0.9.3+5"
fixnum:
dependency: transitive
description:
@@ -527,10 +511,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31
+ sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687"
url: "https://pub.dev"
source: hosted
- version: "2.0.30"
+ version: "2.0.32"
flutter_rating_bar:
dependency: transitive
description:
@@ -607,10 +591,10 @@ packages:
dependency: transitive
description:
name: flutter_svg
- sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678
+ sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355"
url: "https://pub.dev"
source: hosted
- version: "2.2.1"
+ version: "2.2.2"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -705,10 +689,10 @@ packages:
dependency: transitive
description:
name: get_it
- sha256: a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b
+ sha256: ae78de7c3f2304b8d81f2bb6e320833e5e81de942188542328f074978cc0efa9
url: "https://pub.dev"
source: hosted
- version: "8.2.0"
+ version: "8.3.0"
get_test:
dependency: "direct dev"
description:
@@ -745,34 +729,34 @@ packages:
dependency: transitive
description:
name: hive_ce
- sha256: d678b1b2e315c18cd7ed8fd79eda25d70a1f3852d6988bfe5461cffe260c60aa
+ sha256: "81d39a03c4c0ba5938260a8c3547d2e71af59defecea21793d57fc3551f0d230"
url: "https://pub.dev"
source: hosted
- version: "2.14.0"
+ version: "2.15.1"
hive_ce_flutter:
dependency: transitive
description:
name: hive_ce_flutter
- sha256: f5bd57fda84402bca7557fedb8c629c96c8ea10fab4a542968d7b60864ca02cc
+ sha256: "26d656c9e8974f0732f1d09020e2d7b08ba841b8961a02dbfb6caf01474b0e9a"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.3.3"
hive_ce_generator:
dependency: "direct dev"
description:
name: hive_ce_generator
- sha256: a169feeff2da9cc2c417ce5ae9bcebf7c8a95d7a700492b276909016ad70a786
+ sha256: b19ac263cb37529513508ba47352c41e6de72ba879952898d9c18c9c8a955921
url: "https://pub.dev"
source: hosted
- version: "1.9.3"
+ version: "1.10.0"
http:
dependency: transitive
description:
name: http
- sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
+ sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
- version: "1.5.0"
+ version: "1.6.0"
http_multi_server:
dependency: transitive
description:
@@ -825,18 +809,18 @@ packages:
dependency: transitive
description:
name: image_picker
- sha256: "736eb56a911cf24d1859315ad09ddec0b66104bc41a7f8c5b96b4e2620cf5041"
+ sha256: "784210112be18ea55f69d7076e2c656a4e24949fa9e76429fe53af0c0f4fa320"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
- sha256: "8dfe08ea7fcf7467dbaf6889e72eebd5e0d6711caae201fdac780eb45232cd02"
+ sha256: a1cd1584fae64f6ecca63113fd5450e3483c097cc05e43a2f073330f62adcabe
url: "https://pub.dev"
source: hosted
- version: "0.8.13+3"
+ version: "0.8.13+8"
image_picker_for_web:
dependency: transitive
description:
@@ -849,10 +833,10 @@ packages:
dependency: transitive
description:
name: image_picker_ios
- sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e
+ sha256: "997d100ce1dda5b1ba4085194c5e36c9f8a1fb7987f6a36ab677a344cd2dc986"
url: "https://pub.dev"
source: hosted
- version: "0.8.13"
+ version: "0.8.13+2"
image_picker_linux:
dependency: transitive
description:
@@ -865,18 +849,18 @@ packages:
dependency: transitive
description:
name: image_picker_macos
- sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04
+ sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91"
url: "https://pub.dev"
source: hosted
- version: "0.2.2"
+ version: "0.2.2+1"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
- sha256: "9f143b0dba3e459553209e20cc425c9801af48e6dfa4f01a0fcf927be3f41665"
+ sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c"
url: "https://pub.dev"
source: hosted
- version: "2.11.0"
+ version: "2.11.1"
image_picker_windows:
dependency: transitive
description:
@@ -993,10 +977,10 @@ packages:
dependency: transitive
description:
name: logger
- sha256: "55d6c23a6c15db14920e037fe7e0dc32e7cdaf3b64b4b25df2d541b5b6b81c0c"
+ sha256: a7967e31b703831a893bbc3c3dd11db08126fe5f369b5c648a36f821979f5be3
url: "https://pub.dev"
source: hosted
- version: "2.6.1"
+ version: "2.6.2"
logging:
dependency: transitive
description:
@@ -1033,10 +1017,10 @@ packages:
dependency: transitive
description:
name: meta
- sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
+ sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
- version: "1.16.0"
+ version: "1.17.0"
mgrs_dart:
dependency: transitive
description:
@@ -1057,10 +1041,10 @@ packages:
dependency: transitive
description:
name: mockito
- sha256: "2314cbe9165bcd16106513df9cf3c3224713087f09723b128928dc11a4379f99"
+ sha256: "4feb43bc4eb6c03e832f5fcd637d1abb44b98f9cfa245c58e27382f58859f8f6"
url: "https://pub.dev"
source: hosted
- version: "5.5.0"
+ version: "5.5.1"
mocktail:
dependency: "direct dev"
description:
@@ -1169,18 +1153,18 @@ packages:
dependency: transitive
description:
name: path_provider_android
- sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db"
+ sha256: "95c68a74d3cab950fd0ed8073d9fab15c1c06eb1f3eec68676e87aabc9ecee5a"
url: "https://pub.dev"
source: hosted
- version: "2.2.18"
+ version: "2.2.21"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
- sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
+ sha256: "97390a0719146c7c3e71b6866c34f1cde92685933165c1c671984390d2aca776"
url: "https://pub.dev"
source: hosted
- version: "2.4.2"
+ version: "2.4.4"
path_provider_linux:
dependency: transitive
description:
@@ -1355,7 +1339,7 @@ packages:
path: "../core"
relative: true
source: path
- version: "1.2.0+2"
+ version: "1.3.0"
rive:
dependency: transitive
description:
@@ -1400,18 +1384,18 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
- sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e
+ sha256: "07d552dbe8e71ed720e5205e760438ff4ecfb76ec3b32ea664350e2ca4b0c43b"
url: "https://pub.dev"
source: hosted
- version: "2.4.13"
+ version: "2.4.16"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
- sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
+ sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
- version: "2.5.4"
+ version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
@@ -1501,10 +1485,10 @@ packages:
dependency: transitive
description:
name: source_gen
- sha256: "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3"
+ sha256: "9098ab86015c4f1d8af6486b547b11100e73b193e1899015033cb3e14ad20243"
url: "https://pub.dev"
source: hosted
- version: "3.1.0"
+ version: "4.0.2"
source_helper:
dependency: transitive
description:
@@ -1537,14 +1521,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.10.1"
- sprintf:
- dependency: transitive
- description:
- name: sprintf
- sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
- url: "https://pub.dev"
- source: hosted
- version: "7.0.0"
sqflite:
dependency: transitive
description:
@@ -1637,26 +1613,26 @@ packages:
dependency: "direct dev"
description:
name: test
- sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"
+ sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7"
url: "https://pub.dev"
source: hosted
- version: "1.26.2"
+ version: "1.26.3"
test_api:
dependency: transitive
description:
name: test_api
- sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
+ sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
- version: "0.7.6"
+ version: "0.7.7"
test_core:
dependency: transitive
description:
name: test_core
- sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a"
+ sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0"
url: "https://pub.dev"
source: hosted
- version: "0.6.11"
+ version: "0.6.12"
time:
dependency: transitive
description:
@@ -1665,14 +1641,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.5"
- timing:
- dependency: transitive
- description:
- name: timing
- sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.2"
typed_data:
dependency: transitive
description:
@@ -1693,10 +1661,10 @@ packages:
dependency: transitive
description:
name: uuid
- sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
+ sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
- version: "4.5.1"
+ version: "4.5.2"
vector_graphics:
dependency: transitive
description:
@@ -1741,10 +1709,10 @@ packages:
dependency: transitive
description:
name: watcher
- sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c"
+ sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a"
url: "https://pub.dev"
source: hosted
- version: "1.1.3"
+ version: "1.1.4"
web:
dependency: transitive
description:
@@ -1781,10 +1749,10 @@ packages:
dependency: transitive
description:
name: win32
- sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03"
+ sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
url: "https://pub.dev"
source: hosted
- version: "5.14.0"
+ version: "5.15.0"
win32_registry:
dependency: transitive
description:
@@ -1834,5 +1802,5 @@ packages:
source: hosted
version: "2.1.0"
sdks:
- dart: ">=3.9.2 <4.0.0"
- flutter: ">=3.35.4"
+ dart: ">=3.10.0 <4.0.0"
+ flutter: ">=3.35.7"
diff --git a/packages/inspection/pubspec.yaml b/packages/inspection/pubspec.yaml
index 39787df..e0e4d7a 100644
--- a/packages/inspection/pubspec.yaml
+++ b/packages/inspection/pubspec.yaml
@@ -4,7 +4,7 @@ publish_to: 'none'
version: 1.2.0
environment:
- sdk: ^3.9.2
+ sdk: ^3.10.0
dependencies:
flutter:
diff --git a/packages/livestock/pubspec.yaml b/packages/livestock/pubspec.yaml
index 696d390..bef8e9d 100644
--- a/packages/livestock/pubspec.yaml
+++ b/packages/livestock/pubspec.yaml
@@ -5,7 +5,7 @@ publish_to: 'none'
# repository: https://github.com/my_org/my_repo
environment:
- sdk: ^3.9.2
+ sdk: ^3.10.0
dependencies:
diff --git a/pubspec.lock b/pubspec.lock
index 34029ea..e9b5628 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,18 +5,18 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- sha256: dd3d2ad434b9510001d089e8de7556d50c834481b9abc2891a0184a8493a19dc
+ sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d
url: "https://pub.dev"
source: hosted
- version: "89.0.0"
+ version: "91.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
- sha256: c22b6e7726d1f9e5db58c7251606076a71ca0dbcf76116675edfadbec0c9e875
+ sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08
url: "https://pub.dev"
source: hosted
- version: "8.2.0"
+ version: "8.4.1"
android_intent_plus:
dependency: transitive
description:
@@ -77,10 +77,10 @@ packages:
dependency: transitive
description:
name: build
- sha256: "5b887c55a0f734b433b3b2d89f9cd1f99eb636b17e268a5b4259258bc916504b"
+ sha256: dfb67ccc9a78c642193e0c2d94cb9e48c2c818b3178a86097d644acdcde6a8d9
url: "https://pub.dev"
source: hosted
- version: "4.0.0"
+ version: "4.0.2"
build_config:
dependency: transitive
description:
@@ -93,18 +93,18 @@ packages:
dependency: transitive
description:
name: build_daemon
- sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa"
+ sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957
url: "https://pub.dev"
source: hosted
- version: "4.0.4"
+ version: "4.1.1"
build_runner:
dependency: "direct dev"
description:
name: build_runner
- sha256: a9461b8e586bf018dd4afd2e13b49b08c6a844a4b226c8d1d10f3a723cdd78c3
+ sha256: "7b5b569f3df370590a85029148d6fc66c7d0201fc6f1847c07dd85d365ae9fcd"
url: "https://pub.dev"
source: hosted
- version: "2.10.1"
+ version: "2.10.3"
built_collection:
dependency: transitive
description:
@@ -237,18 +237,18 @@ packages:
dependency: transitive
description:
name: cross_file
- sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
+ sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239"
url: "https://pub.dev"
source: hosted
- version: "0.3.4+2"
+ version: "0.3.5"
crypto:
dependency: transitive
description:
name: crypto
- sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
+ sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev"
source: hosted
- version: "3.0.6"
+ version: "3.0.7"
cupertino_icons:
dependency: "direct main"
description:
@@ -277,10 +277,10 @@ packages:
dependency: transitive
description:
name: dart_style
- sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697
+ sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
url: "https://pub.dev"
source: hosted
- version: "3.1.2"
+ version: "3.1.3"
dartx:
dependency: transitive
description:
@@ -309,10 +309,10 @@ packages:
dependency: transitive
description:
name: device_info_plus
- sha256: "49413c8ca514dea7633e8def233b25efdf83ec8522955cc2c0e3ad802927e7c6"
+ sha256: dd0e8e02186b2196c7848c9d394a5fd6e5b57a43a546082c5820b1ec72317e33
url: "https://pub.dev"
source: hosted
- version: "12.1.0"
+ version: "12.2.0"
device_info_plus_platform_interface:
dependency: transitive
description:
@@ -325,10 +325,10 @@ packages:
dependency: transitive
description:
name: device_preview_plus
- sha256: "2ebe9cf25ed46875c9c1b745d0438df9e4c49f7bcf9ea466c88efbcffcc73ab7"
+ sha256: eb3e67929c9f04759e0d3708ad91d1018235549bcf8699f8a94909684c6555ae
url: "https://pub.dev"
source: hosted
- version: "2.5.1"
+ version: "2.5.5"
dio:
dependency: transitive
description:
@@ -381,34 +381,34 @@ packages:
dependency: transitive
description:
name: file_selector_linux
- sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
+ sha256: "80a877f5ec570c4fb3b40720a70b6f31e8bb1315a464b4d3e92fe82754d4b21a"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+2"
+ version: "0.9.3+3"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
- sha256: "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c"
+ sha256: "44f24d102e368370951b98ffe86c7325b38349e634578312976607d28cc6d747"
url: "https://pub.dev"
source: hosted
- version: "0.9.4+4"
+ version: "0.9.4+6"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
- sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
+ sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85"
url: "https://pub.dev"
source: hosted
- version: "2.6.2"
+ version: "2.7.0"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
- sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
+ sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+4"
+ version: "0.9.3+5"
fixnum:
dependency: transitive
description:
@@ -524,10 +524,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: b0694b7fb1689b0e6cc193b3f1fcac6423c4f93c74fb20b806c6b6f196db0c31
+ sha256: "306f0596590e077338312f38837f595c04f28d6cdeeac392d3d74df2f0003687"
url: "https://pub.dev"
source: hosted
- version: "2.0.30"
+ version: "2.0.32"
flutter_rating_bar:
dependency: transitive
description:
@@ -604,10 +604,10 @@ packages:
dependency: transitive
description:
name: flutter_svg
- sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678
+ sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355"
url: "https://pub.dev"
source: hosted
- version: "2.2.1"
+ version: "2.2.2"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -699,10 +699,10 @@ packages:
dependency: transitive
description:
name: get_it
- sha256: a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b
+ sha256: ae78de7c3f2304b8d81f2bb6e320833e5e81de942188542328f074978cc0efa9
url: "https://pub.dev"
source: hosted
- version: "8.2.0"
+ version: "8.3.0"
get_test:
dependency: "direct dev"
description:
@@ -747,10 +747,10 @@ packages:
dependency: transitive
description:
name: hive_ce_flutter
- sha256: f5bd57fda84402bca7557fedb8c629c96c8ea10fab4a542968d7b60864ca02cc
+ sha256: "26d656c9e8974f0732f1d09020e2d7b08ba841b8961a02dbfb6caf01474b0e9a"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.3.3"
hive_ce_generator:
dependency: "direct dev"
description:
@@ -763,10 +763,10 @@ packages:
dependency: transitive
description:
name: http
- sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
+ sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
- version: "1.5.0"
+ version: "1.6.0"
http_multi_server:
dependency: transitive
description:
@@ -819,18 +819,18 @@ packages:
dependency: transitive
description:
name: image_picker
- sha256: "736eb56a911cf24d1859315ad09ddec0b66104bc41a7f8c5b96b4e2620cf5041"
+ sha256: "784210112be18ea55f69d7076e2c656a4e24949fa9e76429fe53af0c0f4fa320"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
- sha256: "8dfe08ea7fcf7467dbaf6889e72eebd5e0d6711caae201fdac780eb45232cd02"
+ sha256: a1cd1584fae64f6ecca63113fd5450e3483c097cc05e43a2f073330f62adcabe
url: "https://pub.dev"
source: hosted
- version: "0.8.13+3"
+ version: "0.8.13+8"
image_picker_for_web:
dependency: transitive
description:
@@ -843,10 +843,10 @@ packages:
dependency: transitive
description:
name: image_picker_ios
- sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e
+ sha256: "997d100ce1dda5b1ba4085194c5e36c9f8a1fb7987f6a36ab677a344cd2dc986"
url: "https://pub.dev"
source: hosted
- version: "0.8.13"
+ version: "0.8.13+2"
image_picker_linux:
dependency: transitive
description:
@@ -859,18 +859,18 @@ packages:
dependency: transitive
description:
name: image_picker_macos
- sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04
+ sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91"
url: "https://pub.dev"
source: hosted
- version: "0.2.2"
+ version: "0.2.2+1"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
- sha256: "9f143b0dba3e459553209e20cc425c9801af48e6dfa4f01a0fcf927be3f41665"
+ sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c"
url: "https://pub.dev"
source: hosted
- version: "2.11.0"
+ version: "2.11.1"
image_picker_windows:
dependency: transitive
description:
@@ -1032,10 +1032,10 @@ packages:
dependency: transitive
description:
name: meta
- sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
+ sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394"
url: "https://pub.dev"
source: hosted
- version: "1.16.0"
+ version: "1.17.0"
mgrs_dart:
dependency: transitive
description:
@@ -1160,18 +1160,18 @@ packages:
dependency: transitive
description:
name: path_provider_android
- sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db"
+ sha256: "95c68a74d3cab950fd0ed8073d9fab15c1c06eb1f3eec68676e87aabc9ecee5a"
url: "https://pub.dev"
source: hosted
- version: "2.2.18"
+ version: "2.2.21"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
- sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
+ sha256: "97390a0719146c7c3e71b6866c34f1cde92685933165c1c671984390d2aca776"
url: "https://pub.dev"
source: hosted
- version: "2.4.2"
+ version: "2.4.4"
path_provider_linux:
dependency: transitive
description:
@@ -1420,18 +1420,18 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
- sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e
+ sha256: "07d552dbe8e71ed720e5205e760438ff4ecfb76ec3b32ea664350e2ca4b0c43b"
url: "https://pub.dev"
source: hosted
- version: "2.4.13"
+ version: "2.4.16"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
- sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
+ sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f"
url: "https://pub.dev"
source: hosted
- version: "2.5.4"
+ version: "2.5.6"
shared_preferences_linux:
dependency: transitive
description:
@@ -1505,10 +1505,10 @@ packages:
dependency: transitive
description:
name: source_gen
- sha256: ccf30b0c9fbcd79d8b6f5bfac23199fb354938436f62475e14aea0f29ee0f800
+ sha256: "9098ab86015c4f1d8af6486b547b11100e73b193e1899015033cb3e14ad20243"
url: "https://pub.dev"
source: hosted
- version: "4.0.1"
+ version: "4.0.2"
source_helper:
dependency: transitive
description:
@@ -1525,14 +1525,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.10.1"
- sprintf:
- dependency: transitive
- description:
- name: sprintf
- sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
- url: "https://pub.dev"
- source: hosted
- version: "7.0.0"
sqflite:
dependency: transitive
description:
@@ -1633,10 +1625,10 @@ packages:
dependency: transitive
description:
name: test_api
- sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
+ sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
url: "https://pub.dev"
source: hosted
- version: "0.7.6"
+ version: "0.7.7"
time:
dependency: transitive
description:
@@ -1665,10 +1657,10 @@ packages:
dependency: transitive
description:
name: uuid
- sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
+ sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev"
source: hosted
- version: "4.5.1"
+ version: "4.5.2"
vector_graphics:
dependency: transitive
description:
@@ -1713,10 +1705,10 @@ packages:
dependency: transitive
description:
name: watcher
- sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c"
+ sha256: "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a"
url: "https://pub.dev"
source: hosted
- version: "1.1.3"
+ version: "1.1.4"
web:
dependency: transitive
description:
@@ -1753,10 +1745,10 @@ packages:
dependency: transitive
description:
name: win32
- sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03"
+ sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
url: "https://pub.dev"
source: hosted
- version: "5.14.0"
+ version: "5.15.0"
win32_registry:
dependency: transitive
description:
@@ -1806,5 +1798,5 @@ packages:
source: hosted
version: "2.1.0"
sdks:
- dart: ">=3.9.2 <4.0.0"
- flutter: ">=3.35.4"
+ dart: ">=3.10.0 <4.0.0"
+ flutter: ">=3.35.7"
diff --git a/pubspec.yaml b/pubspec.yaml
index 65b7df0..f2adbe2 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -13,7 +13,6 @@ dependencies:
#UI
cupertino_icons: ^1.0.8
flutter_launcher_icons: ^0.14.4
-
#rasadyar packages
rasadyar_core:
path: ./packages/core