diff --git a/.dart_tool/version b/.dart_tool/version index 50d9854..41fd4c1 100644 --- a/.dart_tool/version +++ b/.dart_tool/version @@ -1 +1 @@ -3.7.3 \ No newline at end of file +3.16.1 \ No newline at end of file diff --git a/.flutter-plugins b/.flutter-plugins index ee90da1..7bce612 100644 --- a/.flutter-plugins +++ b/.flutter-plugins @@ -1,10 +1,10 @@ # This is a generated file; do not edit or check into version control. -path_provider_linux=/Users/kailib/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.7/ -path_provider_windows=/Users/kailib/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.3/ -shared_preferences=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences-2.0.15/ -shared_preferences_android=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.14/ -shared_preferences_ios=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences_ios-2.1.1/ -shared_preferences_linux=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.2/ -shared_preferences_macos=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences_macos-2.0.4/ -shared_preferences_web=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.4/ -shared_preferences_windows=/Users/kailib/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.2/ +path_provider_linux=/Users/dan/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.7/ +path_provider_windows=/Users/dan/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.3/ +shared_preferences=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences-2.0.15/ +shared_preferences_android=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.14/ +shared_preferences_ios=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences_ios-2.1.1/ +shared_preferences_linux=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.2/ +shared_preferences_macos=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences_macos-2.0.4/ +shared_preferences_web=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.4/ +shared_preferences_windows=/Users/dan/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.2/ diff --git a/lib/advanced_data_grid.dart b/lib/advanced_data_grid.dart index 9415228..0f0c8de 100644 --- a/lib/advanced_data_grid.dart +++ b/lib/advanced_data_grid.dart @@ -100,39 +100,39 @@ class DataGridColumn { /// the DataSourceResponse struct containing JSON allowing for DataGrid to /// be easily reused for many different types of Data, from differing sources. class DataGrid extends StatefulWidget { - const DataGrid({ - super.key, - required this.source, - required this.builders, - this.title, - this.subTitle, - this.actions, - this.wrapWithCard = false, - this.minWidth, - required this.titleBuilder, - this.enableTextSelection = false, - this.enableMultiSort = false, - this.mainSearchColumn, - this.disableFiltersOnMainSearch = true, - this.showCheckboxColumn = false, - this.identifierColumnName, - this.selectedRows, - this.onSelectionChange, - this.onRowTap, - this.exportTypes = const [], - this.exportLimit, - this.primaryColor, - this.overrideElevatedButtonStyle, - this.overrideTextButtonStyle, - this.fixedPageLimit, - this.hidePageSelection = false, - this.hideRowCount = false, - this.enableSearchColumns = false, - this.searchColumnBuilders = const [], - this.searchColumnIcon = true, - this.fieldsWithSearchresField = '', - this.searchDebouncerDelay = 500, - }); + const DataGrid( + {super.key, + required this.source, + required this.builders, + this.title, + this.subTitle, + this.actions, + this.wrapWithCard = false, + this.minWidth, + required this.titleBuilder, + this.enableTextSelection = false, + this.enableMultiSort = false, + this.mainSearchColumn, + this.disableFiltersOnMainSearch = true, + this.showCheckboxColumn = false, + this.identifierColumnName, + this.selectedRows, + this.onSelectionChange, + this.onRowTap, + this.exportTypes = const [], + this.exportLimit, + this.primaryColor, + this.overrideElevatedButtonStyle, + this.overrideTextButtonStyle, + this.fixedPageLimit, + this.hidePageSelection = false, + this.hideRowCount = false, + this.enableSearchColumns = false, + this.searchColumnBuilders = const [], + this.searchColumnIcon = true, + this.fieldsWithSearchresField = '', + this.searchDebouncerDelay = 500, + this.theme}); /// Data Source for the Table. final DataSource source; @@ -224,12 +224,15 @@ class DataGrid extends StatefulWidget { /// Debounce delay for search final int searchDebouncerDelay; + // Theme for the DataGrid + final ThemeData? theme; + @override State createState() => _DataGridState(); } -List _getSearchCells(List searchColumnBuilders, List builders, - Map data, bool iconColumn, String fieldsWithSearchresField) { +List _getSearchCells(List searchColumnBuilders, List builders, Map data, bool iconColumn, + String fieldsWithSearchresField) { int searchColumnBuilderslength = searchColumnBuilders.length; List searchColumns = []; searchColumns.addAll(searchColumnBuilders); @@ -346,8 +349,7 @@ class _DataGridState extends State { enabled: !_searchInUse, padding: const EdgeInsets.all(0), child: hasFilter - ? Icon(Icons.filter_alt_off_rounded, - color: widget.primaryColor ?? Theme.of(context).colorScheme.primary) + ? Icon(Icons.filter_alt_off_rounded, color: widget.primaryColor ?? Theme.of(context).colorScheme.primary) : const Icon(Icons.filter_alt_rounded, color: Colors.grey), itemBuilder: (context) { return [ @@ -393,11 +395,9 @@ class _DataGridState extends State { Align( alignment: Alignment.centerLeft, child: sortDirection == "asc" - ? Icon(Icons.arrow_upward_rounded, - color: widget.primaryColor ?? Theme.of(context).colorScheme.primary) + ? Icon(Icons.arrow_upward_rounded, color: widget.primaryColor ?? Theme.of(context).colorScheme.primary) : sortDirection == "desc" - ? Icon(Icons.arrow_downward_rounded, - color: widget.primaryColor ?? Theme.of(context).colorScheme.primary) + ? Icon(Icons.arrow_downward_rounded, color: widget.primaryColor ?? Theme.of(context).colorScheme.primary) : Container(), ), widget.source.columnSorts.length > 1 @@ -413,10 +413,7 @@ class _DataGridState extends State { ), child: Center( child: Text( - (widget.source.columnSorts.keys - .toList() - .indexOf(entry.value.filterColumnName ?? entry.value.column) + - 1) + (widget.source.columnSorts.keys.toList().indexOf(entry.value.filterColumnName ?? entry.value.column) + 1) .toString(), style: const TextStyle( color: Colors.white, @@ -459,11 +456,9 @@ class _DataGridState extends State { } if (widget.enableMultiSort) { - widget.source.addSort(entry.value.filterColumnName ?? entry.value.column, - sortDirection == "desc" ? "asc" : "desc"); + widget.source.addSort(entry.value.filterColumnName ?? entry.value.column, sortDirection == "desc" ? "asc" : "desc"); } else { - widget.source.replaceAllSorts(entry.value.filterColumnName ?? entry.value.column, - sortDirection == "desc" ? "asc" : "desc"); + widget.source.replaceAllSorts(entry.value.filterColumnName ?? entry.value.column, sortDirection == "desc" ? "asc" : "desc"); } }, child: titleContent, @@ -501,10 +496,8 @@ class _DataGridState extends State { contentPadding: const EdgeInsets.fromLTRB(10, 0, 10, 0), isDense: true, border: const OutlineInputBorder(borderSide: BorderSide(color: Color.fromRGBO(141, 141, 141, 1), width: 0.5)), - enabledBorder: - const OutlineInputBorder(borderSide: BorderSide(color: Color.fromRGBO(141, 141, 141, 1), width: 0.5)), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: widget.primaryColor ?? Theme.of(context).colorScheme.primary)), + enabledBorder: const OutlineInputBorder(borderSide: BorderSide(color: Color.fromRGBO(141, 141, 141, 1), width: 0.5)), + focusedBorder: OutlineInputBorder(borderSide: BorderSide(color: widget.primaryColor ?? Theme.of(context).colorScheme.primary)), errorMaxLines: 3, errorBorder: const OutlineInputBorder(borderSide: BorderSide(color: Color.fromRGBO(226, 106, 103, 1))), focusColor: widget.primaryColor ?? Theme.of(context).colorScheme.primary, @@ -518,8 +511,7 @@ class _DataGridState extends State { size: 20, ), constraints: const BoxConstraints(maxHeight: 240), - disabledBorder: OutlineInputBorder( - borderSide: BorderSide(color: const Color.fromRGBO(141, 141, 141, 1).withOpacity(0.5), width: 0.5)), + disabledBorder: OutlineInputBorder(borderSide: BorderSide(color: const Color.fromRGBO(141, 141, 141, 1).withOpacity(0.5), width: 0.5)), ), textInputAction: TextInputAction.none, ), @@ -536,9 +528,7 @@ class _DataGridState extends State { "$p", style: TextStyle( fontWeight: p == widget.source.currentPage ? FontWeight.bold : FontWeight.normal, - color: p == widget.source.currentPage - ? widget.primaryColor ?? Theme.of(context).colorScheme.primary - : Colors.grey, + color: p == widget.source.currentPage ? widget.primaryColor ?? Theme.of(context).colorScheme.primary : Colors.grey, ), ), ); @@ -623,15 +613,12 @@ class _DataGridState extends State { return DataCell(Padding( padding: const EdgeInsets.symmetric(horizontal: 10), - child: Align( - alignment: entry.value.alignment, - child: entry.value.builder(data, cellData, entry.key)))); + child: Align(alignment: entry.value.alignment, child: entry.value.builder(data, cellData, entry.key)))); }).toList()), ); if (_searchInUse && - _getSearchCells(widget.searchColumnBuilders ?? [], widget.builders, data, widget.searchColumnIcon, - widget.fieldsWithSearchresField) + _getSearchCells(widget.searchColumnBuilders ?? [], widget.builders, data, widget.searchColumnIcon, widget.fieldsWithSearchresField) .isNotEmpty && widget.enableSearchColumns) { rows.add( @@ -657,6 +644,8 @@ class _DataGridState extends State { checkboxHorizontalMargin: 12, columnSpacing: 0, showCheckboxColumn: widget.showCheckboxColumn, + headingCheckboxTheme: Theme.of(context).checkboxTheme, + datarowCheckboxTheme: Theme.of(context).checkboxTheme, onSelectAll: (bool? sel) { bool isSelected = sel == true; @@ -674,11 +663,7 @@ class _DataGridState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, - children: [ - const CircularProgressIndicator(), - const SizedBox(height: 10), - Text("Loading ${widget.title ?? ""}...") - ], + children: [const CircularProgressIndicator(), const SizedBox(height: 10), Text("Loading ${widget.title ?? ""}...")], ), ) : Center( @@ -758,9 +743,7 @@ class _DataGridState extends State { ), ) : Container(), - widget.exportTypes.isNotEmpty && - !widget.source.isLoading && - widget.source.items.isNotEmpty + widget.exportTypes.isNotEmpty && !widget.source.isLoading && widget.source.items.isNotEmpty ? Container( padding: const EdgeInsets.symmetric(horizontal: 5), child: TextButton( @@ -770,28 +753,23 @@ class _DataGridState extends State { builder: (BuildContext context) { return ExportDataGridModal( title: widget.title ?? "Data", - columns: widget.builders - .where((column) => column.includeInExport == true) - .toList(), + columns: widget.builders.where((column) => column.includeInExport == true).toList(), source: widget.source, exportTypes: widget.exportTypes, exportLimit: widget.exportLimit, overrideButtonStyle: widget.overrideElevatedButtonStyle, - primaryColor: - widget.primaryColor ?? Theme.of(context).colorScheme.primary, + primaryColor: widget.primaryColor ?? Theme.of(context).colorScheme.primary, ); }); }, style: widget.overrideTextButtonStyle != null - ? widget.overrideTextButtonStyle! - .copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)) + ? widget.overrideTextButtonStyle!.copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)) : Theme.of(context).textButtonTheme.style != null ? Theme.of(context) .textButtonTheme .style! .copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)) - : TextButton.styleFrom() - .copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)), + : TextButton.styleFrom().copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)), child: Container( padding: const EdgeInsets.fromLTRB(16, 5, 16, 5), height: 36, @@ -804,16 +782,12 @@ class _DataGridState extends State { size: 24, ), Container( - padding: EdgeInsets.fromLTRB( - MediaQuery.of(context).size.width >= _mobileWidth ? 10 : 0, - 0, - MediaQuery.of(context).size.width >= _mobileWidth ? 6 : 0, - 0), + padding: EdgeInsets.fromLTRB(MediaQuery.of(context).size.width >= _mobileWidth ? 10 : 0, 0, + MediaQuery.of(context).size.width >= _mobileWidth ? 6 : 0, 0), child: MediaQuery.of(context).size.width >= _mobileWidth ? const Text( "EXPORT", - style: TextStyle( - color: Color.fromRGBO(105, 105, 105, 1), fontSize: 14), + style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 14), ) : Container(), ), @@ -834,8 +808,7 @@ class _DataGridState extends State { context: context, builder: (BuildContext context) { return Dialog( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10)), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), child: ConstrainedBox( constraints: BoxConstraints( maxWidth: MediaQuery.of(context).size.width > 364 @@ -879,9 +852,7 @@ class _DataGridState extends State { Navigator.of(context).pop(); }, style: widget.overrideElevatedButtonStyle ?? - (Theme.of(context) - .elevatedButtonTheme - .style ?? + (Theme.of(context).elevatedButtonTheme.style ?? ElevatedButton.styleFrom()), child: const Text("SEARCH"), ), @@ -896,13 +867,13 @@ class _DataGridState extends State { ); }, style: widget.overrideTextButtonStyle != null - ? widget.overrideTextButtonStyle! - .copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)) + ? widget.overrideTextButtonStyle!.copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)) : Theme.of(context).textButtonTheme.style != null - ? Theme.of(context).textButtonTheme.style!.copyWith( - padding: MaterialStateProperty.all(EdgeInsets.zero)) - : TextButton.styleFrom().copyWith( - padding: MaterialStateProperty.all(EdgeInsets.zero)), + ? Theme.of(context) + .textButtonTheme + .style! + .copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)) + : TextButton.styleFrom().copyWith(padding: MaterialStateProperty.all(EdgeInsets.zero)), child: Container( padding: const EdgeInsets.fromLTRB(16, 5, 16, 5), height: 36, @@ -911,24 +882,16 @@ class _DataGridState extends State { children: [ Icon( Icons.search, - color: widget.primaryColor ?? - Theme.of(context).colorScheme.primary, + color: widget.primaryColor ?? Theme.of(context).colorScheme.primary, size: 24, ), Container( - padding: EdgeInsets.fromLTRB( - MediaQuery.of(context).size.width >= _mobileWidth - ? 10 - : 0, - 0, - MediaQuery.of(context).size.width >= _mobileWidth ? 6 : 0, - 0), + padding: EdgeInsets.fromLTRB(MediaQuery.of(context).size.width >= _mobileWidth ? 10 : 0, 0, + MediaQuery.of(context).size.width >= _mobileWidth ? 6 : 0, 0), child: MediaQuery.of(context).size.width >= _mobileWidth ? const Text( "SEARCH", - style: TextStyle( - color: Color.fromRGBO(105, 105, 105, 1), - fontSize: 14), + style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 14), ) : Container(), ), @@ -961,16 +924,13 @@ class _DataGridState extends State { scrollDirection: Axis.horizontal, child: Row( crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MediaQuery.of(context).size.width > _mobileWidth - ? MainAxisAlignment.end - : MainAxisAlignment.center, + mainAxisAlignment: MediaQuery.of(context).size.width > _mobileWidth ? MainAxisAlignment.end : MainAxisAlignment.center, children: [ widget.fixedPageLimit == null && MediaQuery.of(context).size.width > _mobileWidth ? Row( mainAxisSize: MainAxisSize.min, children: [ - const Text("Rows per page:", - style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12)), + const Text("Rows per page:", style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12)), Container( width: 50, margin: const EdgeInsets.only(left: 10, right: 16), @@ -982,24 +942,16 @@ class _DataGridState extends State { items: const [ DropdownMenuItem( value: 15, - child: Text("15", - style: TextStyle( - color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), + child: Text("15", style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), DropdownMenuItem( value: 30, - child: Text("30", - style: TextStyle( - color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), + child: Text("30", style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), DropdownMenuItem( value: 60, - child: Text("60", - style: TextStyle( - color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), + child: Text("60", style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), DropdownMenuItem( value: 100, - child: Text("100", - style: TextStyle( - color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), + child: Text("100", style: TextStyle(color: Color.fromRGBO(105, 105, 105, 1), fontSize: 12))), ], value: widget.source.pageSize, onChanged: (limit) { diff --git a/pubspec.lock b/pubspec.lock index 720629b..b498864 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" boolean_selector: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" clock: dependency: transitive description: @@ -37,18 +37,18 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.18.0" country_code_picker: dependency: "direct main" description: name: country_code_picker - sha256: "6eed752b23cf2331435b08d246f7aee6eae0eda25ae357560b6794ef02e87ee6" + sha256: "92818885f0e47486539f80463b66f649970506a91dd3c0731ca3ba5308324a4d" url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "3.0.0" csv: dependency: "direct main" description: @@ -61,10 +61,10 @@ packages: dependency: "direct main" description: name: data_table_2 - sha256: f1e4ab1d5d5b3eb12ac6080887adec6403fd77ea45e29588ef8d50b277173149 + sha256: f02ec9b24f44420816a87370ff4f4e533e15b274f6267e4c9a88a585ad1a0473 url: "https://pub.dev" source: hosted - version: "2.3.10" + version: "2.5.15" fake_async: dependency: transitive description: @@ -136,14 +136,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.17.0" - js: - dependency: transitive - description: - name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" - source: hosted - version: "0.6.5" lints: dependency: transitive description: @@ -156,34 +148,26 @@ packages: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.8.0" - modal_bottom_sheet: - dependency: transitive - description: - name: modal_bottom_sheet - sha256: ef533916a2c3089571c32bd34e410faca77a6849a3f28f748e0794525c5658a0 - url: "https://pub.dev" - source: hosted - version: "2.1.2" + version: "1.10.0" nested: dependency: transitive description: @@ -196,10 +180,10 @@ packages: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" path_provider_linux: dependency: transitive description: @@ -329,26 +313,26 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -369,10 +353,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.6.1" typed_data: dependency: transitive description: @@ -381,14 +365,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" - universal_platform: - dependency: transitive - description: - name: universal_platform - sha256: d315be0f6641898b280ffa34e2ddb14f3d12b1a37882557869646e0cc363d0cc - url: "https://pub.dev" - source: hosted - version: "1.0.0+1" vector_math: dependency: transitive description: @@ -397,6 +373,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + url: "https://pub.dev" + source: hosted + version: "0.3.0" win32: dependency: transitive description: @@ -414,5 +398,5 @@ packages: source: hosted version: "0.2.0+2" sdks: - dart: ">=2.18.2 <3.0.0" - flutter: ">=3.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" + flutter: ">=3.10.0" diff --git a/pubspec.yaml b/pubspec.yaml index 9767563..6f112aa 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,13 +4,13 @@ version: 0.0.1 homepage: environment: - sdk: '>=2.18.2 <3.0.0' + sdk: '>=3.0.0 <4.0.0' flutter: ">=1.17.0" dependencies: flutter: sdk: flutter - data_table_2: ^2.3.7 + data_table_2: 2.5.12 http: ^0.13.5 shared_preferences: ^2.0.7 provider: ^6.0.5