add analytics views/analytics/analytics_view.dart

null-safety-migration
suvaysov 2022-06-15 16:42:43 +06:00
parent 19ccb03c76
commit 44a6de4f58
13 changed files with 397 additions and 134 deletions

View File

@ -6,30 +6,22 @@
additional functionality it is fine to subclass or reimplement additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. --> FlutterApplication and put your custom class here. -->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<application <application
android:name="io.flutter.app.FlutterApplication" android:name="${applicationName}"
android:label="Satu"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="Satu"
android:roundIcon="@mipmap/ic_launcher_rounded"> android:roundIcon="@mipmap/ic_launcher_rounded">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<!-- Displays an Android View that continues showing the launch screen <!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual screen fades out. A splash screen is useful to avoid any visual
@ -37,11 +29,18 @@
Flutter's first frame. --> Flutter's first frame. -->
<meta-data <meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable" android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background" android:resource="@drawable/launch_background" />
/> <!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.

View File

@ -1,5 +1,5 @@
buildscript { buildscript {
ext.kotlin_version = '1.3.50' ext.kotlin_version = '1.5.31'
repositories { repositories {
google() google()
jcenter() jcenter()

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,52 @@
import 'package:satu/core/utils/utils_parse.dart';
class AnalyticsBean {
StatsBean? stats;
num? money;
static AnalyticsBean? fromMap(dynamic map) {
if (map == null) return null;
final AnalyticsBean item = AnalyticsBean();
item.stats = StatsBean.fromMap(map['stats']);
item.money = cast<num>(map['money']);
return item;
}
}
class StatsBean {
String? todayDate;
String? yesterdayDate;
String? weekDate;
String? monthDate;
StatItem? today;
StatItem? yesterday;
StatItem? week;
StatItem? month;
static StatsBean? fromMap(dynamic map) {
if (map == null) return null;
final StatsBean item = StatsBean();
item.todayDate = cast<String>(map['today_date']);
item.yesterdayDate = cast<String>(map['yesterday_date']);
item.weekDate = cast<String>(map['week_date']);
item.monthDate = cast<String>(map['month_date']);
item.today = StatItem.fromMap(map['today']);
item.yesterday = StatItem.fromMap(map['yesterday']);
item.week = StatItem.fromMap(map['week']);
item.month = StatItem.fromMap(map['month']);
return item;
}
}
class StatItem {
num? cnt;
num? summ;
static StatItem? fromMap(dynamic map) {
if (map == null) return null;
final StatItem item = StatItem();
item.cnt = cast<num>(map['cnt']);
item.summ = cast<num>(map['summ']);
return item;
}
}

View File

@ -4,6 +4,7 @@ import 'dart:io';
import 'package:satu/core/base/base_service.dart'; import 'package:satu/core/base/base_service.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:satu/core/models/auth/auth_response.dart'; import 'package:satu/core/models/auth/auth_response.dart';
import 'package:satu/core/models/flow/analytics/analytics_bean.dart';
import 'package:satu/core/models/flow/sell_request.dart'; import 'package:satu/core/models/flow/sell_request.dart';
import 'package:satu/core/models/flow/sell_response.dart'; import 'package:satu/core/models/flow/sell_response.dart';
import 'package:satu/core/models/flow/sell_return/sell_return_request.dart'; import 'package:satu/core/models/flow/sell_return/sell_return_request.dart';
@ -170,4 +171,19 @@ class ApiService extends BaseService {
} }
return response; return response;
} }
Future<AnalyticsBean?> getAnalytics() async {
AnalyticsBean? response;
try {
final Map<String, String> headers = <String, String>{
HttpHeaders.authorizationHeader: 'Bearer $token'
};
final String responseBody = await _get('/get_analytics', header: headers);
log.i(responseBody);
response = AnalyticsBean.fromMap(json.decode(responseBody));
} catch (e, stack) {
log.e('getAnalytics', e, stack);
}
return response;
}
} }

View File

@ -41,7 +41,7 @@ class MainApplication extends StatelessWidget {
375, 375,
812, 812,
), ),
builder: () => MaterialApp( builder: (context, child) => MaterialApp(
theme: ThemeData( theme: ThemeData(
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
primaryColor: whiteColor, primaryColor: whiteColor,

View File

@ -0,0 +1,68 @@
import 'package:flutter/material.dart';
import 'package:satu/core/models/flow/analytics/analytics_bean.dart';
import 'package:satu/core/services/api_service.dart';
import 'package:satu/core/utils/locator.dart';
import 'package:satu/shared/ui_helpers.dart';
import 'package:satu/widgets/bar/products_app_bar.dart';
import 'package:satu/widgets/row/info_row.dart';
class AnalyticsView extends StatefulWidget {
const AnalyticsView({Key? key}) : super(key: key);
@override
State<AnalyticsView> createState() => _AnalyticsViewState();
}
class _AnalyticsViewState extends State<AnalyticsView> {
final ApiService _apiService = locator<ApiService>();
AnalyticsBean? _analyticsBean;
@override
void initState() {
super.initState();
initQuery();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const ProductsAppBar(
title: 'Аналитика',
drawerShow: true,
),
body: Column(
children: [
verticalSpaceLarge,
InfoRow(
'Денег в кассе',
value: _analyticsBean?.money?.toString() ?? '0',
),
InfoRow(
'Сегодня',
value: _analyticsBean?.stats?.today?.summ?.toString() ?? '0',
),
InfoRow(
'Вчера',
value: _analyticsBean?.stats?.yesterday?.summ?.toString() ?? '0',
),
InfoRow(
'Неделя',
value: _analyticsBean?.stats?.week?.summ?.toString() ?? '0',
),
InfoRow(
'Месяц',
value: _analyticsBean?.stats?.month?.summ?.toString() ?? '0',
),
],
),
);
}
Future<void> initQuery() async {
final AnalyticsBean? analyticsBean = await _apiService.getAnalytics();
setState(() {
_analyticsBean = analyticsBean;
});
}
}

View File

@ -35,8 +35,8 @@ class _LoginViewState extends State<LoginView> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
emailController = TextEditingController(); emailController = TextEditingController(text: 'test11@gmail.com');
passwordController = TextEditingController(); passwordController = TextEditingController(text: 'qwe123');
} }
@override @override

View File

@ -4,6 +4,7 @@ import 'package:satu/core/redux/state/nav_state.dart';
import 'package:satu/core/redux/store.dart'; import 'package:satu/core/redux/store.dart';
import 'package:satu/core/services/navigator_service.dart'; import 'package:satu/core/services/navigator_service.dart';
import 'package:satu/core/utils/locator.dart'; import 'package:satu/core/utils/locator.dart';
import 'package:satu/views/analytics/analytics_view.dart';
import 'package:satu/views/dictionaries/category/category_view.dart'; import 'package:satu/views/dictionaries/category/category_view.dart';
import 'package:satu/views/dictionaries/goods/goods_view.dart'; import 'package:satu/views/dictionaries/goods/goods_view.dart';
import 'package:satu/views/settings/printer_bluetooth/printer_view.dart'; import 'package:satu/views/settings/printer_bluetooth/printer_view.dart';
@ -24,6 +25,7 @@ class _MainViewState extends State<MainView> {
final _settingsView = SettingsView(); final _settingsView = SettingsView();
final _categoryDictView = CategoryDictionaryView(); final _categoryDictView = CategoryDictionaryView();
final _goodDictView = GoodsDictionaryView(); final _goodDictView = GoodsDictionaryView();
final _analyticsView = const AnalyticsView();
Widget _body(Type viewClass) { Widget _body(Type viewClass) {
if(viewClass == WorkView) { if(viewClass == WorkView) {
@ -38,6 +40,9 @@ class _MainViewState extends State<MainView> {
if(viewClass == GoodsDictionaryView) { if(viewClass == GoodsDictionaryView) {
return _goodDictView; return _goodDictView;
} }
if(viewClass == AnalyticsView) {
return _analyticsView;
}
return _workView; return _workView;
} }

View File

@ -10,6 +10,7 @@ import 'package:satu/core/redux/store.dart';
import 'package:satu/shared/app_colors.dart'; import 'package:satu/shared/app_colors.dart';
import 'package:satu/shared/ui_helpers.dart'; import 'package:satu/shared/ui_helpers.dart';
import 'package:satu/views/analytics/analytics_view.dart';
import 'package:satu/views/dictionaries/category/category_view.dart'; import 'package:satu/views/dictionaries/category/category_view.dart';
import 'package:satu/views/dictionaries/goods/goods_view.dart'; import 'package:satu/views/dictionaries/goods/goods_view.dart';
import 'package:satu/views/settings/setting_view.dart'; import 'package:satu/views/settings/setting_view.dart';
@ -32,7 +33,14 @@ class AppDrawer extends StatelessWidget {
onTap: () { onTap: () {
Navigator.of(context).pop(); Navigator.of(context).pop();
Redux.store!.dispatch(navigateDrawer(WorkView)); Redux.store!.dispatch(navigateDrawer(WorkView));
}), },),
_createDrawerItem(
svgFile: 'analytics',
text: 'Аналитика',
onTap: () {
Navigator.of(context).pop();
Redux.store!.dispatch(navigateDrawer(AnalyticsView));
},),
_createDrawerItem( _createDrawerItem(
svgFile: 'inventarization', svgFile: 'inventarization',
text: 'Инвентаризация', text: 'Инвентаризация',

View File

@ -0,0 +1,92 @@
import 'package:flutter/material.dart';
import 'package:satu/shared/app_colors.dart';
class InfoRow extends StatelessWidget {
const InfoRow(this.name, {this.value = '', this.onTap});
final String name;
final String? value;
final Function()? onTap;
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Material(
color: Colors.transparent,
child: InkWell(
onTap: onTap,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: Container(
decoration: const BoxDecoration(
color: whiteColor,
border: Border(
bottom: BorderSide(
// <--- left side
color: placeholderColor,
width: 0.5,
),
top: BorderSide(
// <--- top side
color: placeholderColor,
width: 0.5,
),
),
),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Text(
name,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: textColor,
),
),
),
),
),
Expanded(
child: Container(
decoration: const BoxDecoration(
color: whiteColor,
border: Border(
left: BorderSide(
color: placeholderColor,
width: 0.5,
),
bottom: BorderSide(
color: placeholderColor,
width: 0.5,
),
top: BorderSide(
color: placeholderColor,
width: 0.5,
),
),
),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Text(
'$value тг',
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: textColor,
),
),
),
),
)
],
),
),
),
],
);
}
}

View File

@ -7,14 +7,14 @@ packages:
name: _fe_analyzer_shared name: _fe_analyzer_shared
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "30.0.0" version: "40.0.0"
ai_barcode: ai_barcode:
dependency: "direct main" dependency: "direct main"
description: description:
name: ai_barcode name: ai_barcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "3.2.0"
ai_barcode_platform_interface: ai_barcode_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -35,28 +35,28 @@ packages:
name: analyzer name: analyzer
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.7.0" version: "4.1.0"
archive: archive:
dependency: transitive dependency: transitive
description: description:
name: archive name: archive
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.6" version: "3.3.0"
args: args:
dependency: transitive dependency: transitive
description: description:
name: args name: args
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.3.0" version: "2.3.1"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.8.1" version: "2.8.2"
auto_size_text: auto_size_text:
dependency: "direct main" dependency: "direct main"
description: description:
@ -77,7 +77,7 @@ packages:
name: build name: build
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "2.3.0"
build_config: build_config:
dependency: transitive dependency: transitive
description: description:
@ -91,28 +91,28 @@ packages:
name: build_daemon name: build_daemon
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "3.1.0"
build_resolvers: build_resolvers:
dependency: transitive dependency: transitive
description: description:
name: build_resolvers name: build_resolvers
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.0.9"
build_runner: build_runner:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: build_runner name: build_runner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "2.1.11"
build_runner_core: build_runner_core:
dependency: transitive dependency: transitive
description: description:
name: build_runner_core name: build_runner_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "7.2.2" version: "7.2.3"
built_collection: built_collection:
dependency: transitive dependency: transitive
description: description:
@ -126,14 +126,14 @@ packages:
name: built_value name: built_value
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "8.1.3" version: "8.3.2"
characters: characters:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
@ -147,7 +147,7 @@ packages:
name: charset_converter name: charset_converter
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.1.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -155,13 +155,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.5"
clock: clock:
dependency: transitive dependency: transitive
description: description:
@ -189,35 +182,35 @@ packages:
name: convert name: convert
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
csslib: csslib:
dependency: transitive dependency: transitive
description: description:
name: csslib name: csslib
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.17.1" version: "0.17.2"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" version: "1.0.5"
dart_style: dart_style:
dependency: transitive dependency: transitive
description: description:
name: dart_style name: dart_style
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "2.2.3"
device_info: device_info:
dependency: "direct main" dependency: "direct main"
description: description:
@ -266,7 +259,7 @@ packages:
name: ffi name: ffi
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.2" version: "1.2.1"
file: file:
dependency: transitive dependency: transitive
description: description:
@ -280,7 +273,7 @@ packages:
name: fixnum name: fixnum
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.0" version: "1.0.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -306,7 +299,7 @@ packages:
name: flutter_screenutil name: flutter_screenutil
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.0.0+2" version: "5.5.3+2"
flutter_svg: flutter_svg:
dependency: "direct main" dependency: "direct main"
description: description:
@ -330,7 +323,7 @@ packages:
name: frontend_server_client name: frontend_server_client
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.3"
gbk_codec: gbk_codec:
dependency: transitive dependency: transitive
description: description:
@ -365,7 +358,7 @@ packages:
name: grouped_list name: grouped_list
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.1.0" version: "4.2.0"
hex: hex:
dependency: transitive dependency: transitive
description: description:
@ -393,21 +386,21 @@ packages:
name: http_multi_server name: http_multi_server
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "3.2.0"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.0" version: "4.0.1"
image: image:
dependency: transitive dependency: transitive
description: description:
name: image name: image
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.8" version: "3.1.3"
implicitly_animated_reorderable_list: implicitly_animated_reorderable_list:
dependency: "direct main" dependency: "direct main"
description: description:
@ -442,21 +435,21 @@ packages:
name: json_annotation name: json_annotation
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.3.0" version: "4.5.0"
json_serializable: json_serializable:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: json_serializable name: json_serializable
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.1" version: "6.2.0"
lint: lint:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: lint name: lint
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.7.2" version: "1.8.2"
location_permissions: location_permissions:
dependency: "direct main" dependency: "direct main"
description: description:
@ -484,28 +477,35 @@ packages:
name: mask_text_input_formatter name: mask_text_input_formatter
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.3.0"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.10" version: "0.12.11"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
material_design_icons_flutter: material_design_icons_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: material_design_icons_flutter name: material_design_icons_flutter
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.0.6295" version: "5.0.6595"
material_floating_search_bar: material_floating_search_bar:
dependency: "direct main" dependency: "direct main"
description: description:
name: material_floating_search_bar name: material_floating_search_bar
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.3.6" version: "0.3.7"
meta: meta:
dependency: transitive dependency: transitive
description: description:
@ -519,7 +519,7 @@ packages:
name: mime name: mime
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "1.0.2"
nested: nested:
dependency: transitive dependency: transitive
description: description:
@ -561,56 +561,49 @@ packages:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.7" version: "2.0.11"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.6" version: "2.0.14"
path_provider_ios: path_provider_ios:
dependency: transitive dependency: transitive
description: description:
name: path_provider_ios name: path_provider_ios
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.6" version: "2.0.9"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
name: path_provider_linux name: path_provider_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "2.1.7"
path_provider_macos: path_provider_macos:
dependency: transitive dependency: transitive
description: description:
name: path_provider_macos name: path_provider_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.0.6"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "2.0.4"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.0.7"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@ -638,14 +631,14 @@ packages:
name: platform name: platform
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.2" version: "3.1.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.1.2"
pool: pool:
dependency: transitive dependency: transitive
description: description:
@ -666,21 +659,21 @@ packages:
name: provider name: provider
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.1" version: "6.0.3"
pub_semver: pub_semver:
dependency: transitive dependency: transitive
description: description:
name: pub_semver name: pub_semver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
pubspec_parse: pubspec_parse:
dependency: transitive dependency: transitive
description: description:
name: pubspec_parse name: pubspec_parse
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
qr: qr:
dependency: transitive dependency: transitive
description: description:
@ -729,7 +722,7 @@ packages:
name: responsive_builder name: responsive_builder
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.1" version: "0.4.2"
rxdart: rxdart:
dependency: transitive dependency: transitive
description: description:
@ -743,21 +736,35 @@ packages:
name: shared_preferences name: shared_preferences
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.8" version: "2.0.15"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.12"
shared_preferences_ios:
dependency: transitive
description:
name: shared_preferences_ios
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.1.1"
shared_preferences_macos: shared_preferences_macos:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_macos name: shared_preferences_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.0.4"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -771,21 +778,21 @@ packages:
name: shared_preferences_web name: shared_preferences_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.0.4"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.1.1"
shelf: shelf:
dependency: transitive dependency: transitive
description: description:
name: shelf name: shelf
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.3.0"
shelf_web_socket: shelf_web_socket:
dependency: transitive dependency: transitive
description: description:
@ -804,14 +811,14 @@ packages:
name: source_gen name: source_gen
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.3" version: "1.2.2"
source_helper: source_helper:
dependency: transitive dependency: transitive
description: description:
name: source_helper name: source_helper
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0" version: "1.3.2"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
@ -825,14 +832,14 @@ packages:
name: sqflite name: sqflite
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0+4" version: "2.0.2+1"
sqflite_common: sqflite_common:
dependency: transitive dependency: transitive
description: description:
name: sqflite_common name: sqflite_common
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1+1" version: "2.2.1+1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -867,7 +874,7 @@ packages:
name: synchronized name: synchronized
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0+2"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
@ -881,7 +888,7 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.2" version: "0.4.8"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -910,69 +917,76 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.0.4"
universal_platform:
dependency: transitive
description:
name: universal_platform
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0+1"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_launcher name: url_launcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.13" version: "6.1.3"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.17"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.17"
url_launcher_linux: url_launcher_linux:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_linux name: url_launcher_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "3.0.1"
url_launcher_macos: url_launcher_macos:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "3.0.1"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_platform_interface name: url_launcher_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.0.5"
url_launcher_web: url_launcher_web:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.4" version: "2.0.12"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_windows name: url_launcher_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "3.0.1"
uuid: uuid:
dependency: "direct main" dependency: "direct main"
description: description:
name: uuid name: uuid
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.5" version: "3.0.6"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@ -986,21 +1000,21 @@ packages:
name: web_socket_channel name: web_socket_channel
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.2.0"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.3.0" version: "2.5.2"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.0" version: "0.2.0+1"
xml: xml:
dependency: transitive dependency: transitive
description: description:
@ -1014,7 +1028,7 @@ packages:
name: yaml name: yaml
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.0" version: "3.1.1"
sdks: sdks:
dart: ">=2.14.0 <3.0.0" dart: ">=2.16.0 <3.0.0"
flutter: ">=2.5.0" flutter: ">=2.10.0"

View File

@ -23,37 +23,37 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
cupertino_icons: ^1.0.4 cupertino_icons: ^1.0.5
redux: ^5.0.0 redux: ^5.0.0
flutter_redux: ^0.8.2 flutter_redux: ^0.8.2
redux_thunk: ^0.4.0 redux_thunk: ^0.4.0
redux_persist: ^0.9.0 redux_persist: ^0.9.0
redux_persist_flutter: ^0.9.0 redux_persist_flutter: ^0.9.0
responsive_builder: ^0.4.1 responsive_builder: ^0.4.2
provider: ^6.0.1 provider: ^6.0.3
logger: ^1.1.0 logger: ^1.1.0
get_it: ^7.2.0 get_it: ^7.2.0
equatable: ^2.0.3 equatable: ^2.0.3
http: ^0.13.4 http: ^0.13.4
sqflite: ^2.0.0+4 sqflite: ^2.0.2+1
path_provider: ^2.0.7 path_provider: ^2.0.11
material_design_icons_flutter: ^5.0.6295 material_design_icons_flutter: ^5.0.6295
intl: ^0.17.0 intl: ^0.17.0
device_info: ^2.0.3 device_info: ^2.0.3
auto_size_text: ^3.0.0 auto_size_text: ^3.0.0
url_launcher: ^6.0.13 url_launcher: ^6.1.3
qr_flutter: ^4.0.0 qr_flutter: ^4.0.0
mask_text_input_formatter: ^2.0.0 mask_text_input_formatter: ^2.3.0
flutter_screenutil: ^5.0.0+2 flutter_screenutil: ^5.5.3+2
shared_preferences: ^2.0.8 shared_preferences: ^2.0.15
material_floating_search_bar: ^0.3.6 material_floating_search_bar: ^0.3.7
implicitly_animated_reorderable_list: ^0.4.2 implicitly_animated_reorderable_list: ^0.4.2
uuid: ^3.0.5 uuid: ^3.0.6
charset_converter: ^2.0.0 charset_converter: ^2.1.0
ai_barcode: ^3.0.1 ai_barcode: ^3.2.0
permission_handler: ^8.3.0 permission_handler: ^8.3.0
flutter_svg: ^0.23.0+1 flutter_svg: ^0.23.0+1
grouped_list: ^4.1.0 grouped_list: ^4.2.0
flutter_bluetooth_basic: ^0.1.7 flutter_bluetooth_basic: ^0.1.7
location_permissions: ^4.0.1 location_permissions: ^4.0.1
esc_pos_utils: ^1.1.0 esc_pos_utils: ^1.1.0