diff --git a/.github/workflows/on_push.yml b/.github/workflows/on_push.yml index 6357cd53..5c70c56d 100644 --- a/.github/workflows/on_push.yml +++ b/.github/workflows/on_push.yml @@ -22,6 +22,7 @@ jobs: - uses: subosito/flutter-action@v2 with: channel: 'stable' + - run: ./am deps - run: ./am format --verify test: diff --git a/am_sidekick/.gitignore b/am_sidekick/.gitignore index 3d64647b..8f964e8a 100644 --- a/am_sidekick/.gitignore +++ b/am_sidekick/.gitignore @@ -7,3 +7,5 @@ build/ # Directory created by dartdoc doc/api/ +# Lock dependencies for deterministic builds on all systems +!pubspec.lock diff --git a/am_sidekick/pubspec.lock b/am_sidekick/pubspec.lock index c9c34156..f238e2e0 100644 --- a/am_sidekick/pubspec.lock +++ b/am_sidekick/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: archive - sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d url: "https://pub.dev" source: hosted - version: "3.4.9" + version: "3.6.1" args: dependency: transitive description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: @@ -109,10 +109,10 @@ packages: dependency: transitive description: name: cli_util - sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 url: "https://pub.dev" source: hosted - version: "0.4.0" + version: "0.4.1" clock: dependency: transitive description: @@ -261,10 +261,10 @@ packages: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" http_parser: dependency: transitive description: @@ -325,10 +325,10 @@ packages: dependency: "direct dev" description: name: lint - sha256: "77b3777e8e9adca8e942da1e835882ae3248dfa00488a2ebbdbc1f1a4aa3f4a7" + sha256: d758a5211fce7fd3f5e316f804daefecdc34c7e53559716125e6da7388ae8565 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" logging: dependency: transitive description: @@ -365,10 +365,10 @@ packages: dependency: transitive description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.6" node_preamble: dependency: transitive description: @@ -389,18 +389,18 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.9.1" pool: dependency: transitive description: @@ -453,10 +453,10 @@ packages: dependency: transitive description: name: quiver - sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 + sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" random_string: dependency: transitive description: @@ -525,10 +525,10 @@ packages: dependency: "direct main" description: name: sidekick_core - sha256: "323611a8527b7094ffc4691d6a288de1d187dd017e18e62db7a6165fcc36db77" + sha256: "3b08ee513dbcd7b97b2813ab24aee0e8f37d77b7548d4e72332420e67ab252dc" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.3" source_map_stack_trace: dependency: transitive description: @@ -669,18 +669,26 @@ packages: dependency: transitive description: name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web: + dependency: transitive + description: + name: web + sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "0.4.2" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + sha256: "939ab60734a4f8fa95feacb55804fa278de28bdeef38e616dc08e44a84adea23" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.3" webkit_inspection_protocol: dependency: transitive description: @@ -714,4 +722,4 @@ packages: source: hosted version: "2.1.1" sdks: - dart: ">=3.2.0 <3.999.0" + dart: ">=3.2.6 <3.999.0" diff --git a/am_sidekick/pubspec.yaml b/am_sidekick/pubspec.yaml index 85faefd4..62a6ced9 100644 --- a/am_sidekick/pubspec.yaml +++ b/am_sidekick/pubspec.yaml @@ -4,14 +4,14 @@ version: 0.0.1 publish_to: none environment: - sdk: ">=3.2.0 <4.0.0" + sdk: ">=3.2.6 <4.0.0" executables: main: dependencies: dcli: ^2.2.3 - sidekick_core: ^2.1.0 + sidekick_core: ^2.1.3 yaml_edit: ^2.0.3 dev_dependencies: @@ -19,4 +19,4 @@ dev_dependencies: # generated code, do not edit this manually sidekick: - cli_version: 2.1.0 + cli_version: 2.1.3 diff --git a/arcgis_map_sdk/lib/arcgis_map_sdk.dart b/arcgis_map_sdk/lib/arcgis_map_sdk.dart index e0fd4729..040c4071 100644 --- a/arcgis_map_sdk/lib/arcgis_map_sdk.dart +++ b/arcgis_map_sdk/lib/arcgis_map_sdk.dart @@ -1,6 +1,3 @@ -// ignore: unnecessary_library_directive -library arcgis_map; - export 'package:arcgis_map_sdk/src/arcgis_location_display.dart'; export 'package:arcgis_map_sdk/src/arcgis_map_controller.dart'; export 'package:arcgis_map_sdk/src/arcgis_map_sdk.dart'; diff --git a/arcgis_map_sdk/lib/src/arcgis_map_controller.dart b/arcgis_map_sdk/lib/src/arcgis_map_controller.dart index e470bdbb..0d4c32c7 100644 --- a/arcgis_map_sdk/lib/src/arcgis_map_controller.dart +++ b/arcgis_map_sdk/lib/src/arcgis_map_controller.dart @@ -40,7 +40,7 @@ class ArcgisMapController { void Function(dynamic)? onPressed, String? url, void Function(double)? getZoom, - }) async { + }) { return ArcgisMapPlatform.instance.addFeatureLayer( options, data, @@ -62,7 +62,7 @@ class ArcgisMapController { required String layerId, required GraphicsLayerOptions options, void Function(dynamic)? onPressed, - }) async { + }) { return ArcgisMapPlatform.instance.addGraphicsLayer( options, mapId, @@ -75,7 +75,7 @@ class ArcgisMapController { required String layerId, required String url, required SceneLayerOptions options, - }) async { + }) { return ArcgisMapPlatform.instance.addSceneLayer( options: options, layerId: layerId, @@ -300,7 +300,7 @@ class ArcgisMapController { ArcgisMapPlatform.instance.addViewPadding(mapId, padding); } - Future toggleBaseMap({required BaseMap baseMap}) async { + Future toggleBaseMap({required BaseMap baseMap}) { return ArcgisMapPlatform.instance.toggleBaseMap(mapId, baseMap); } diff --git a/arcgis_map_sdk/pubspec.yaml b/arcgis_map_sdk/pubspec.yaml index c6d9c60e..43bfc619 100644 --- a/arcgis_map_sdk/pubspec.yaml +++ b/arcgis_map_sdk/pubspec.yaml @@ -6,8 +6,8 @@ maintainer: Matthaios Saitakis (@MatthaiosSait), Stefan Schaller (@stefanschalle Pascal Welsch (@passsy), Max Peters (@maxpeters) environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: arcgis_map_sdk_android: ^0.8.0 @@ -18,7 +18,7 @@ dependencies: sdk: flutter dev_dependencies: - lint: ^2.0.0 + lint: ^2.8.0 flutter: plugin: diff --git a/arcgis_map_sdk_android/pubspec.yaml b/arcgis_map_sdk_android/pubspec.yaml index fbd7910b..15ac6e4e 100644 --- a/arcgis_map_sdk_android/pubspec.yaml +++ b/arcgis_map_sdk_android/pubspec.yaml @@ -5,8 +5,8 @@ repository: https://github.com/fluttercommunity/arcgis_map_sdk maintainer: Stefan Schaller (@stefanschaller), Julian Bissekkou (@JulianBissekkou) environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: arcgis_map_sdk_method_channel: ^0.8.0 @@ -16,7 +16,7 @@ dependencies: sdk: flutter dev_dependencies: - lint: ^2.0.0 + lint: ^2.8.0 flutter: plugin: diff --git a/arcgis_map_sdk_ios/pubspec.yaml b/arcgis_map_sdk_ios/pubspec.yaml index 0b6cf805..1fb204d9 100644 --- a/arcgis_map_sdk_ios/pubspec.yaml +++ b/arcgis_map_sdk_ios/pubspec.yaml @@ -5,8 +5,8 @@ repository: https://github.com/fluttercommunity/arcgis_map_sdk maintainer: Stefan Schaller (@stefanschaller), Julian Bissekkou (@JulianBissekkou) environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: arcgis_map_sdk_method_channel: ^0.8.0 @@ -16,7 +16,7 @@ dependencies: sdk: flutter dev_dependencies: - lint: ^2.0.0 + lint: ^2.8.0 flutter: plugin: diff --git a/arcgis_map_sdk_method_channel/lib/src/method_channel_arcgis_map_plugin.dart b/arcgis_map_sdk_method_channel/lib/src/method_channel_arcgis_map_plugin.dart index 08ce5a60..3b406102 100644 --- a/arcgis_map_sdk_method_channel/lib/src/method_channel_arcgis_map_plugin.dart +++ b/arcgis_map_sdk_method_channel/lib/src/method_channel_arcgis_map_plugin.dart @@ -25,7 +25,7 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { int mapId, void Function(double)? getZoom, String layerId, - ) async { + ) { throw UnimplementedError('addFeatureLayer() has not been implemented.'); } @@ -43,7 +43,8 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { @override Future setAutoPanMode(String autoPanMode, int mapId) { - return _methodChannelBuilder(mapId).invokeMethod("set_auto_pan_mode", autoPanMode); + return _methodChannelBuilder(mapId) + .invokeMethod("set_auto_pan_mode", autoPanMode); } @override @@ -121,7 +122,7 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { required int mapId, required String featureLayerId, required List data, - }) async { + }) { throw UnimplementedError('addFeatureLayer() has not been implemented.'); } @@ -165,7 +166,7 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { AnimationOptions? animationOptions, int? threeDHeading, int? threeDTilt, - }) async { + }) { return _methodChannelBuilder(mapId).invokeMethod( "move_camera", { @@ -196,7 +197,7 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { required int lodFactor, required int mapId, AnimationOptions? animationOptions, - }) async { + }) { return _methodChannelBuilder(mapId).invokeMethod( "zoom_in", {"lodFactor": lodFactor}, @@ -208,7 +209,7 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { required int lodFactor, required int mapId, AnimationOptions? animationOptions, - }) async { + }) { return _methodChannelBuilder(mapId).invokeMethod( "zoom_out", {"lodFactor": lodFactor}, @@ -216,7 +217,7 @@ class MethodChannelArcgisMapPlugin extends ArcgisMapPlatform { } @override - Future retryLoad(int mapId) async { + Future retryLoad(int mapId) { return _methodChannelBuilder(mapId).invokeMethod("retryLoad"); } diff --git a/arcgis_map_sdk_method_channel/lib/src/model_extension.dart b/arcgis_map_sdk_method_channel/lib/src/model_extension.dart index 1b4c83b9..d45f6350 100644 --- a/arcgis_map_sdk_method_channel/lib/src/model_extension.dart +++ b/arcgis_map_sdk_method_channel/lib/src/model_extension.dart @@ -110,7 +110,7 @@ extension on MeshSymbol3D { { 'type': 'fill', 'material': { - 'color': [color.red, color.green, color.blue, colorOpacity], + 'color': [color.r, color.g, color.b, colorOpacity], }, }, ], @@ -174,10 +174,10 @@ Map? _colorToJson(Color? color) { if (color == null) return null; return { - 'red': color.red, - 'green': color.green, - 'blue': color.blue, - 'opacity': color.opacity, + 'red': (color.r * 255).round(), + 'green': (color.g * 255).round(), + 'blue': (color.b * 255).round(), + 'opacity': color.a, }; } diff --git a/arcgis_map_sdk_method_channel/pubspec.yaml b/arcgis_map_sdk_method_channel/pubspec.yaml index 1a2e5b42..116d6591 100644 --- a/arcgis_map_sdk_method_channel/pubspec.yaml +++ b/arcgis_map_sdk_method_channel/pubspec.yaml @@ -5,8 +5,8 @@ repository: https://github.com/fluttercommunity/arcgis_map_sdk maintainer: Stefan Schaller (@stefanschaller), Julian Bissekkou (@JulianBissekkou) environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: arcgis_map_sdk_platform_interface: ^1.0.1 @@ -14,4 +14,4 @@ dependencies: sdk: flutter dev_dependencies: - lint: ^2.0.0 + lint: ^2.8.0 diff --git a/arcgis_map_sdk_platform_interface/lib/arcgis_map_sdk_platform_interface.dart b/arcgis_map_sdk_platform_interface/lib/arcgis_map_sdk_platform_interface.dart index 83b7fd82..bb2294d6 100644 --- a/arcgis_map_sdk_platform_interface/lib/arcgis_map_sdk_platform_interface.dart +++ b/arcgis_map_sdk_platform_interface/lib/arcgis_map_sdk_platform_interface.dart @@ -1,6 +1,3 @@ -// ignore: unnecessary_library_directive -library arcgis_map_sdk_platform_interface; - export 'package:arcgis_map_sdk_platform_interface/src/arcgis_map_sdk_platform_interface.dart'; export 'package:arcgis_map_sdk_platform_interface/src/events/map_event.dart'; export 'package:arcgis_map_sdk_platform_interface/src/models/animation_options.dart'; diff --git a/arcgis_map_sdk_platform_interface/lib/src/arcgis_map_sdk_platform_interface.dart b/arcgis_map_sdk_platform_interface/lib/src/arcgis_map_sdk_platform_interface.dart index 23c7ab0d..c2c8612d 100644 --- a/arcgis_map_sdk_platform_interface/lib/src/arcgis_map_sdk_platform_interface.dart +++ b/arcgis_map_sdk_platform_interface/lib/src/arcgis_map_sdk_platform_interface.dart @@ -34,7 +34,7 @@ class ArcgisMapPlatform extends PlatformInterface { int mapId, void Function(double)? getZoom, String layerId, - ) async { + ) { throw UnimplementedError('addFeatureLayer() has not been implemented.'); } @@ -43,7 +43,7 @@ class ArcgisMapPlatform extends PlatformInterface { int mapId, String layerId, void Function(dynamic)? onPressed, - ) async { + ) { throw UnimplementedError('addGraphicsLayer() has not been implemented.'); } @@ -52,7 +52,7 @@ class ArcgisMapPlatform extends PlatformInterface { required String layerId, required String url, required int mapId, - }) async { + }) { throw UnimplementedError('addSceneLayer() has not been implemented.'); } @@ -68,7 +68,7 @@ class ArcgisMapPlatform extends PlatformInterface { throw UnimplementedError('setMouseCursor() has not been implemented'); } - Future setAutoPanMode(String autoPanMode, int mapId) { + Future setAutoPanMode(String autoPanMode, int mapId) { throw UnimplementedError('setAutoPanMode() has not been implemented'); } @@ -125,7 +125,7 @@ class ArcgisMapPlatform extends PlatformInterface { required int mapId, required String featureLayerId, required List data, - }) async { + }) { throw UnimplementedError('addFeatureLayer() has not been implemented.'); } diff --git a/arcgis_map_sdk_platform_interface/pubspec.yaml b/arcgis_map_sdk_platform_interface/pubspec.yaml index 59302c35..4c6f08cb 100644 --- a/arcgis_map_sdk_platform_interface/pubspec.yaml +++ b/arcgis_map_sdk_platform_interface/pubspec.yaml @@ -6,8 +6,8 @@ maintainer: Matthaios Saitakis (@MatthaiosSait), Stefan Schaller (@stefanschalle Pascal Welsch (@passsy), Max Peters (@maxpeters) environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: flutter: @@ -17,6 +17,6 @@ dependencies: plugin_platform_interface: ^2.1.3 dev_dependencies: - lint: ^2.0.0 + lint: ^2.8.0 flutter: diff --git a/arcgis_map_sdk_web/lib/arcgis_map_web_js.dart b/arcgis_map_sdk_web/lib/arcgis_map_web_js.dart index 16b8a3e0..4468461d 100644 --- a/arcgis_map_sdk_web/lib/arcgis_map_web_js.dart +++ b/arcgis_map_sdk_web/lib/arcgis_map_web_js.dart @@ -1,10 +1,8 @@ @JS() -library arcgis_map_sdk_web; - import 'dart:async'; -import 'dart:js_util'; - import 'package:js/js.dart'; +import 'package:js/js_util.dart'; +import 'package:web/web.dart'; export 'package:arcgis_map_sdk_web/src/arcgis_map_sdk_web.dart'; @@ -420,12 +418,8 @@ class JsHandle { @JS() class Popup {} -@JS() -@staticInterop -class WebGLRenderingContext {} - extension WebGLRenderingContextExtension on WebGLRenderingContext { - external WebglLoseContext? getExtension(String something); + external WebglLoseContext? getCustomExtension(String something); } @JS() diff --git a/arcgis_map_sdk_web/lib/src/arcgis_map_sdk_web.dart b/arcgis_map_sdk_web/lib/src/arcgis_map_sdk_web.dart index 7a675687..a55a065d 100644 --- a/arcgis_map_sdk_web/lib/src/arcgis_map_sdk_web.dart +++ b/arcgis_map_sdk_web/lib/src/arcgis_map_sdk_web.dart @@ -1,12 +1,12 @@ import 'dart:async'; -import 'dart:html'; -import 'dart:js'; import 'package:arcgis_map_sdk_platform_interface/arcgis_map_sdk_platform_interface.dart'; import 'package:arcgis_map_sdk_web/src/arcgis_map_web_controller.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_web_plugins/flutter_web_plugins.dart'; +import 'package:js/js_util.dart'; +import 'package:web/web.dart'; class ArcgisMapWeb extends ArcgisMapPlatform { static final _hasScriptLoaded = Completer(); @@ -15,15 +15,14 @@ class ArcgisMapWeb extends ArcgisMapPlatform { ArcgisMapPlatform.instance = ArcgisMapWeb(); //load webpack custom build of the ArcGIS JS API - final script = ScriptElement() - ..addEventListener("load", (event) => _hasScriptLoaded.complete()) - // ignore: unsafe_html + final script = HTMLScriptElement() ..src = "assets/packages/arcgis_map_sdk_web/assets/arcgis_js_api_custom_build/main.js"; + script.onLoad.listen((event) => _hasScriptLoaded.complete()); document.head!.append(script); - final link = LinkElement() + final link = HTMLLinkElement() ..type = "text/css" ..href = "assets/packages/arcgis_map_sdk_web/assets/css_overrides/override_outline.css" @@ -48,6 +47,12 @@ class ArcgisMapWeb extends ArcgisMapPlatform { _map(mapId).init(); } + @override + Future setMethodCallHandler({ + required int mapId, + required Future Function(MethodCall) onCall, + }) async {} + @override Future moveCamera({ required LatLng point, @@ -120,7 +125,7 @@ class ArcgisMapWeb extends ArcgisMapPlatform { } @override - Future toggleBaseMap(int mapId, BaseMap baseMap) async { + Future toggleBaseMap(int mapId, BaseMap baseMap) { return _map(mapId).toggleBaseMap(baseMap: baseMap); } @@ -140,7 +145,7 @@ class ArcgisMapWeb extends ArcgisMapPlatform { int mapId, void Function(double)? getZoom, String layerId, - ) async { + ) { return _map(mapId) .addFeatureLayer(options, data, onPressed, url, getZoom, layerId); } @@ -151,7 +156,7 @@ class ArcgisMapWeb extends ArcgisMapPlatform { int mapId, String layerId, void Function(dynamic)? onPressed, - ) async { + ) { return _map(mapId).addGraphicsLayer( options, layerId, @@ -165,7 +170,7 @@ class ArcgisMapWeb extends ArcgisMapPlatform { required String layerId, required String url, required int mapId, - }) async { + }) { return _map(mapId).addSceneLayer( options: options, layerId: layerId, @@ -283,8 +288,14 @@ class ArcgisMapWeb extends ArcgisMapPlatform { /// /// https://developers.arcgis.com/javascript/latest/es-modules/#managing-assets-locally // ignore: avoid_dynamic_calls - context["esri"]["core"]["config"]["assetsPath"] = - "/assets/packages/arcgis_map_sdk_web/assets/arcgis_js_api_custom_build/assets"; + final esri = getProperty(globalThis, 'esri'); + final core = getProperty(esri, 'core'); + final config = getProperty(core, 'config'); + setProperty( + config, + 'assetsPath', + "/assets/packages/arcgis_map_sdk_web/assets/arcgis_js_api_custom_build/assets", + ); }); final mapController = ArcgisMapWebController( diff --git a/arcgis_map_sdk_web/lib/src/arcgis_map_web_controller.dart b/arcgis_map_sdk_web/lib/src/arcgis_map_web_controller.dart index 03702a33..eea2d5eb 100644 --- a/arcgis_map_sdk_web/lib/src/arcgis_map_web_controller.dart +++ b/arcgis_map_sdk_web/lib/src/arcgis_map_web_controller.dart @@ -1,7 +1,5 @@ import 'dart:async'; -import 'dart:html'; -import 'dart:js'; -import 'dart:js_util'; +import 'dart:js_interop'; import 'dart:ui' as ui; import 'package:arcgis_map_sdk_platform_interface/arcgis_map_sdk_platform_interface.dart'; @@ -15,6 +13,8 @@ import 'package:async/async.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; +import 'package:js/js_util.dart'; +import 'package:web/web.dart'; class ArcgisMapWebController { final int _mapId; @@ -35,7 +35,7 @@ class ArcgisMapWebController { maxZoom: _mapOptions.maxZoom, ); - late final _div = DivElement() + late final _div = HTMLDivElement() ..id = _getViewType(_mapId) ..style.width = '100%' ..style.height = '100%'; @@ -90,8 +90,10 @@ class ArcgisMapWebController { } Future _createMap() async { - // ignore: avoid_dynamic_calls - context["esri"]["core"]["config"]["apiKey"] = _mapOptions.apiKey; + final esri = getProperty(globalThis, 'esri'); + final core = getProperty(esri, 'core'); + final config = getProperty(core, 'config'); + setProperty(config, 'apiKey', _mapOptions.apiKey); if (_mapOptions.mapStyle == MapStyle.threeD) { _sceneView = _createJsSceneView(); @@ -171,7 +173,7 @@ class ArcgisMapWebController { void Function(double)? getZoom, String layerId, ) async { - if (context["FeatureLayer"] == null) { + if (getProperty(globalThis, "FeatureLayer") == null) { await promiseToFuture(loadFeatureLayer()); } return _layerController!.createFeatureLayer( @@ -189,7 +191,7 @@ class ArcgisMapWebController { required SceneLayerOptions options, required String layerId, required String url, - }) async { + }) { final scene = _layerController!.createSceneLayer( options: options, layerId: layerId, @@ -209,7 +211,7 @@ class ArcgisMapWebController { GraphicsLayerOptions options, String layerId, void Function(dynamic)? onPressed, - ) async { + ) { return _layerController!.createGraphicsLayer( options, layerId, @@ -254,23 +256,23 @@ class ArcgisMapWebController { ); // "webgl" (or "experimental-webgl") which will create a WebGLRenderingContext object representing a // three-dimensional rendering context. This context is only available on browsers that implement WebGL version 1 (OpenGL ES 2.0). - final webgl = (canvasElement as CanvasElement?)?.getContext('webgl'); + final webgl = (canvasElement as HTMLCanvasElement?)?.getContext('webgl'); // "webgl2" which will create a WebGL2RenderingContext object representing a three-dimensional rendering context. // This context is only available on browsers that implement WebGL version 2 (OpenGL ES 3.0) final webgl2 = canvasElement?.getContext('webgl2'); if (webgl != null) { (webgl as WebGLRenderingContext) - .getExtension('WEBGL_lose_context') + .getCustomExtension('WEBGL_lose_context') ?.loseContext(); - webgl.getExtension('WEBGL_lose_context')?.restoreContext(); + webgl.getCustomExtension('WEBGL_lose_context')?.restoreContext(); } if (webgl2 != null) { (webgl2 as WebGLRenderingContext) - .getExtension('WEBGL_lose_context') + .getCustomExtension('WEBGL_lose_context') ?.loseContext(); - webgl2.getExtension('WEBGL_lose_context')?.restoreContext(); + webgl2.getCustomExtension('WEBGL_lose_context')?.restoreContext(); } } diff --git a/arcgis_map_sdk_web/lib/src/components/attribution.dart b/arcgis_map_sdk_web/lib/src/components/attribution.dart index b7ba01c4..d504e0b8 100644 --- a/arcgis_map_sdk_web/lib/src/components/attribution.dart +++ b/arcgis_map_sdk_web/lib/src/components/attribution.dart @@ -1,10 +1,9 @@ -import "dart:js_util" as js_util; - import 'package:arcgis_map_sdk_web/arcgis_map_web_js.dart'; +import 'package:js/js_util.dart'; /// The attribution attached to the map view class Attribution { JsAttribution init({dynamic view}) => JsAttribution( - js_util.jsify({"view": view}), + jsify({"view": view}), ); } diff --git a/arcgis_map_sdk_web/lib/src/components/esri_map.dart b/arcgis_map_sdk_web/lib/src/components/esri_map.dart index f5af4e3a..2b4c566d 100644 --- a/arcgis_map_sdk_web/lib/src/components/esri_map.dart +++ b/arcgis_map_sdk_web/lib/src/components/esri_map.dart @@ -1,6 +1,6 @@ -import "dart:js_util" as js_util; import 'package:arcgis_map_sdk_web/arcgis_map_web_js.dart'; import 'package:arcgis_map_sdk_web/src/components/vector_layer.dart'; +import 'package:js/js_util.dart'; class EsriMap { const EsriMap(); @@ -12,9 +12,9 @@ class EsriMap { }) { if (vectorTileLayerUrls != null && vectorTileLayerUrls.isNotEmpty) { return JsEsriMap( - js_util.jsify({ + jsify({ "basemap": JsBaseMap( - js_util.jsify({ + jsify({ 'baseLayers': vectorTileLayerUrls.map( (String url) { return VectorLayer().init(url: url); @@ -26,7 +26,7 @@ class EsriMap { ); } else { return JsEsriMap( - js_util.jsify({"basemap": basemap, "ground": ground}), + jsify({"basemap": basemap, "ground": ground}), ); } } diff --git a/arcgis_map_sdk_web/lib/src/components/map_view.dart b/arcgis_map_sdk_web/lib/src/components/map_view.dart index 681a1965..aba8a95d 100644 --- a/arcgis_map_sdk_web/lib/src/components/map_view.dart +++ b/arcgis_map_sdk_web/lib/src/components/map_view.dart @@ -1,6 +1,6 @@ -import "dart:js_util" as js_util; import 'package:arcgis_map_sdk_platform_interface/arcgis_map_sdk_platform_interface.dart'; import 'package:arcgis_map_sdk_web/arcgis_map_web_js.dart'; +import 'package:js/js_util.dart'; class MapView { JsMapView init({ @@ -18,7 +18,7 @@ class MapView { required double yMax, }) => JsMapView( - js_util.jsify({ + jsify({ "container": container, "map": map, "center": center, diff --git a/arcgis_map_sdk_web/lib/src/components/scene_view.dart b/arcgis_map_sdk_web/lib/src/components/scene_view.dart index d8a3589b..cf9b03d7 100644 --- a/arcgis_map_sdk_web/lib/src/components/scene_view.dart +++ b/arcgis_map_sdk_web/lib/src/components/scene_view.dart @@ -1,6 +1,6 @@ -import "dart:js_util" as js_util; import 'package:arcgis_map_sdk_platform_interface/arcgis_map_sdk_platform_interface.dart'; import 'package:arcgis_map_sdk_web/arcgis_map_web_js.dart'; +import 'package:js/js_util.dart'; class SceneView { JsSceneView init({ @@ -20,7 +20,7 @@ class SceneView { required double yMax, }) { return JsSceneView( - js_util.jsify({ + jsify({ "container": container, "map": map, "center": position, diff --git a/arcgis_map_sdk_web/lib/src/layer_controller.dart b/arcgis_map_sdk_web/lib/src/layer_controller.dart index bd418130..f0b1c32d 100644 --- a/arcgis_map_sdk_web/lib/src/layer_controller.dart +++ b/arcgis_map_sdk_web/lib/src/layer_controller.dart @@ -1,6 +1,4 @@ import 'dart:async'; -import 'dart:html' hide VoidCallback; -import 'dart:js_util'; import 'package:arcgis_map_sdk_platform_interface/arcgis_map_sdk_platform_interface.dart'; import 'package:arcgis_map_sdk_web/arcgis_map_web_js.dart'; @@ -12,6 +10,8 @@ import 'package:async/async.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; +import 'package:js/js_util.dart'; +import 'package:web/web.dart'; enum HoveredState { hovered, notHovered } @@ -677,7 +677,7 @@ class LayerController { /// Changes the mouse cursor to a specified [SystemMouseCursor]. void setMouseCursor(String mapId, SystemMouseCursor cursor) { final setCursor = cursor.kind == 'basic' ? 'default' : 'pointer'; - document.getElementById(mapId)?.style.cursor = setCursor; + (document.getElementById(mapId) as HTMLElement?)?.style.cursor = setCursor; } /// Updates the graphic representation of an existing polygon via the [SimpleFillSymbol]. @@ -941,7 +941,9 @@ class LayerController { if (graphic.onHover == null && graphic.onEnter == null && - graphic.onExit == null) return Future(() => null); + graphic.onExit == null) { + return Future(() => null); + } _graphics[graphic] = HoveredState.notHovered; return Future(() => null); } @@ -956,7 +958,7 @@ class LayerController { bool executing = false; return view.on( ['pointer-move'], - allowInterop((event) async { + allowInterop((event) { if (executing) return; _deBouncer.run( () async { @@ -995,7 +997,9 @@ class LayerController { JsHitTestResult hitTestResult, ) { if (resultsLength < 1 || - hitTestResult.results?[0].graphic?.attributes == null) return; + hitTestResult.results?[0].graphic?.attributes == null) { + return; + } final String? hitTestId = hitTestResult.results?[0].graphic?.attributes.id; for (final Graphic graphic in _graphics.keys) { if (hitTestId == graphic.getAttributesId()) { diff --git a/arcgis_map_sdk_web/lib/src/model_extension.dart b/arcgis_map_sdk_web/lib/src/model_extension.dart index c9f601f5..066fc1d4 100644 --- a/arcgis_map_sdk_web/lib/src/model_extension.dart +++ b/arcgis_map_sdk_web/lib/src/model_extension.dart @@ -1,3 +1,5 @@ +import 'dart:ui'; + import 'package:arcgis_map_sdk_platform_interface/arcgis_map_sdk_platform_interface.dart'; extension AnimationOptionsJsonExtension on AnimationOptions { @@ -103,7 +105,12 @@ extension on MeshSymbol3D { { 'type': 'fill', 'material': { - 'color': [color.red, color.green, color.blue, colorOpacity], + 'color': [ + color.red255, + color.green255, + color.blue255, + colorOpacity + ], }, }, ], @@ -113,13 +120,13 @@ extension on MeshSymbol3D { extension on SimpleMarkerSymbol { Map convertToJson() => { 'type': 'simple-marker', - 'color': [color.red, color.green, color.blue, colorOpacity], + 'color': [color.red255, color.green255, color.blue255, colorOpacity], 'size': radius, 'outline': { 'color': [ - outlineColor.red, - outlineColor.green, - outlineColor.blue, + outlineColor.red255, + outlineColor.green255, + outlineColor.blue255, outlineColorOpacity, ], 'width': outlineWidth, @@ -141,12 +148,17 @@ extension on PictureMarkerSymbol { extension on SimpleFillSymbol { Map convertToJson() => { 'type': 'simple-fill', - 'color': [fillColor.red, fillColor.green, fillColor.blue, opacity], + 'color': [ + fillColor.red255, + fillColor.green255, + fillColor.blue255, + opacity + ], 'outline': { 'color': [ - outlineColor.red, - outlineColor.green, - outlineColor.blue, + outlineColor.red255, + outlineColor.green255, + outlineColor.blue255, ], // White 'width': outlineWidth, }, @@ -156,7 +168,7 @@ extension on SimpleFillSymbol { extension on SimpleLineSymbol { Map convertToJson() => { 'cap': cap.value, - 'color': [color?.red, color?.green, color?.blue, colorOpacity], + 'color': [color?.red255, color?.green255, color?.blue255, colorOpacity], 'declaredClass': declaredClass, 'join': join.value, 'marker': marker?.convertToJson(), @@ -169,7 +181,7 @@ extension on SimpleLineSymbol { extension on LineSymbolMarker { Map convertToJson() => { - 'color': [color?.red, color?.green, color?.blue, colorOpacity], + 'color': [color?.red255, color?.green255, color?.blue255, colorOpacity], 'declaredClass': declaredClass, 'placement': placement.value, 'style': style.value, @@ -238,4 +250,12 @@ extension GroundExt on Ground { String get value => values[this]!; } +extension ColorExt on Color { + int get red255 => (r * 255).round(); + + int get blue255 => (b * 255).round(); + + int get green255 => (g * 255).round(); +} + // endregion diff --git a/arcgis_map_sdk_web/pubspec.yaml b/arcgis_map_sdk_web/pubspec.yaml index 395c77f0..7aac3ed5 100644 --- a/arcgis_map_sdk_web/pubspec.yaml +++ b/arcgis_map_sdk_web/pubspec.yaml @@ -5,8 +5,8 @@ repository: https://github.com/fluttercommunity/arcgis_map_sdk maintainer: Matthaios Saitakis (@MatthaiosSait), Pascal Welsch (@passsy), Max Peters (@maxpeters) environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: arcgis_map_sdk_platform_interface: ^1.0.1 @@ -17,9 +17,10 @@ dependencies: flutter_web_plugins: sdk: flutter js: ^0.6.2 + web: ^1.1.1 dev_dependencies: - lint: ^2.0.0 + lint: ^2.8.0 flutter: plugin: diff --git a/example/android/.gitignore b/example/android/.gitignore index 6f568019..10281877 100644 --- a/example/android/.gitignore +++ b/example/android/.gitignore @@ -11,3 +11,4 @@ GeneratedPluginRegistrant.java key.properties **/*.keystore **/*.jks +/app/.cxx/ diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 4c9e58aa..59e324a1 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,10 +22,6 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { compileSdkVersion flutter.compileSdkVersion @@ -80,6 +77,3 @@ flutter { source '../..' } -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/example/android/build.gradle b/example/android/build.gradle index d7538b8e..bc157bd1 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,16 +1,3 @@ -buildscript { - ext.kotlin_version = '1.9.0' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.3.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 44e62bcf..070dc5d4 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -1,11 +1,25 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "8.3.2" apply false + id "org.jetbrains.kotlin.android" version "1.9.0" apply false +} + +include ":app" \ No newline at end of file diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 5e31d3d3..c53e2b31 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -48,6 +48,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/example/lib/location_indicator_example_page.dart b/example/lib/location_indicator_example_page.dart index 9df06dc9..deca0820 100644 --- a/example/lib/location_indicator_example_page.dart +++ b/example/lib/location_indicator_example_page.dart @@ -10,10 +10,12 @@ class LocationIndicatorExamplePage extends StatefulWidget { const LocationIndicatorExamplePage({super.key}); @override - State createState() => _LocationIndicatorExamplePageState(); + State createState() => + _LocationIndicatorExamplePageState(); } -class _LocationIndicatorExamplePageState extends State { +class _LocationIndicatorExamplePageState + extends State { final _mockLocations = [ LatLng(48.1234963, 11.5910182), LatLng(48.1239241, 11.45897063), @@ -49,7 +51,8 @@ class _LocationIndicatorExamplePageState extends State _refreshAutoPanMode()); + _panUpdateSubscription = controller + .centerPosition() + .listen((_) => _refreshAutoPanMode()); }, ), ), @@ -82,7 +87,9 @@ class _LocationIndicatorExamplePageState extends State _useCourseSymbolForMovement = !_useCourseSymbolForMovement, + () => + _useCourseSymbolForMovement = !_useCourseSymbolForMovement, ); _configureLocationDisplay(Colors.red); }, child: Text( - _useCourseSymbolForMovement ? "Disable course indicator" : "Enable course indicator", + _useCourseSymbolForMovement + ? "Disable course indicator" + : "Enable course indicator", ), ), ElevatedButton( @@ -157,7 +167,9 @@ class _LocationIndicatorExamplePageState extends State _switchLocationSource() async { await _controller!.locationDisplay.stopSource(); await _controller!.setLocationDisplay( - _isManualLocationSource ? ArcgisLocationDisplay() : ArcgisManualLocationDisplay(), + _isManualLocationSource + ? ArcgisLocationDisplay() + : ArcgisManualLocationDisplay(), ); setState(() => _isManualLocationSource = !_isManualLocationSource); @@ -254,7 +266,8 @@ class _LocationIndicatorExamplePageState extends State _refreshAutoPanMode() async { _refreshAutoPanModeTimer?.cancel(); - _refreshAutoPanModeTimer = Timer(const Duration(milliseconds: 50), () async { + _refreshAutoPanModeTimer = + Timer(const Duration(milliseconds: 50), () async { final panMode = await _controller!.locationDisplay.getAutoPanMode(); if (!mounted) return; setState(() => _activeAutoPanMode = panMode); diff --git a/example/pubspec.lock b/example/pubspec.lock index 91231b19..7b5b015e 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -47,42 +47,42 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" collection: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.1" crypto: dependency: transitive description: @@ -103,10 +103,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" fixnum: dependency: transitive description: @@ -206,18 +206,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.8" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: @@ -230,18 +230,18 @@ packages: dependency: "direct dev" description: name: lint - sha256: d758a5211fce7fd3f5e316f804daefecdc34c7e53559716125e6da7388ae8565 + sha256: "3cd03646de313481336500ba02eb34d07c590535525f154aae7fda7362aa07a9" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.8.0" matcher: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.17" material_color_utilities: dependency: transitive description: @@ -254,18 +254,18 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" path: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" plugin_platform_interface: dependency: transitive description: @@ -278,15 +278,15 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_span: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.1" sprintf: dependency: transitive description: @@ -299,42 +299,42 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.4.1" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.4" typed_data: dependency: transitive description: @@ -363,10 +363,18 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" sdks: - dart: ">=3.5.0 <4.0.0" + dart: ">=3.7.0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 1dfd4de2..6d04f986 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -6,8 +6,8 @@ publish_to: none version: 0.0.0 environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ">=3.2.0 <4.0.0" + flutter: ">=3.16.0" dependencies: arcgis_map_sdk: ^0.8.0 @@ -22,7 +22,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - lint: ^2.0.0 + lint: ^2.8.0 flutter: assets: