diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..681f41a
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/flutter_custom_calendar.iml b/.idea/flutter_custom_calendar.iml
index c1cf317..63725be 100644
--- a/.idea/flutter_custom_calendar.iml
+++ b/.idea/flutter_custom_calendar.iml
@@ -21,11 +21,10 @@
-
-
+
diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
index 023437b..ee146ca 100644
--- a/.idea/libraries/Dart_Packages.xml
+++ b/.idea/libraries/Dart_Packages.xml
@@ -2,177 +2,249 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
index abfd68a..e4dfdce 100644
--- a/.idea/libraries/Dart_SDK.xml
+++ b/.idea/libraries/Dart_SDK.xml
@@ -1,26 +1,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c6379b4..1b58360 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,23 +1,23 @@
+
+
+
+
+
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -25,148 +25,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
@@ -217,209 +87,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj
index 23d3283..07bc788 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -9,11 +9,7 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
- 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
- 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
- 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -26,8 +22,6 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
- 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -38,13 +32,11 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
- 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
@@ -57,8 +49,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
- 3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -68,9 +58,7 @@
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
- 3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
- 9740EEBA1CF902C7004384FC /* Flutter.framework */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
@@ -201,7 +189,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
diff --git a/example/pubspec.lock b/example/pubspec.lock
index 681846d..ddf3787 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -7,42 +7,42 @@ packages:
name: archive
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.0.10"
+ version: "2.0.13"
args:
dependency: transitive
description:
name: args
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.5.2"
+ version: "1.6.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.3.0"
+ version: "2.4.1"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.0.5"
+ version: "2.0.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.1.2"
+ version: "1.1.3"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.14.11"
+ version: "1.14.12"
convert:
dependency: transitive
description:
@@ -56,7 +56,7 @@ packages:
name: crypto
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.1.3"
+ version: "2.1.4"
cupertino_icons:
dependency: "direct main"
description:
@@ -87,35 +87,35 @@ packages:
name: image
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.1.4"
+ version: "2.1.12"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.flutter-io.cn"
source: hosted
- version: "0.12.5"
+ version: "0.12.6"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.1.7"
- path:
+ version: "1.1.8"
+ nested:
dependency: transitive
description:
- name: path
+ name: nested
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.6.4"
- pedantic:
+ version: "0.0.4"
+ path:
dependency: transitive
description:
- name: pedantic
+ name: path
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.8.0+1"
+ version: "1.6.4"
petitparser:
dependency: transitive
description:
@@ -129,14 +129,14 @@ packages:
name: provider
url: "https://pub.flutter-io.cn"
source: hosted
- version: "3.1.0+1"
+ version: "4.1.3"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.0.5"
+ version: "2.1.3"
random_pk:
dependency: "direct main"
description:
@@ -155,7 +155,7 @@ packages:
name: source_span
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.5.5"
+ version: "1.7.0"
stack_trace:
dependency: transitive
description:
@@ -190,7 +190,7 @@ packages:
name: test_api
url: "https://pub.flutter-io.cn"
source: hosted
- version: "0.2.5"
+ version: "0.2.15"
typed_data:
dependency: transitive
description:
@@ -211,6 +211,7 @@ packages:
name: xml
url: "https://pub.flutter-io.cn"
source: hosted
- version: "3.5.0"
+ version: "3.6.1"
sdks:
- dart: ">=2.4.0 <3.0.0"
+ dart: ">=2.7.0 <3.0.0"
+ flutter: ">=1.16.0"
diff --git a/lib/constants/constants.dart b/lib/constants/constants.dart
index 2917567..fe0b86d 100644
--- a/lib/constants/constants.dart
+++ b/lib/constants/constants.dart
@@ -1,15 +1,21 @@
class CalendarConstants {
-
//单选或者多选模式
+ // 单选
static const int MODE_SINGLE_SELECT = 1;
+
+ /// 多选
+
static const int MODE_MULTI_SELECT = 2;
- //展示模式
- static const int MODE_SHOW_ONLY_MONTH=1;//仅支持月视图
- static const int MODE_SHOW_ONLY_WEEK=2;//仅支持星期视图
- static const int MODE_SHOW_WEEK_AND_MONTH=3;//支持两种视图,先显示周视图
- static const int MODE_SHOW_MONTH_AND_WEEK=4;//支持两种视图,先显示月视图
+ /// 选择开始和结束 中间的自动选择
+
+ static const int MODE_MULTI_SELECT_FROM_TO_END = 3;
+ //展示模式
+ static const int MODE_SHOW_ONLY_MONTH = 1; //仅支持月视图
+ static const int MODE_SHOW_ONLY_WEEK = 2; //仅支持星期视图
+ static const int MODE_SHOW_WEEK_AND_MONTH = 3; //支持两种视图,先显示周视图
+ static const int MODE_SHOW_MONTH_AND_WEEK = 4; //支持两种视图,先显示月视图
/**
* 一周七天
diff --git a/lib/widget/month_view.dart b/lib/widget/month_view.dart
index 0eb5643..b08dc79 100644
--- a/lib/widget/month_view.dart
+++ b/lib/widget/month_view.dart
@@ -55,7 +55,8 @@ class _MonthViewState extends State
});
}
- lineCount = DateUtil.getMonthViewLineCount(widget.year, widget.month, widget.configuration.offset);
+ lineCount = DateUtil.getMonthViewLineCount(
+ widget.year, widget.month, widget.configuration.offset);
//第一帧后,添加监听,generation发生变化后,需要刷新整个日历
WidgetsBinding.instance.addPostFrameCallback((callback) {
@@ -109,18 +110,35 @@ class _MonthViewState extends State
itemBuilder: (context, index) {
DateModel dateModel = items[index];
//判断是否被选择
- if (configuration.selectMode == CalendarConstants.MODE_MULTI_SELECT) {
- if (calendarProvider.selectedDateList.contains(dateModel)) {
- dateModel.isSelected = true;
- } else {
- dateModel.isSelected = false;
- }
- } else {
- if (calendarProvider.selectDateModel == dateModel) {
- dateModel.isSelected = true;
- } else {
- dateModel.isSelected = false;
- }
+ switch (configuration.selectMode) {
+
+ /// 多选
+ case CalendarConstants.MODE_MULTI_SELECT:
+ if (calendarProvider.selectedDateList.contains(dateModel)) {
+ dateModel.isSelected = true;
+ } else {
+ dateModel.isSelected = false;
+ }
+ break;
+
+ /// 选择开始和结束 中间的自动选择
+
+ case CalendarConstants.MODE_MULTI_SELECT_FROM_TO_END:
+ if (calendarProvider.selectedDateList.contains(dateModel)) {
+ dateModel.isSelected = true;
+ } else {
+ dateModel.isSelected = false;
+ }
+ break;
+
+ /// 单选
+ case CalendarConstants.MODE_SINGLE_SELECT:
+ if (calendarProvider.selectDateModel == dateModel) {
+ dateModel.isSelected = true;
+ } else {
+ dateModel.isSelected = false;
+ }
+ break;
}
return ItemContainer(
@@ -214,38 +232,75 @@ class ItemContainerState extends State {
calendarProvider.lastClickDateModel = dateModel;
- if (configuration.selectMode == CalendarConstants.MODE_MULTI_SELECT) {
- if (calendarProvider.selectedDateList.contains(dateModel)) {
- calendarProvider.selectedDateList.remove(dateModel);
- } else {
- //多选,判断是否超过限制,超过范围
- if (calendarProvider.selectedDateList.length ==
- configuration.maxMultiSelectCount) {
- if (configuration.multiSelectOutOfSize != null) {
- configuration.multiSelectOutOfSize();
+ switch (configuration.selectMode) {
+ //简单多选
+ case CalendarConstants.MODE_MULTI_SELECT:
+ if (calendarProvider.selectedDateList.contains(dateModel)) {
+ calendarProvider.selectedDateList.remove(dateModel);
+ } else {
+ //多选,判断是否超过限制,超过范围
+ if (calendarProvider.selectedDateList.length ==
+ configuration.maxMultiSelectCount) {
+ if (configuration.multiSelectOutOfSize != null) {
+ configuration.multiSelectOutOfSize();
+ }
+ return;
}
- return;
+ calendarProvider.selectedDateList.add(dateModel);
+ }
+ if (configuration.calendarSelect != null) {
+ configuration.calendarSelect(dateModel);
}
- calendarProvider.selectedDateList.add(dateModel);
- }
- if (configuration.calendarSelect != null) {
- configuration.calendarSelect(dateModel);
- }
- //多选也可以弄这些单选的代码
- calendarProvider.selectDateModel = dateModel;
- } else {
- calendarProvider.selectDateModel = dateModel;
- if (configuration.calendarSelect != null) {
- configuration.calendarSelect(dateModel);
- }
+ //多选也可以弄这些单选的代码
+ calendarProvider.selectDateModel = dateModel;
+ break;
- //单选需要刷新上一个item
- if (calendarProvider.lastClickItemState != this) {
- calendarProvider.lastClickItemState?.refreshItem(false);
- calendarProvider.lastClickItemState = this;
- }
+ /// 单选
+ case CalendarConstants.MODE_SINGLE_SELECT:
+ calendarProvider.selectDateModel = dateModel;
+ if (configuration.calendarSelect != null) {
+ configuration.calendarSelect(dateModel);
+ }
+
+ //单选需要刷新上一个item
+ if (calendarProvider.lastClickItemState != this) {
+ calendarProvider.lastClickItemState?.refreshItem(false);
+ calendarProvider.lastClickItemState = this;
+ }
+ break;
+
+ /// 选择范围
+ case CalendarConstants.MODE_MULTI_SELECT_FROM_TO_END:
+ if (calendarProvider.selectedDateList.length == 0) {
+ calendarProvider.selectedDateList.add(dateModel);
+ } else if (calendarProvider.selectedDateList.length == 1) {
+ DateModel d2 = calendarProvider.selectedDateList.last;
+ DateTime t1, t2;
+ if (d2.getDateTime().isAfter(dateModel.getDateTime())) {
+ t2 = d2.getDateTime();
+ t1 = dateModel.getDateTime();
+ } else {
+ t1 = d2.getDateTime();
+ t2 = dateModel.getDateTime();
+ }
+ for (; t1.isBefore(t2);) {
+ calendarProvider.selectedDateList
+ .add(DateModel.fromDateTime(t1));
+ t1 = t1.add(Duration(days: 1));
+ }
+ } else {
+ /// 加入已经选择了多个 则进行取消操作
+ calendarProvider.selectedDateList.clear();
+ }
+ if (configuration.calendarSelect != null) {
+ calendarProvider.selectedDateList.forEach((element) {
+ configuration.calendarSelect(element);
+ });
+ }
+ break;
}
+
refreshItem(!this.dateModel.isSelected);
},
child: configuration.dayWidgetBuilder(dateModel),
diff --git a/pubspec.lock b/pubspec.lock
index 406ab5f..327bd98 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,42 +7,42 @@ packages:
name: archive
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.0.10"
+ version: "2.0.13"
args:
dependency: transitive
description:
name: args
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.5.2"
+ version: "1.6.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.3.0"
+ version: "2.4.1"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.0.5"
+ version: "2.0.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.1.2"
+ version: "1.1.3"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.14.11"
+ version: "1.14.12"
convert:
dependency: transitive
description:
@@ -56,7 +56,7 @@ packages:
name: crypto
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.1.3"
+ version: "2.1.4"
flutter:
dependency: "direct main"
description: flutter
@@ -73,35 +73,35 @@ packages:
name: image
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.1.4"
+ version: "2.1.12"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.flutter-io.cn"
source: hosted
- version: "0.12.5"
+ version: "0.12.6"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.1.7"
- path:
+ version: "1.1.8"
+ nested:
dependency: transitive
description:
- name: path
+ name: nested
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.6.4"
- pedantic:
+ version: "0.0.4"
+ path:
dependency: transitive
description:
- name: pedantic
+ name: path
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.8.0+1"
+ version: "1.6.4"
petitparser:
dependency: transitive
description:
@@ -115,14 +115,14 @@ packages:
name: provider
url: "https://pub.flutter-io.cn"
source: hosted
- version: "3.1.0+1"
+ version: "4.1.3"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.flutter-io.cn"
source: hosted
- version: "2.0.5"
+ version: "2.1.3"
sky_engine:
dependency: transitive
description: flutter
@@ -134,7 +134,7 @@ packages:
name: source_span
url: "https://pub.flutter-io.cn"
source: hosted
- version: "1.5.5"
+ version: "1.7.0"
stack_trace:
dependency: transitive
description:
@@ -169,7 +169,7 @@ packages:
name: test_api
url: "https://pub.flutter-io.cn"
source: hosted
- version: "0.2.5"
+ version: "0.2.15"
typed_data:
dependency: transitive
description:
@@ -190,6 +190,7 @@ packages:
name: xml
url: "https://pub.flutter-io.cn"
source: hosted
- version: "3.5.0"
+ version: "3.6.1"
sdks:
- dart: ">=2.4.0 <3.0.0"
+ dart: ">=2.7.0 <3.0.0"
+ flutter: ">=1.16.0"