Flutter upgrade
This commit is contained in:
parent
d05e98d15f
commit
12855222d0
16
.metadata
16
.metadata
|
|
@ -1,11 +1,11 @@
|
||||||
# This file tracks properties of this Flutter project.
|
# This file tracks properties of this Flutter project.
|
||||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||||
#
|
#
|
||||||
# This file should be version controlled.
|
# This file should be version controlled and should not be manually edited.
|
||||||
|
|
||||||
version:
|
version:
|
||||||
revision: c07f7888888435fd9df505aa2efc38d3cf65681b
|
revision: "ead455963c12b453cdb2358cad34969c76daf180"
|
||||||
channel: stable
|
channel: "stable"
|
||||||
|
|
||||||
project_type: app
|
project_type: app
|
||||||
|
|
||||||
|
|
@ -13,11 +13,11 @@ project_type: app
|
||||||
migration:
|
migration:
|
||||||
platforms:
|
platforms:
|
||||||
- platform: root
|
- platform: root
|
||||||
create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b
|
create_revision: ead455963c12b453cdb2358cad34969c76daf180
|
||||||
base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b
|
base_revision: ead455963c12b453cdb2358cad34969c76daf180
|
||||||
- platform: linux
|
- platform: windows
|
||||||
create_revision: c07f7888888435fd9df505aa2efc38d3cf65681b
|
create_revision: ead455963c12b453cdb2358cad34969c76daf180
|
||||||
base_revision: c07f7888888435fd9df505aa2efc38d3cf65681b
|
base_revision: ead455963c12b453cdb2358cad34969c76daf180
|
||||||
|
|
||||||
# User provided section
|
# User provided section
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,6 @@
|
||||||
# in sync with this file.
|
# in sync with this file.
|
||||||
|
|
||||||
analyzer:
|
analyzer:
|
||||||
strong-mode:
|
|
||||||
implicit-dynamic: false
|
|
||||||
errors:
|
errors:
|
||||||
# https://github.com/flutter/flutter/issues/41563#issuecomment-686481533
|
# https://github.com/flutter/flutter/issues/41563#issuecomment-686481533
|
||||||
undefined_prefixed_name: ignore
|
undefined_prefixed_name: ignore
|
||||||
|
|
@ -51,7 +49,7 @@ linter:
|
||||||
- always_declare_return_types
|
- always_declare_return_types
|
||||||
- always_put_control_body_on_new_line
|
- always_put_control_body_on_new_line
|
||||||
# - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219
|
# - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219
|
||||||
- always_require_non_null_named_parameters
|
# - always_require_non_null_named_parameters # deprecated
|
||||||
# - always_specify_types # not support by built_value
|
# - always_specify_types # not support by built_value
|
||||||
- annotate_overrides
|
- annotate_overrides
|
||||||
# - avoid_annotating_with_dynamic # conflicts with always_specify_types
|
# - avoid_annotating_with_dynamic # conflicts with always_specify_types
|
||||||
|
|
@ -92,11 +90,11 @@ linter:
|
||||||
# hash_and_equals # For built_value memoized hash
|
# hash_and_equals # For built_value memoized hash
|
||||||
- implementation_imports
|
- implementation_imports
|
||||||
# - invariant_booleans # https://github.com/flutter/flutter/issues/5790
|
# - invariant_booleans # https://github.com/flutter/flutter/issues/5790
|
||||||
- iterable_contains_unrelated_type
|
# - iterable_contains_unrelated_type # deprecated
|
||||||
# - join_return_with_assignment # not yet tested
|
# - join_return_with_assignment # not yet tested
|
||||||
- library_names
|
- library_names
|
||||||
- library_prefixes
|
- library_prefixes
|
||||||
- list_remove_unrelated_type
|
# - list_remove_unrelated_type # deprecated
|
||||||
# - literal_only_boolean_expressions # https://github.com/flutter/flutter/issues/5791
|
# - literal_only_boolean_expressions # https://github.com/flutter/flutter/issues/5791
|
||||||
- no_adjacent_strings_in_list
|
- no_adjacent_strings_in_list
|
||||||
- no_duplicate_case_values
|
- no_duplicate_case_values
|
||||||
|
|
|
||||||
|
|
@ -315,7 +315,7 @@ class UserPermission extends EnumClass {
|
||||||
static UserPermission valueOf(String name) => _$permissionValueOf(name);
|
static UserPermission valueOf(String name) => _$permissionValueOf(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class EntityStatus {
|
abstract mixin class EntityStatus {
|
||||||
String get id;
|
String get id;
|
||||||
|
|
||||||
String get name;
|
String get name;
|
||||||
|
|
@ -352,7 +352,7 @@ class EntityStats {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class SelectableEntity {
|
abstract mixin class SelectableEntity {
|
||||||
String get id;
|
String get id;
|
||||||
|
|
||||||
bool matchesFilter(String? filter) => true;
|
bool matchesFilter(String? filter) => true;
|
||||||
|
|
@ -376,7 +376,7 @@ class EntityFields {
|
||||||
static const String isDeleted = 'is_deleted';
|
static const String isDeleted = 'is_deleted';
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class BaseEntity implements SelectableEntity {
|
abstract mixin class BaseEntity implements SelectableEntity {
|
||||||
static int counter = 0;
|
static int counter = 0;
|
||||||
|
|
||||||
static String get nextId => '${--counter}';
|
static String get nextId => '${--counter}';
|
||||||
|
|
@ -534,7 +534,7 @@ abstract class BaseEntity implements SelectableEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class HasActivities {
|
abstract mixin class HasActivities {
|
||||||
BuiltList<ActivityEntity> get activities;
|
BuiltList<ActivityEntity> get activities;
|
||||||
|
|
||||||
Iterable<ActivityEntity> getActivities({String? invoiceId, String? typeId}) {
|
Iterable<ActivityEntity> getActivities({String? invoiceId, String? typeId}) {
|
||||||
|
|
@ -550,11 +550,11 @@ abstract class HasActivities {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class BelongsToClient {
|
abstract mixin class BelongsToClient {
|
||||||
String? get clientId;
|
String? get clientId;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class BelongsToVendor {
|
abstract mixin class BelongsToVendor {
|
||||||
String get vendorId;
|
String get vendorId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/invoice_model.dart';
|
import 'package:invoiceninja_flutter/data/models/invoice_model.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
|
|
||||||
abstract class CalculateInvoiceTotal {
|
abstract mixin class CalculateInvoiceTotal {
|
||||||
bool get isAmountDiscount;
|
bool get isAmountDiscount;
|
||||||
|
|
||||||
String get taxName1;
|
String get taxName1;
|
||||||
|
|
|
||||||
|
|
@ -520,13 +520,13 @@ abstract class TaskEntity extends Object
|
||||||
if (taskItem[0] == false || taskItem[0] == null) {
|
if (taskItem[0] == false || taskItem[0] == null) {
|
||||||
startDate = 0;
|
startDate = 0;
|
||||||
} else {
|
} else {
|
||||||
startDate = (taskItem[0]).round();
|
startDate = taskItem[0].round();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (taskItem[1] == false || taskItem[1] == null) {
|
if (taskItem[1] == false || taskItem[1] == null) {
|
||||||
endDate = 0;
|
endDate = 0;
|
||||||
} else {
|
} else {
|
||||||
endDate = (taskItem[1]).round();
|
endDate = taskItem[1].round();
|
||||||
}
|
}
|
||||||
|
|
||||||
final taskTime = TaskTime(
|
final taskTime = TaskTime(
|
||||||
|
|
|
||||||
|
|
@ -193,10 +193,12 @@ void main({bool isTesting = false}) async {
|
||||||
|
|
||||||
event = event.copyWith(
|
event = event.copyWith(
|
||||||
environment: '${store.state.environment}'.split('.').last,
|
environment: '${store.state.environment}'.split('.').last,
|
||||||
|
/*
|
||||||
extra: <String, dynamic>{
|
extra: <String, dynamic>{
|
||||||
'server_version': account.currentVersion,
|
'server_version': account.currentVersion,
|
||||||
'route': state.uiState.currentRoute,
|
'route': state.uiState.currentRoute,
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
);
|
);
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
|
|
|
||||||
|
|
@ -172,14 +172,6 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
|
||||||
final window = WidgetsBinding.instance.window;
|
|
||||||
window.onPlatformBrightnessChanged = () {
|
|
||||||
WidgetsBinding.instance.handlePlatformBrightnessChanged();
|
|
||||||
widget.store!.dispatch(UpdateUserPreferences(
|
|
||||||
enableDarkModeSystem: window.platformBrightness == Brightness.dark));
|
|
||||||
setState(() {});
|
|
||||||
};
|
|
||||||
|
|
||||||
if (kIsWeb) {
|
if (kIsWeb) {
|
||||||
WebUtils.warnChanges(widget.store);
|
WebUtils.warnChanges(widget.store);
|
||||||
}
|
}
|
||||||
|
|
@ -235,6 +227,11 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
|
||||||
if (state.prefState.requireAuthentication && !_authenticated) {
|
if (state.prefState.requireAuthentication && !_authenticated) {
|
||||||
_authenticate();
|
_authenticate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final brightness = MediaQuery.of(context).platformBrightness;
|
||||||
|
widget.store!.dispatch(UpdateUserPreferences(
|
||||||
|
enableDarkModeSystem: brightness == Brightness.dark));
|
||||||
|
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,7 @@ Middleware<AppState> _createRefreshRequest(AuthRepository repository) {
|
||||||
|
|
||||||
String token;
|
String token;
|
||||||
bool hasToken = false;
|
bool hasToken = false;
|
||||||
if ((state.userCompany.token.token).isNotEmpty) {
|
if (state.userCompany.token.token.isNotEmpty) {
|
||||||
token = state.userCompany.token.token;
|
token = state.userCompany.token.token;
|
||||||
hasToken = true;
|
hasToken = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -199,7 +199,7 @@ List<String?> taskList(
|
||||||
final list = taskMap.keys.where((taskId) {
|
final list = taskMap.keys.where((taskId) {
|
||||||
final task = taskMap[taskId];
|
final task = taskMap[taskId];
|
||||||
if ((clientId ?? '').isNotEmpty &&
|
if ((clientId ?? '').isNotEmpty &&
|
||||||
(task!.clientId).isNotEmpty &&
|
task!.clientId.isNotEmpty &&
|
||||||
task.clientId != clientId) {
|
task.clientId != clientId) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import 'package:built_value/built_value.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
||||||
|
|
||||||
abstract class EntityUIState {
|
abstract mixin class EntityUIState {
|
||||||
bool get isCreatingNew;
|
bool get isCreatingNew;
|
||||||
|
|
||||||
String get editingId;
|
String get editingId;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
// Dart imports:
|
// Dart imports:
|
||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
// Flutter imports:
|
// Flutter imports:
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
|
@ -59,12 +58,17 @@ class _MobileWebViewState extends State<_MobileWebView>
|
||||||
super.didUpdateWidget(oldWidget);
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
if (widget.html != oldWidget.html) {
|
if (widget.html != oldWidget.html) {
|
||||||
|
_webViewController.loadHtmlString(widget.html!);
|
||||||
|
|
||||||
|
/*
|
||||||
_webViewController.loadUrl(Uri.dataFromString(widget.html!,
|
_webViewController.loadUrl(Uri.dataFromString(widget.html!,
|
||||||
mimeType: 'text/html', encoding: Encoding.getByName('utf-8'))
|
mimeType: 'text/html', encoding: Encoding.getByName('utf-8'))
|
||||||
.toString());
|
.toString());
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
super.build(context);
|
super.build(context);
|
||||||
|
|
@ -79,4 +83,5 @@ class _MobileWebViewState extends State<_MobileWebView>
|
||||||
javascriptMode: JavascriptMode.disabled,
|
javascriptMode: JavascriptMode.disabled,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,10 @@ class CopyToClipboard extends StatelessWidget {
|
||||||
)
|
)
|
||||||
: child;
|
: child;
|
||||||
final localization = AppLocalization.of(context);
|
final localization = AppLocalization.of(context);
|
||||||
final onTap = () {
|
final onTap = value == null
|
||||||
Clipboard.setData(ClipboardData(text: value));
|
? null
|
||||||
|
: () {
|
||||||
|
Clipboard.setData(ClipboardData(text: value!));
|
||||||
|
|
||||||
var valueStr = value!.replaceAll('\n', ' ');
|
var valueStr = value!.replaceAll('\n', ' ');
|
||||||
if (value!.length > 20) {
|
if (value!.length > 20) {
|
||||||
|
|
|
||||||
|
|
@ -440,7 +440,7 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
return EditScaffold(
|
return EditScaffold(
|
||||||
entity: invoice,
|
entity: invoice,
|
||||||
title: localization!.sendEmail,
|
title: localization!.sendEmail,
|
||||||
onCancelPressed: (context) => viewEntity(entity: invoice!),
|
onCancelPressed: (context) => viewEntity(entity: invoice),
|
||||||
saveLabel: localization.send,
|
saveLabel: localization.send,
|
||||||
onSavePressed: (context) {
|
onSavePressed: (context) {
|
||||||
if (state!.account.accountSmsVerified || state.isSelfHosted) {
|
if (state!.account.accountSmsVerified || state.isSelfHosted) {
|
||||||
|
|
@ -522,7 +522,7 @@ class _InvoiceEmailViewState extends State<InvoiceEmailView>
|
||||||
child: EditScaffold(
|
child: EditScaffold(
|
||||||
entity: invoice,
|
entity: invoice,
|
||||||
title: localization!.sendEmail,
|
title: localization!.sendEmail,
|
||||||
onCancelPressed: (context) => viewEntity(entity: invoice!),
|
onCancelPressed: (context) => viewEntity(entity: invoice),
|
||||||
appBarBottom: TabBar(
|
appBarBottom: TabBar(
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ class AppListTile extends StatelessWidget {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Clipboard.setData(ClipboardData(text: copyValue ?? title));
|
Clipboard.setData(ClipboardData(text: copyValue ?? title ?? ''));
|
||||||
showToast(AppLocalization.of(context)!
|
showToast(AppLocalization.of(context)!
|
||||||
.copiedToClipboard
|
.copiedToClipboard
|
||||||
.replaceFirst(':value', copyValue ?? title!));
|
.replaceFirst(':value', copyValue ?? title!));
|
||||||
|
|
|
||||||
|
|
@ -280,7 +280,7 @@ class _MenuDrawerState extends State<MenuDrawer> {
|
||||||
items: [
|
items: [
|
||||||
...state.companies
|
...state.companies
|
||||||
.map((CompanyEntity company) => DropdownMenuItem<String>(
|
.map((CompanyEntity company) => DropdownMenuItem<String>(
|
||||||
value: (state.companies.indexOf(company)).toString(),
|
value: state.companies.indexOf(company).toString(),
|
||||||
child: _companyListItem(company)))
|
child: _companyListItem(company)))
|
||||||
.toList(),
|
.toList(),
|
||||||
if (state.canAddCompany)
|
if (state.canAddCompany)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/*
|
||||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
@ -1003,3 +1004,5 @@ class _NullWidget extends Widget {
|
||||||
@override
|
@override
|
||||||
Element createElement() => throw UnimplementedError();
|
Element createElement() => throw UnimplementedError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/*
|
||||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
@ -63,3 +64,4 @@ abstract class AppDataTableSource extends ChangeNotifier {
|
||||||
/// If the selected row count changes, call [notifyListeners].
|
/// If the selected row count changes, call [notifyListeners].
|
||||||
int get selectedRowCount;
|
int get selectedRowCount;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/*
|
||||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
// Copyright 2014 The Flutter Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
@ -518,3 +519,4 @@ class AppPaginatedDataTableState extends State<AppPaginatedDataTable> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
// Flutter imports:
|
// Flutter imports:
|
||||||
import 'package:flutter/material.dart' hide DataRow, DataCell, DataColumn;
|
|
||||||
|
|
||||||
// Package imports:
|
// Package imports:
|
||||||
import 'package:built_collection/built_collection.dart';
|
import 'package:built_collection/built_collection.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
|
|
||||||
|
|
@ -14,13 +14,11 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/pref_state.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table_source.dart';
|
|
||||||
import 'package:invoiceninja_flutter/utils/colors.dart';
|
import 'package:invoiceninja_flutter/utils/colors.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
class EntityDataTableSource extends AppDataTableSource {
|
class EntityDataTableSource extends DataTableSource {
|
||||||
EntityDataTableSource(
|
EntityDataTableSource(
|
||||||
{required this.context,
|
{required this.context,
|
||||||
required this.editingId,
|
required this.editingId,
|
||||||
|
|
@ -129,7 +127,7 @@ class EntityDataTableSource extends AppDataTableSource {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
onTap: () => onTap(entity),
|
onTap: () => onTap(entity),
|
||||||
backgroundColor: backgroundColor,
|
//backgroundColor: backgroundColor,
|
||||||
),
|
),
|
||||||
...tableColumns!.map(
|
...tableColumns!.map(
|
||||||
(field) => DataCell(
|
(field) => DataCell(
|
||||||
|
|
@ -146,7 +144,7 @@ class EntityDataTableSource extends AppDataTableSource {
|
||||||
),
|
),
|
||||||
onTap: () => onTap(entity),
|
onTap: () => onTap(entity),
|
||||||
//onLongPress: () => selectEntity(entity: entity, context: context, longPress: true),
|
//onLongPress: () => selectEntity(entity: entity, context: context, longPress: true),
|
||||||
backgroundColor: backgroundColor,
|
//backgroundColor: backgroundColor,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import 'dart:math';
|
||||||
// Flutter imports:
|
// Flutter imports:
|
||||||
import 'package:built_collection/built_collection.dart';
|
import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:collection/collection.dart' show IterableNullableExtension;
|
import 'package:collection/collection.dart' show IterableNullableExtension;
|
||||||
import 'package:flutter/material.dart' hide DataRow, DataCell, DataColumn;
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
// Package imports:
|
// Package imports:
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
|
@ -26,8 +26,6 @@ import 'package:invoiceninja_flutter/ui/app/lists/list_filter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
|
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_paginated_data_table.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
|
import 'package:invoiceninja_flutter/ui/app/tables/entity_datatable.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/icons.dart';
|
import 'package:invoiceninja_flutter/utils/icons.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
@ -247,8 +245,8 @@ class _EntityListState extends State<EntityList> {
|
||||||
primary: true,
|
primary: true,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 16),
|
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||||
child: AppPaginatedDataTable(
|
child: PaginatedDataTable(
|
||||||
hasActionsColumn: true,
|
//hasActionsColumn: true,
|
||||||
onSelectAll: (value) {
|
onSelectAll: (value) {
|
||||||
final startIndex =
|
final startIndex =
|
||||||
min(_firstRowIndex, entityList.length - 1);
|
min(_firstRowIndex, entityList.length - 1);
|
||||||
|
|
@ -294,11 +292,9 @@ class _EntityListState extends State<EntityList> {
|
||||||
sortAscending: listUIState.sortAscending,
|
sortAscending: listUIState.sortAscending,
|
||||||
rowsPerPage: state.prefState.rowsPerPage,
|
rowsPerPage: state.prefState.rowsPerPage,
|
||||||
onPageChanged: (row) {
|
onPageChanged: (row) {
|
||||||
if (row != null) {
|
|
||||||
_firstRowIndex = row;
|
_firstRowIndex = row;
|
||||||
store.dispatch(UpdateLastHistory(
|
store.dispatch(UpdateLastHistory(
|
||||||
(row / state.prefState.rowsPerPage).floor()));
|
(row / state.prefState.rowsPerPage).floor()));
|
||||||
}
|
|
||||||
},
|
},
|
||||||
initialFirstRowIndex: _firstRowIndex,
|
initialFirstRowIndex: _firstRowIndex,
|
||||||
availableRowsPerPage: [
|
availableRowsPerPage: [
|
||||||
|
|
@ -469,7 +465,7 @@ class _EntityListState extends State<EntityList> {
|
||||||
multiselect: true,
|
multiselect: true,
|
||||||
completer: Completer<Null>()
|
completer: Completer<Null>()
|
||||||
..future.then<Null>(
|
..future.then<Null>(
|
||||||
((_) => widget.onClearMultiselect())),
|
(_) => widget.onClearMultiselect()),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
onCancelPressed: (_) => widget.onClearMultiselect(),
|
onCancelPressed: (_) => widget.onClearMultiselect(),
|
||||||
|
|
|
||||||
|
|
@ -73,8 +73,8 @@ class CompanyGatewayScreen extends StatelessWidget {
|
||||||
entities: companyGateways,
|
entities: companyGateways,
|
||||||
multiselect: true,
|
multiselect: true,
|
||||||
completer: Completer<Null>()
|
completer: Completer<Null>()
|
||||||
..future.then<Null>(((_) =>
|
..future.then<Null>((_) =>
|
||||||
store.dispatch(ClearCompanyGatewayMultiselect()))),
|
store.dispatch(ClearCompanyGatewayMultiselect())),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
onCancelPressed: (context) =>
|
onCancelPressed: (context) =>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
// Flutter imports:
|
// Flutter imports:
|
||||||
|
|
||||||
import 'package:collection/collection.dart' show IterableNullableExtension;
|
import 'package:collection/collection.dart' show IterableNullableExtension;
|
||||||
import 'package:flutter/material.dart' hide DataRow, DataCell, DataColumn;
|
|
||||||
import 'package:flutter/material.dart' as mt;
|
import 'package:flutter/material.dart' as mt;
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
// Package imports:
|
// Package imports:
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
|
@ -33,9 +33,6 @@ import 'package:invoiceninja_flutter/ui/app/history_drawer_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart';
|
import 'package:invoiceninja_flutter/ui/app/menu_drawer_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
|
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_data_table_source.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/tables/app_paginated_data_table.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/upgrade_dialog.dart';
|
import 'package:invoiceninja_flutter/ui/app/upgrade_dialog.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/reports/report_charts.dart';
|
import 'package:invoiceninja_flutter/ui/reports/report_charts.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/reports/reports_screen_vm.dart';
|
import 'package:invoiceninja_flutter/ui/reports/reports_screen_vm.dart';
|
||||||
|
|
@ -160,7 +157,8 @@ class ReportsScreen extends StatelessWidget {
|
||||||
final columnTitle = state.company.getCustomFieldLabel(column);
|
final columnTitle = state.company.getCustomFieldLabel(column);
|
||||||
return DropdownMenuItem(
|
return DropdownMenuItem(
|
||||||
child: Text(columnTitle.isEmpty
|
child: Text(columnTitle.isEmpty
|
||||||
? localization.lookup(column): columnTitle),
|
? localization.lookup(column)
|
||||||
|
: columnTitle),
|
||||||
value: column,
|
value: column,
|
||||||
);
|
);
|
||||||
}).toList(),
|
}).toList(),
|
||||||
|
|
@ -590,7 +588,7 @@ class _ReportDataTableState extends State<ReportDataTable> {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// ignore: invalid_use_of_visible_for_testing_member, invalid_use_of_protected_member
|
// ignore: invalid_use_of_visible_for_testing_member, invalid_use_of_protected_member
|
||||||
dataTableSource.notifyListeners();
|
//dataTableSource.notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -685,9 +683,9 @@ class _ReportDataTableState extends State<ReportDataTable> {
|
||||||
),
|
),
|
||||||
SingleChildScrollView(
|
SingleChildScrollView(
|
||||||
padding: const EdgeInsets.all(12),
|
padding: const EdgeInsets.all(12),
|
||||||
child: AppPaginatedDataTable(
|
child: PaginatedDataTable(
|
||||||
//showFirstLastButtons: true,
|
//showFirstLastButtons: true,
|
||||||
subtractOneFromCount: true,
|
//subtractOneFromCount: true,
|
||||||
header: SizedBox(),
|
header: SizedBox(),
|
||||||
sortColumnIndex: sortedColumns.contains(reportSettings.sortColumn)
|
sortColumnIndex: sortedColumns.contains(reportSettings.sortColumn)
|
||||||
? sortedColumns.indexOf(reportSettings.sortColumn)
|
? sortedColumns.indexOf(reportSettings.sortColumn)
|
||||||
|
|
@ -794,7 +792,7 @@ ReportColumnType getReportColumnType(String? column, BuildContext context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ReportDataTableSource extends AppDataTableSource {
|
class ReportDataTableSource extends DataTableSource {
|
||||||
ReportDataTableSource({
|
ReportDataTableSource({
|
||||||
required this.context,
|
required this.context,
|
||||||
required this.textEditingControllers,
|
required this.textEditingControllers,
|
||||||
|
|
@ -1124,7 +1122,7 @@ class ReportResult {
|
||||||
))
|
))
|
||||||
else if (getReportColumnType(column, context) == ReportColumnType.age)
|
else if (getReportColumnType(column, context) == ReportColumnType.age)
|
||||||
DataCell(AppDropdownButton<String>(
|
DataCell(AppDropdownButton<String>(
|
||||||
value: (textEditingControllers[column]!.text).isNotEmpty &&
|
value: textEditingControllers[column]!.text.isNotEmpty &&
|
||||||
textEditingControllers[column]!.text != 'null'
|
textEditingControllers[column]!.text != 'null'
|
||||||
? textEditingControllers[column]!.text
|
? textEditingControllers[column]!.text
|
||||||
: null,
|
: null,
|
||||||
|
|
@ -1464,7 +1462,8 @@ class ReportResult {
|
||||||
mt.DataColumn(
|
mt.DataColumn(
|
||||||
label: Text(
|
label: Text(
|
||||||
company.getCustomFieldLabel(column!).isEmpty
|
company.getCustomFieldLabel(column!).isEmpty
|
||||||
? localization.lookup(column): company.getCustomFieldLabel(column),
|
? localization.lookup(column)
|
||||||
|
: company.getCustomFieldLabel(column),
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
numeric: true,
|
numeric: true,
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,7 @@ import 'package:flutter/services.dart';
|
||||||
// Package imports:
|
// Package imports:
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
import 'package:flutter_styled_toast/flutter_styled_toast.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/company/company_selectors.dart';
|
|
||||||
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
|
||||||
import 'package:timeago/timeago.dart' as timeago;
|
|
||||||
|
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
|
|
@ -22,11 +20,9 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/color_picker.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/color_picker.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/live_text.dart';
|
|
||||||
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/device_settings_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/device_settings_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
import 'package:invoiceninja_flutter/utils/dialogs.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||||
|
|
@ -320,6 +316,7 @@ class _DeviceSettingsState extends State<DeviceSettings>
|
||||||
return ListTile(
|
return ListTile(
|
||||||
leading: Icon(Icons.refresh),
|
leading: Icon(Icons.refresh),
|
||||||
title: Text(localization.refreshData),
|
title: Text(localization.refreshData),
|
||||||
|
/*
|
||||||
subtitle: LiveText(() {
|
subtitle: LiveText(() {
|
||||||
if (state.userCompanyState.lastUpdated == 0) {
|
if (state.userCompanyState.lastUpdated == 0) {
|
||||||
return '';
|
return '';
|
||||||
|
|
@ -336,6 +333,7 @@ class _DeviceSettingsState extends State<DeviceSettings>
|
||||||
onTap: () {
|
onTap: () {
|
||||||
viewModel.onRefreshTap(context);
|
viewModel.onRefreshTap(context);
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
ListTile(
|
ListTile(
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ class TaskStatusScreen extends StatelessWidget {
|
||||||
multiselect: true,
|
multiselect: true,
|
||||||
completer: Completer<Null>()
|
completer: Completer<Null>()
|
||||||
..future.then<Null>(
|
..future.then<Null>(
|
||||||
((_) => store.dispatch(ClearTaskStatusMultiselect()))),
|
(_) => store.dispatch(ClearTaskStatusMultiselect())),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
label: localization!.actions,
|
label: localization!.actions,
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <desktop_drop/desktop_drop_plugin.h>
|
#include <desktop_drop/desktop_drop_plugin.h>
|
||||||
|
#include <file_selector_linux/file_selector_plugin.h>
|
||||||
#include <printing/printing_plugin.h>
|
#include <printing/printing_plugin.h>
|
||||||
#include <screen_retriever/screen_retriever_plugin.h>
|
#include <screen_retriever/screen_retriever_plugin.h>
|
||||||
#include <sentry_flutter/sentry_flutter_plugin.h>
|
#include <sentry_flutter/sentry_flutter_plugin.h>
|
||||||
|
|
@ -18,6 +19,9 @@ void fl_register_plugins(FlPluginRegistry* registry) {
|
||||||
g_autoptr(FlPluginRegistrar) desktop_drop_registrar =
|
g_autoptr(FlPluginRegistrar) desktop_drop_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopDropPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopDropPlugin");
|
||||||
desktop_drop_plugin_register_with_registrar(desktop_drop_registrar);
|
desktop_drop_plugin_register_with_registrar(desktop_drop_registrar);
|
||||||
|
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
|
||||||
|
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
|
||||||
|
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
|
||||||
g_autoptr(FlPluginRegistrar) printing_registrar =
|
g_autoptr(FlPluginRegistrar) printing_registrar =
|
||||||
fl_plugin_registry_get_registrar_for_plugin(registry, "PrintingPlugin");
|
fl_plugin_registry_get_registrar_for_plugin(registry, "PrintingPlugin");
|
||||||
printing_plugin_register_with_registrar(printing_registrar);
|
printing_plugin_register_with_registrar(printing_registrar);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
desktop_drop
|
desktop_drop
|
||||||
|
file_selector_linux
|
||||||
printing
|
printing
|
||||||
screen_retriever
|
screen_retriever
|
||||||
sentry_flutter
|
sentry_flutter
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import FlutterMacOS
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
import desktop_drop
|
import desktop_drop
|
||||||
|
import file_selector_macos
|
||||||
import in_app_purchase_storekit
|
import in_app_purchase_storekit
|
||||||
import in_app_review
|
import in_app_review
|
||||||
import package_info
|
import package_info
|
||||||
|
|
@ -25,6 +26,7 @@ import window_manager
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin"))
|
DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin"))
|
||||||
|
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
|
||||||
InAppPurchasePlugin.register(with: registry.registrar(forPlugin: "InAppPurchasePlugin"))
|
InAppPurchasePlugin.register(with: registry.registrar(forPlugin: "InAppPurchasePlugin"))
|
||||||
InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin"))
|
InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin"))
|
||||||
FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin"))
|
FLTPackageInfoPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlugin"))
|
||||||
|
|
|
||||||
333
pubspec.lock
333
pubspec.lock
|
|
@ -37,10 +37,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: async
|
name: async
|
||||||
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
|
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.10.0"
|
version: "2.11.0"
|
||||||
attributed_text:
|
attributed_text:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -68,11 +68,12 @@ packages:
|
||||||
boardview:
|
boardview:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: boardview
|
path: "."
|
||||||
sha256: a3319f868baf036b6c217dc4f35c152c4432207552433d94841aa8d3059c6170
|
ref: HEAD
|
||||||
url: "https://pub.dev"
|
resolved-ref: "80cd60f55db250ea2c86ed5762e4c55337422efe"
|
||||||
source: hosted
|
url: "https://github.com/BenPoell/FlutterBoardView.git"
|
||||||
version: "0.2.2"
|
source: git
|
||||||
|
version: "0.2.3"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -165,10 +166,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: characters
|
name: characters
|
||||||
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
|
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.1"
|
version: "1.3.0"
|
||||||
charcode:
|
charcode:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -229,10 +230,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
|
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.17.0"
|
version: "1.17.2"
|
||||||
console:
|
console:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -349,10 +350,42 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: file_picker
|
name: file_picker
|
||||||
sha256: d090ae03df98b0247b82e5928f44d1b959867049d18d73635e2e0bc3f49542b9
|
sha256: "9d6e95ec73abbd31ec54d0e0df8a961017e165aba1395e462e5b31ea0c165daf"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.2.5"
|
version: "5.3.1"
|
||||||
|
file_selector_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: file_selector_linux
|
||||||
|
sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.9.2+1"
|
||||||
|
file_selector_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: file_selector_macos
|
||||||
|
sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.9.3+3"
|
||||||
|
file_selector_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: file_selector_platform_interface
|
||||||
|
sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.6.1"
|
||||||
|
file_selector_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: file_selector_windows
|
||||||
|
sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.9.3+1"
|
||||||
fixnum:
|
fixnum:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -378,10 +411,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_cache_manager
|
name: flutter_cache_manager
|
||||||
sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3"
|
sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.3.0"
|
version: "3.3.1"
|
||||||
flutter_colorpicker:
|
flutter_colorpicker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -412,10 +445,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: flutter_plugin_android_lifecycle
|
name: flutter_plugin_android_lifecycle
|
||||||
sha256: "4bef634684b2c7f3468c77c766c831229af829a0cd2d4ee6c1b99558bd14e5d2"
|
sha256: f185ac890306b5779ecbd611f52502d8d4d63d27703ef73161ca0407e815f02c
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.8"
|
version: "2.0.16"
|
||||||
flutter_redux:
|
flutter_redux:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -428,18 +461,18 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_slidable
|
name: flutter_slidable
|
||||||
sha256: "6c68e1fad129b4b807b2218ef4cf7f7f6f61c5ec8861c990dc2278d9d03cb09f"
|
sha256: cc4231579e3eae41ae166660df717f4bad1359c87f4a4322ad8ba1befeb3d2be
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.0"
|
version: "3.0.0"
|
||||||
flutter_staggered_grid_view:
|
flutter_staggered_grid_view:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_staggered_grid_view
|
name: flutter_staggered_grid_view
|
||||||
sha256: "1312314293acceb65b92754298754801b0e1f26a1845833b740b30415bbbcf07"
|
sha256: "19e7abb550c96fbfeb546b23f3ff356ee7c59a019a651f8f102a4ba9b7349395"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.2"
|
version: "0.7.0"
|
||||||
flutter_styled_toast:
|
flutter_styled_toast:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -503,14 +536,22 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.1.1"
|
||||||
|
google_identity_services_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: google_identity_services_web
|
||||||
|
sha256: "554748f2478619076128152c58905620d10f9c7fc270ff1d3a9675f9f53838ed"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.1+1"
|
||||||
google_sign_in:
|
google_sign_in:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: google_sign_in
|
name: google_sign_in
|
||||||
sha256: "821f354c053d51a2d417b02d42532a19a6ea8057d2f9ebb8863c07d81c98aaf9"
|
sha256: f45038d27bcad37498f282295ae97eece23c9349fc16649154067b87b9f1fd03
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.4.4"
|
version: "6.1.5"
|
||||||
google_sign_in_android:
|
google_sign_in_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -531,18 +572,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: google_sign_in_platform_interface
|
name: google_sign_in_platform_interface
|
||||||
sha256: fece762f0d2dd762ebde43ad70662a209ff6ee034111976549c392f7763d9264
|
sha256: "35ceee5f0eadc1c07b0b4af7553246e315c901facbb7d3dadf734ba2693ceec4"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.1"
|
version: "2.4.2"
|
||||||
google_sign_in_web:
|
google_sign_in_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: google_sign_in_web
|
name: google_sign_in_web
|
||||||
sha256: "75cc41ebc53b1756320ee14d9c3018ad3e6cea298147dbcd86e9d0c8d6720b40"
|
sha256: "939e9172a378ec4eaeb7f71eeddac9b55ebd0e8546d336daec476a68e5279766"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.10.2+1"
|
version: "0.12.0+5"
|
||||||
graphs:
|
graphs:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -603,66 +644,90 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: image_cropper
|
name: image_cropper
|
||||||
sha256: "85324928ee8a8be35a529446435ca53067865b9353c8681983472eeec66d780f"
|
sha256: "542c3453109d16bcc388e43ae2276044d2cd6a6d20c68bdcff2c94ab9363ea15"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "4.0.1"
|
||||||
image_cropper_for_web:
|
image_cropper_for_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_cropper_for_web
|
name: image_cropper_for_web
|
||||||
sha256: "09e93a8ec0435adcaa23622ac090442872f18145d70b9ff605ffedcf97d56255"
|
sha256: "89c936aa772a35b69ca67b78049ae9fa163a4fb8da2f6dee3893db8883fb49d2"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.3"
|
version: "2.0.0"
|
||||||
image_cropper_platform_interface:
|
image_cropper_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_cropper_platform_interface
|
name: image_cropper_platform_interface
|
||||||
sha256: "62349e3aab63873ea9b9ab9f69d036ab8a0d74b3004beec4303981386cb9273f"
|
sha256: b232175c132b2f7ede3e1f101652bcd635cb4079a77c6dded8e6d32e6578d685
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.3"
|
version: "4.0.0"
|
||||||
image_picker:
|
image_picker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: image_picker
|
name: image_picker
|
||||||
sha256: "22207768556b82d55ec70166824350fee32298732d5efa4d6e756f848f51f66a"
|
sha256: "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.6+3"
|
version: "1.0.4"
|
||||||
image_picker_android:
|
image_picker_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_android
|
name: image_picker_android
|
||||||
sha256: "68d067baf7f6e401b1124ee83dd6967e67847314250fd68012aab34a69beb344"
|
sha256: "0c7b83bbe2980c8a8e36e974f055e11e51675784e13a4762889feed0f3937ff2"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.5+7"
|
version: "0.8.8+1"
|
||||||
image_picker_for_web:
|
image_picker_for_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_for_web
|
name: image_picker_for_web
|
||||||
sha256: "66fc6e3877bbde82c33d122f3588777c3784ac5bd7d1cdd79213ef7aecb85b34"
|
sha256: "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.11"
|
version: "3.0.1"
|
||||||
image_picker_ios:
|
image_picker_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_ios
|
name: image_picker_ios
|
||||||
sha256: "39aa70b5f1e5e7c94585b9738632d5fdb764a5655e40cd9e7b95fbd2fc50c519"
|
sha256: c5538cacefacac733c724be7484377923b476216ad1ead35a0d2eadcdc0fc497
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.6+9"
|
version: "0.8.8+2"
|
||||||
|
image_picker_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: image_picker_linux
|
||||||
|
sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.1+1"
|
||||||
|
image_picker_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: image_picker_macos
|
||||||
|
sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.1+1"
|
||||||
image_picker_platform_interface:
|
image_picker_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_platform_interface
|
name: image_picker_platform_interface
|
||||||
sha256: "1991219d9dbc42a99aff77e663af8ca51ced592cd6685c9485e3458302d3d4f8"
|
sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.6.3"
|
version: "2.9.1"
|
||||||
|
image_picker_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: image_picker_windows
|
||||||
|
sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.2.1+1"
|
||||||
import_sorter:
|
import_sorter:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
|
@ -827,26 +892,26 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
|
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.13"
|
version: "0.12.16"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
|
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0"
|
version: "0.5.0"
|
||||||
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
|
||||||
sha256: "8ef8562d16e747b2d93e5da5c2508931588939c5c00ebc8e2768e803db7dfd3c"
|
sha256: "6f986b7a51f3ad4c00e33c5c84e8de1bdd140489bbcdc8b66fc1283dad4dea5a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.7096"
|
version: "7.0.7296"
|
||||||
memoize:
|
memoize:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -859,10 +924,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
|
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.0"
|
version: "1.9.1"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -888,13 +953,13 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.8.2"
|
version: "3.8.2"
|
||||||
navigation_builder:
|
navigation_builder:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: navigation_builder
|
name: navigation_builder
|
||||||
sha256: cbf966253e1f5b1798f3fbcae571fb6d452e5c7a606a5c451e2b9a3d343920f0
|
sha256: "95e25150191d9cd4e4b86504f33cd9e786d1e6732edb2e3e635bbedc5ef0dea7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.0.2+4"
|
version: "0.0.3"
|
||||||
node_preamble:
|
node_preamble:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -963,10 +1028,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
|
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.2"
|
version: "1.8.3"
|
||||||
path_parsing:
|
path_parsing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -979,10 +1044,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: path_provider
|
name: path_provider
|
||||||
sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9"
|
sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.13"
|
version: "2.0.15"
|
||||||
path_provider_android:
|
path_provider_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1019,58 +1084,58 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: path_provider_windows
|
name: path_provider_windows
|
||||||
sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d"
|
sha256: "1cb68ba4cd3a795033de62ba1b7b4564dace301f952de6bfb3cd91b202b6ee96"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.7"
|
||||||
pdf:
|
pdf:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: pdf
|
name: pdf
|
||||||
sha256: "6cd57e8e6d052bd1078f18e0dc7cd6701fad6288231c1ce99d66ef5034d14e61"
|
sha256: "586d3debf5432e5377044754032cfa53ab45e9abf371d4865e9ad5019570e246"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.9.0"
|
version: "3.10.1"
|
||||||
pedantic:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: pedantic
|
|
||||||
sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "1.11.1"
|
|
||||||
permission_handler:
|
permission_handler:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: permission_handler
|
name: permission_handler
|
||||||
sha256: e474a8b0de5a3ce6f0960599c0b24ab3441a200a8705f4131e7bb926027100db
|
sha256: "284a66179cabdf942f838543e10413246f06424d960c92ba95c84439154fcac8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.1.0"
|
version: "11.0.1"
|
||||||
permission_handler_android:
|
permission_handler_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_android
|
name: permission_handler_android
|
||||||
sha256: a512e0fa8abcb0659d938ec2df93a70eb1df1fdea5fdc6d79a866bfd858a28fc
|
sha256: ace7d15a3d1a4a0b91c041d01e5405df221edb9de9116525efc773c74e6fc790
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.0.2+1"
|
version: "11.0.5"
|
||||||
permission_handler_apple:
|
permission_handler_apple:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_apple
|
name: permission_handler_apple
|
||||||
sha256: "9c370ef6a18b1c4b2f7f35944d644a56aa23576f23abee654cf73968de93f163"
|
sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.0.7"
|
version: "9.1.4"
|
||||||
permission_handler_platform_interface:
|
permission_handler_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: permission_handler_platform_interface
|
name: permission_handler_platform_interface
|
||||||
sha256: "68abbc472002b5e6dfce47fe9898c6b7d8328d58b5d2524f75e277c07a97eb84"
|
sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.9.0"
|
version: "3.11.5"
|
||||||
|
permission_handler_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: permission_handler_windows
|
||||||
|
sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.3"
|
||||||
petitparser:
|
petitparser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1091,10 +1156,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: pinput
|
name: pinput
|
||||||
sha256: "1773743c188cdd2f8d0398ea708ec72645bb41ac9311755c4f7bb03a4184bdcf"
|
sha256: a92b55ecf9c25d1b9e100af45905385d5bc34fc9b6b04177a9e82cb88fe4d805
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.31"
|
version: "3.0.1"
|
||||||
platform:
|
platform:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1131,10 +1196,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: printing
|
name: printing
|
||||||
sha256: fe654363cd0114b50a0815b24e96957c7e9a60eb4e3b7ccfe71cf3f2b7114cb2
|
sha256: e7c383dca95ee7b88c02dc1c66638628d3dcdc2fb2cc47e7a595facd47e46b56
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.10.1"
|
version: "5.11.0"
|
||||||
process:
|
process:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1228,34 +1293,34 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: sentry
|
name: sentry
|
||||||
sha256: "81c1f32496ff04476d6ddfe5894215b1034d185301d2e3dffd272853392c5ea7"
|
sha256: "830667eadc0398fea3a3424ed1b74568e2db603a42758d0922e2f2974ce55a60"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.20.1"
|
version: "7.10.1"
|
||||||
sentry_flutter:
|
sentry_flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: sentry_flutter
|
name: sentry_flutter
|
||||||
sha256: "5ca2c8d86c220f7ad3109bedceb2c51b0e90bac5218e732be98ea2cba8006461"
|
sha256: "6730f41b304c6fb0fa590dacccaf73ba11082fc64b274cfe8a79776f2b95309c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.20.1"
|
version: "7.10.1"
|
||||||
share_plus:
|
share_plus:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: share_plus
|
name: share_plus
|
||||||
sha256: "8c6892037b1824e2d7e8f59d54b3105932899008642e6372e5079c6939b4b625"
|
sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.3.1"
|
version: "7.1.0"
|
||||||
share_plus_platform_interface:
|
share_plus_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: share_plus_platform_interface
|
name: share_plus_platform_interface
|
||||||
sha256: "82ddd4ab9260c295e6e39612d4ff00390b9a7a21f1bb1da771e2f232d80ab8a1"
|
sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.0"
|
version: "3.3.0"
|
||||||
shared_preferences:
|
shared_preferences:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1348,10 +1413,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: sign_in_with_apple
|
name: sign_in_with_apple
|
||||||
sha256: ac3b113767dfdd765078c507dad9d4d9fe96b669cc7bd88fc36fc15376fb3400
|
sha256: "0975c23b9f8b30a80e27d5659a75993a093d4cb5f4eb7d23a9ccc586fea634e0"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.3.0"
|
version: "5.0.0"
|
||||||
sign_in_with_apple_platform_interface:
|
sign_in_with_apple_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1377,10 +1442,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: smart_auth
|
name: smart_auth
|
||||||
sha256: "8cfaec55b77d5930ed1666bb7ae70db5bade099bb1422401386853b400962113"
|
sha256: a25229b38c02f733d0a4e98d941b42bed91a976cb589e934895e60ccfa674cf6
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.8"
|
version: "1.1.1"
|
||||||
source_gen:
|
source_gen:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1409,10 +1474,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: source_span
|
name: source_span
|
||||||
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
|
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.10.0"
|
||||||
sqflite:
|
sqflite:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1441,10 +1506,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: states_rebuilder
|
name: states_rebuilder
|
||||||
sha256: e8612993e97a5caeb9d983f6081304ef10868ba436ae49a723ee089ab51e2d12
|
sha256: bf1a5ab5c543acdefce35e60f482eb7ab592339484fe3266d147ee597f18dc92
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.2.0"
|
version: "6.3.0"
|
||||||
stream_channel:
|
stream_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1521,26 +1586,26 @@ packages:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: test
|
name: test
|
||||||
sha256: a5fcd2d25eeadbb6589e80198a47d6a464ba3e2049da473943b8af9797900c2d
|
sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.22.0"
|
version: "1.24.3"
|
||||||
test_api:
|
test_api:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
|
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.16"
|
version: "0.6.0"
|
||||||
test_core:
|
test_core:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_core
|
name: test_core
|
||||||
sha256: "0ef9755ec6d746951ba0aabe62f874b707690b5ede0fecc818b138fcc9b14888"
|
sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.20"
|
version: "0.5.3"
|
||||||
timeago:
|
timeago:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1609,10 +1674,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_linux
|
name: url_launcher_linux
|
||||||
sha256: e29039160ab3730e42f3d811dc2a6d5f2864b90a70fb765ea60144b03307f682
|
sha256: b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.3"
|
version: "3.0.6"
|
||||||
url_launcher_macos:
|
url_launcher_macos:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1633,18 +1698,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_web
|
name: url_launcher_web
|
||||||
sha256: "574cfbe2390666003c3a1d129bdc4574aaa6728f0c00a4829a81c316de69dd9b"
|
sha256: "2942294a500b4fa0b918685aff406773ba0a4cd34b7f42198742a94083020ce5"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.15"
|
version: "2.0.20"
|
||||||
url_launcher_windows:
|
url_launcher_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_windows
|
name: url_launcher_windows
|
||||||
sha256: "97c9067950a0d09cbd93e2e3f0383d1403989362b97102fbf446473a48079a4b"
|
sha256: "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.4"
|
version: "3.0.8"
|
||||||
uuid:
|
uuid:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1681,10 +1746,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7
|
sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "9.4.0"
|
version: "11.7.1"
|
||||||
|
vs_scrollbar:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vs_scrollbar
|
||||||
|
sha256: "6a2df5e2597064e8dbb8fc3679065d8e748d711fa979f045328c98b7100b1665"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.0"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1693,6 +1766,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.2"
|
version: "1.0.2"
|
||||||
|
web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web
|
||||||
|
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.4-beta"
|
||||||
web_socket_channel:
|
web_socket_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1705,10 +1786,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webdriver
|
name: webdriver
|
||||||
sha256: ef67178f0cc7e32c1494645b11639dd1335f1d18814aa8435113a92e9ef9d841
|
sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
webkit_inspection_protocol:
|
webkit_inspection_protocol:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1721,34 +1802,34 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: webview_flutter
|
name: webview_flutter
|
||||||
sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88"
|
sha256: c1ab9b81090705c6069197d9fdc1625e587b52b8d70cdde2339d177ad0dbb98e
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.4"
|
version: "4.4.1"
|
||||||
webview_flutter_android:
|
webview_flutter_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd"
|
sha256: b0cd33dd7d3dd8e5f664e11a19e17ba12c352647269921a3b568406b001f1dff
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.10.4"
|
version: "3.12.0"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_platform_interface
|
name: webview_flutter_platform_interface
|
||||||
sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf"
|
sha256: "6d9213c65f1060116757a7c473247c60f3f7f332cac33dc417c9e362a9a13e4f"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.5"
|
version: "2.6.0"
|
||||||
webview_flutter_wkwebview:
|
webview_flutter_wkwebview:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_wkwebview
|
name: webview_flutter_wkwebview
|
||||||
sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0
|
sha256: "30b9af6bdd457b44c08748b9190d23208b5165357cc2eb57914fee1366c42974"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.9.5"
|
version: "3.9.1"
|
||||||
widget_kit_plugin:
|
widget_kit_plugin:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1761,10 +1842,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: win32
|
name: win32
|
||||||
sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
|
sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.3"
|
version: "4.1.4"
|
||||||
window_manager:
|
window_manager:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
@ -1798,5 +1879,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.1"
|
version: "3.1.1"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.19.0 <3.0.0"
|
dart: ">=3.1.0 <4.0.0"
|
||||||
flutter: ">=3.7.0"
|
flutter: ">=3.13.0"
|
||||||
|
|
|
||||||
40
pubspec.yaml
40
pubspec.yaml
|
|
@ -6,7 +6,7 @@ documentation: https://invoiceninja.github.io
|
||||||
publish_to: none
|
publish_to: none
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.12.0 <3.0.0'
|
sdk: '>=3.1.0 <4.0.0'
|
||||||
|
|
||||||
flutter_icons:
|
flutter_icons:
|
||||||
android: true
|
android: true
|
||||||
|
|
@ -21,10 +21,10 @@ dependencies:
|
||||||
flutter_localizations:
|
flutter_localizations:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
#google_sign_in: ^6.0.1
|
#google_sign_in: ^6.0.1
|
||||||
google_sign_in: 5.4.4
|
google_sign_in: ^6.1.5
|
||||||
in_app_review: ^2.0.4
|
in_app_review: ^2.0.4
|
||||||
in_app_purchase: ^3.1.1
|
in_app_purchase: ^3.1.1
|
||||||
pinput: ^2.2.11
|
pinput: ^3.0.1
|
||||||
#pinput: ^2.2.23
|
#pinput: ^2.2.23
|
||||||
#pinput:
|
#pinput:
|
||||||
# git:
|
# git:
|
||||||
|
|
@ -35,26 +35,26 @@ dependencies:
|
||||||
http: ^0.13.3
|
http: ^0.13.3
|
||||||
path_provider: ^2.0.2
|
path_provider: ^2.0.2
|
||||||
shared_preferences: ^2.0.6
|
shared_preferences: ^2.0.6
|
||||||
material_design_icons_flutter: ^6.0.7096
|
material_design_icons_flutter: ^7.0.7296
|
||||||
built_value: ^8.1.2
|
built_value: ^8.1.2
|
||||||
built_collection: ^5.1.0
|
built_collection: ^5.1.0
|
||||||
memoize: ^3.0.0
|
memoize: ^3.0.0
|
||||||
cached_network_image: 3.0.0 # imageRenderMethodForWeb: ImageRenderMethodForWeb.HttpGet,
|
cached_network_image: 3.0.0 # imageRenderMethodForWeb: ImageRenderMethodForWeb.HttpGet,
|
||||||
url_launcher: ^6.0.20
|
url_launcher: ^6.0.20
|
||||||
share_plus: ^6.3.1
|
share_plus: ^7.1.0
|
||||||
intl: ^0.17.0
|
intl: 0.17.0
|
||||||
flutter_slidable: ^2.0.0
|
flutter_slidable: ^3.0.0
|
||||||
charts_flutter: ^0.12.0
|
charts_flutter: ^0.12.0
|
||||||
#qr_flutter: ^4.0.0
|
#qr_flutter: ^4.0.0
|
||||||
qr_flutter: # https://github.com/theyakka/qr.flutter/issues/174#issuecomment-1084235757
|
qr_flutter: # https://github.com/theyakka/qr.flutter/issues/174#issuecomment-1084235757
|
||||||
git:
|
git:
|
||||||
url: https://github.com/theyakka/qr.flutter.git
|
url: https://github.com/theyakka/qr.flutter.git
|
||||||
local_auth: ^2.1.5
|
local_auth: ^2.1.5
|
||||||
sentry_flutter: ^6.20.1
|
sentry_flutter: ^7.10.1
|
||||||
image_picker: ^0.8.6+3
|
image_picker: ^1.0.4
|
||||||
flutter_colorpicker: ^1.0.3
|
flutter_colorpicker: ^1.0.3
|
||||||
flutter_json_viewer: ^1.0.1
|
flutter_json_viewer: ^1.0.1
|
||||||
webview_flutter: ^3.0.4
|
webview_flutter: ^4.4.1
|
||||||
timeago: ^3.1.0
|
timeago: ^3.1.0
|
||||||
package_info: ^2.0.2
|
package_info: ^2.0.2
|
||||||
rounded_loading_button: ^2.1.0
|
rounded_loading_button: ^2.1.0
|
||||||
|
|
@ -62,9 +62,12 @@ dependencies:
|
||||||
# flutter_launcher_icons: ^0.9.1
|
# flutter_launcher_icons: ^0.9.1
|
||||||
overflow_view: ^0.3.1
|
overflow_view: ^0.3.1
|
||||||
flutter_styled_toast: ^2.0.0
|
flutter_styled_toast: ^2.0.0
|
||||||
permission_handler: 9.1.0 # Disables Windows support to fix crash
|
permission_handler: ^11.0.1 # Disables Windows support to fix crash
|
||||||
file_picker: ^5.2.5
|
file_picker: ^5.2.5
|
||||||
boardview: ^0.2.2
|
#boardview: ^0.2.2
|
||||||
|
boardview:
|
||||||
|
git:
|
||||||
|
url: https://github.com/BenPoell/FlutterBoardView.git
|
||||||
pointer_interceptor: ^0.9.0
|
pointer_interceptor: ^0.9.0
|
||||||
contacts_service: ^0.6.3
|
contacts_service: ^0.6.3
|
||||||
diacritic: ^0.1.3
|
diacritic: ^0.1.3
|
||||||
|
|
@ -77,14 +80,14 @@ dependencies:
|
||||||
# url: https://github.com/superlistapp/super_editor.git
|
# url: https://github.com/superlistapp/super_editor.git
|
||||||
# path: super_editor
|
# path: super_editor
|
||||||
html2md: ^1.2.6
|
html2md: ^1.2.6
|
||||||
printing: ^5.10.1
|
printing: ^5.11.0
|
||||||
image_cropper: ^3.0.1
|
image_cropper: ^4.0.1
|
||||||
msal_js: ^2.14.0
|
msal_js: ^2.14.0
|
||||||
sign_in_with_apple: ^4.3.0
|
sign_in_with_apple: ^5.0.0
|
||||||
window_manager: ^0.3.0
|
window_manager: ^0.3.0
|
||||||
# bitsdojo_window: ^0.1.5
|
# bitsdojo_window: ^0.1.5
|
||||||
intl_phone_field: ^3.1.0
|
intl_phone_field: ^3.1.0
|
||||||
flutter_staggered_grid_view: ^0.6.2
|
flutter_staggered_grid_view: ^0.7.0
|
||||||
desktop_drop: ^0.4.1
|
desktop_drop: ^0.4.1
|
||||||
widget_kit_plugin: ^0.1.1
|
widget_kit_plugin: ^0.1.1
|
||||||
pinch_zoom: ^1.0.0
|
pinch_zoom: ^1.0.0
|
||||||
|
|
@ -92,6 +95,11 @@ dependencies:
|
||||||
# idb_shim: ^1.11.1+1
|
# idb_shim: ^1.11.1+1
|
||||||
collection: ^1.15.0-nullsafety.4
|
collection: ^1.15.0-nullsafety.4
|
||||||
|
|
||||||
|
dependency_overrides:
|
||||||
|
intl: any
|
||||||
|
navigation_builder: ^0.0.3
|
||||||
|
states_rebuilder: ^6.3.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_driver:
|
flutter_driver:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
// Import Flutter Driver API
|
// Import Flutter Driver API
|
||||||
|
|
||||||
// Dart imports:
|
|
||||||
import 'dart:async';
|
|
||||||
|
|
||||||
// Package imports:
|
// Package imports:
|
||||||
import 'package:flutter_driver/flutter_driver.dart';
|
import 'package:flutter_driver/flutter_driver.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
@ -15,7 +12,7 @@ void main() {
|
||||||
group('LOGIN TEST', () {
|
group('LOGIN TEST', () {
|
||||||
late TestLocalization localization;
|
late TestLocalization localization;
|
||||||
FlutterDriver? driver;
|
FlutterDriver? driver;
|
||||||
StreamSubscription? streamSubscription;
|
//StreamSubscription? streamSubscription;
|
||||||
|
|
||||||
setUpAll(() async {
|
setUpAll(() async {
|
||||||
localization = TestLocalization('en');
|
localization = TestLocalization('en');
|
||||||
|
|
@ -35,9 +32,12 @@ void main() {
|
||||||
if (driver != null) {
|
if (driver != null) {
|
||||||
driver!.close();
|
driver!.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (streamSubscription != null) {
|
if (streamSubscription != null) {
|
||||||
streamSubscription.cancel();
|
streamSubscription.cancel();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
});
|
});
|
||||||
|
|
||||||
group('SELF-HOSTED', () {
|
group('SELF-HOSTED', () {
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,9 @@ set(BINARY_NAME "invoiceninja")
|
||||||
|
|
||||||
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
|
||||||
# versions of CMake.
|
# versions of CMake.
|
||||||
cmake_policy(SET CMP0063 NEW)
|
|
||||||
|
|
||||||
set(PDFIUM_VERSION "latest" CACHE STRING "" FORCE)
|
set(PDFIUM_VERSION "latest" CACHE STRING "" FORCE)
|
||||||
set(PDFIUM_ARCH "x64" CACHE STRING "" FORCE)
|
set(PDFIUM_ARCH "x64" CACHE STRING "" FORCE)
|
||||||
|
cmake_policy(VERSION 3.14...3.25)
|
||||||
|
|
||||||
# Define build configuration option.
|
# Define build configuration option.
|
||||||
get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
|
@ -55,6 +54,7 @@ add_subdirectory(${FLUTTER_MANAGED_DIR})
|
||||||
# Application build; see runner/CMakeLists.txt.
|
# Application build; see runner/CMakeLists.txt.
|
||||||
add_subdirectory("runner")
|
add_subdirectory("runner")
|
||||||
|
|
||||||
|
|
||||||
# Generated plugin build rules, which manage building the plugins and adding
|
# Generated plugin build rules, which manage building the plugins and adding
|
||||||
# them to the application.
|
# them to the application.
|
||||||
include(flutter/generated_plugins.cmake)
|
include(flutter/generated_plugins.cmake)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <desktop_drop/desktop_drop_plugin.h>
|
#include <desktop_drop/desktop_drop_plugin.h>
|
||||||
|
#include <file_selector_windows/file_selector_windows.h>
|
||||||
#include <local_auth_windows/local_auth_plugin.h>
|
#include <local_auth_windows/local_auth_plugin.h>
|
||||||
|
#include <permission_handler_windows/permission_handler_windows_plugin.h>
|
||||||
#include <printing/printing_plugin.h>
|
#include <printing/printing_plugin.h>
|
||||||
#include <screen_retriever/screen_retriever_plugin.h>
|
#include <screen_retriever/screen_retriever_plugin.h>
|
||||||
#include <sentry_flutter/sentry_flutter_plugin.h>
|
#include <sentry_flutter/sentry_flutter_plugin.h>
|
||||||
|
|
@ -19,8 +21,12 @@
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
DesktopDropPluginRegisterWithRegistrar(
|
DesktopDropPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("DesktopDropPlugin"));
|
registry->GetRegistrarForPlugin("DesktopDropPlugin"));
|
||||||
|
FileSelectorWindowsRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("FileSelectorWindows"));
|
||||||
LocalAuthPluginRegisterWithRegistrar(
|
LocalAuthPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("LocalAuthPlugin"));
|
registry->GetRegistrarForPlugin("LocalAuthPlugin"));
|
||||||
|
PermissionHandlerWindowsPluginRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
|
||||||
PrintingPluginRegisterWithRegistrar(
|
PrintingPluginRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("PrintingPlugin"));
|
registry->GetRegistrarForPlugin("PrintingPlugin"));
|
||||||
ScreenRetrieverPluginRegisterWithRegistrar(
|
ScreenRetrieverPluginRegisterWithRegistrar(
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
desktop_drop
|
desktop_drop
|
||||||
|
file_selector_windows
|
||||||
local_auth_windows
|
local_auth_windows
|
||||||
|
permission_handler_windows
|
||||||
printing
|
printing
|
||||||
screen_retriever
|
screen_retriever
|
||||||
sentry_flutter
|
sentry_flutter
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,11 @@ bool FlutterWindow::OnCreate() {
|
||||||
this->Show();
|
this->Show();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Flutter can complete the first frame before the "show window" callback is
|
||||||
|
// registered. The following call ensures a frame is pending to ensure the
|
||||||
|
// window is shown. It is a no-op if the first frame hasn't completed yet.
|
||||||
|
flutter_controller_->ForceRedraw();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,16 +47,17 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) {
|
||||||
}
|
}
|
||||||
int target_length = ::WideCharToMultiByte(
|
int target_length = ::WideCharToMultiByte(
|
||||||
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
|
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
|
||||||
-1, nullptr, 0, nullptr, nullptr);
|
-1, nullptr, 0, nullptr, nullptr)
|
||||||
|
-1; // remove the trailing null character
|
||||||
|
int input_length = (int)wcslen(utf16_string);
|
||||||
std::string utf8_string;
|
std::string utf8_string;
|
||||||
if (target_length == 0 || target_length > utf8_string.max_size()) {
|
if (target_length <= 0 || target_length > utf8_string.max_size()) {
|
||||||
return utf8_string;
|
return utf8_string;
|
||||||
}
|
}
|
||||||
utf8_string.resize(target_length);
|
utf8_string.resize(target_length);
|
||||||
int converted_length = ::WideCharToMultiByte(
|
int converted_length = ::WideCharToMultiByte(
|
||||||
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
|
CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string,
|
||||||
-1, utf8_string.data(),
|
input_length, utf8_string.data(), target_length, nullptr, nullptr);
|
||||||
target_length, nullptr, nullptr);
|
|
||||||
if (converted_length == 0) {
|
if (converted_length == 0) {
|
||||||
return std::string();
|
return std::string();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ class WindowClassRegistrar {
|
||||||
public:
|
public:
|
||||||
~WindowClassRegistrar() = default;
|
~WindowClassRegistrar() = default;
|
||||||
|
|
||||||
// Returns the singleton registar instance.
|
// Returns the singleton registrar instance.
|
||||||
static WindowClassRegistrar* GetInstance() {
|
static WindowClassRegistrar* GetInstance() {
|
||||||
if (!instance_) {
|
if (!instance_) {
|
||||||
instance_ = new WindowClassRegistrar();
|
instance_ = new WindowClassRegistrar();
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ class Win32Window {
|
||||||
// OS callback called by message pump. Handles the WM_NCCREATE message which
|
// OS callback called by message pump. Handles the WM_NCCREATE message which
|
||||||
// is passed when the non-client area is being created and enables automatic
|
// is passed when the non-client area is being created and enables automatic
|
||||||
// non-client DPI scaling so that the non-client area automatically
|
// non-client DPI scaling so that the non-client area automatically
|
||||||
// responsponds to changes in DPI. All other messages are handled by
|
// responds to changes in DPI. All other messages are handled by
|
||||||
// MessageHandler.
|
// MessageHandler.
|
||||||
static LRESULT CALLBACK WndProc(HWND const window,
|
static LRESULT CALLBACK WndProc(HWND const window,
|
||||||
UINT const message,
|
UINT const message,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue