From daef593a23576108884a8d064388aaa0cf65de4d Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Mon, 17 Feb 2025 22:35:54 +0700 Subject: [PATCH 01/11] Add lint ignore for color deprecated members --- packages/core/test/_.dart | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/core/test/_.dart b/packages/core/test/_.dart index c02f5b685..5b300247b 100644 --- a/packages/core/test/_.dart +++ b/packages/core/test/_.dart @@ -305,9 +305,17 @@ class Explainer { return attr; } + // TODO: remove lint ignore when our minimum Flutter version >= 3.24 + // ignore: deprecated_member_use String _color(Color c) => '#${_colorHex(c.alpha)}' + // TODO: remove lint ignore when our minimum Flutter version >= 3.24 + // ignore: deprecated_member_use '${_colorHex(c.red)}' + // TODO: remove lint ignore when our minimum Flutter version >= 3.24 + // ignore: deprecated_member_use '${_colorHex(c.green)}' + // TODO: remove lint ignore when our minimum Flutter version >= 3.24 + // ignore: deprecated_member_use '${_colorHex(c.blue)}'; String _colorHex(int i) { From b327bde3203855c39604b2c644db662cfd912815 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Mon, 17 Feb 2025 22:42:09 +0700 Subject: [PATCH 02/11] Temporary disable dart format check on GitHub Actions --- .github/workflows/flutter.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml index a6d8a944d..75344db56 100644 --- a/.github/workflows/flutter.yml +++ b/.github/workflows/flutter.yml @@ -27,7 +27,10 @@ jobs: uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2.16.0 with: cache: true - - run: dart format --set-exit-if-changed --output none . + + # TODO: investigate why this fail on GitHub Actions + # - run: dart format --set-exit-if-changed --output none . + - name: Run chromedriver run: | set -e From 7f4b2a0a2ef3a808367f63d72c9989214869cc11 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Mon, 17 Feb 2025 23:12:01 +0700 Subject: [PATCH 03/11] Add missing docs explaining `ignore` --- .../integration_test/auto_resize_test.dart | 14 +- packages/core/lib/src/core_legacy.dart | 1 + .../lib/src/internal/core_build_tree.dart | 1 + packages/core/lib/src/widgets/html_flex.dart | 230 ++++++++++++------ .../lib/src/widgets/html_list_marker.dart | 4 +- packages/core/lib/src/widgets/html_table.dart | 1 - packages/core/test/_.dart | 53 ++-- packages/core/test/src/core_legacy_test.dart | 1 + .../core/test/src/internal/text_ops_test.dart | 7 +- packages/fwfh_svg/test/svg_factory_test.dart | 3 + .../lib/src/web_view/web_view.dart | 4 +- packages/fwfh_webview/test/web_view_test.dart | 38 +-- 12 files changed, 201 insertions(+), 156 deletions(-) diff --git a/demo_app/integration_test/auto_resize_test.dart b/demo_app/integration_test/auto_resize_test.dart index b4b3b4833..05b758a5b 100644 --- a/demo_app/integration_test/auto_resize_test.dart +++ b/demo_app/integration_test/auto_resize_test.dart @@ -24,10 +24,10 @@ void main() { }); final webViewTestCases = ValueVariant(const { - WebViewTestCase(0.5, false), - WebViewTestCase(1.0, false), - WebViewTestCase(2.0, false), - WebViewTestCase(1.0, true), + WebViewTestCase(input: 0.5, issue375: false), + WebViewTestCase(input: 1.0, issue375: false), + WebViewTestCase(input: 2.0, issue375: false), + WebViewTestCase(input: 1.0, issue375: true), }); patrolTest( @@ -64,8 +64,10 @@ class WebViewTestCase { final double input; final bool issue375; - // ignore: avoid_positional_boolean_parameters - const WebViewTestCase(this.input, this.issue375); + const WebViewTestCase({ + required this.input, + required this.issue375, + }); Future<_AspectRatioTest> run(PatrolIntegrationTester $) async { final html = ''' diff --git a/packages/core/lib/src/core_legacy.dart b/packages/core/lib/src/core_legacy.dart index dbbe593f6..594020614 100644 --- a/packages/core/lib/src/core_legacy.dart +++ b/packages/core/lib/src/core_legacy.dart @@ -1,3 +1,4 @@ +// intentionally uses deprecated members for backwards compatibility // ignore_for_file: deprecated_member_use_from_same_package import 'package:flutter/widgets.dart'; diff --git a/packages/core/lib/src/internal/core_build_tree.dart b/packages/core/lib/src/internal/core_build_tree.dart index 40203ef2d..ef067714e 100644 --- a/packages/core/lib/src/internal/core_build_tree.dart +++ b/packages/core/lib/src/internal/core_build_tree.dart @@ -450,6 +450,7 @@ class _LockableDeclarations extends LockableList { class _WidgetPlaceholderDefault extends StatelessWidget implements + // internal implementation detail of our own placeholder // ignore: avoid_implementing_value_types WidgetPlaceholder { const _WidgetPlaceholderDefault(); diff --git a/packages/core/lib/src/widgets/html_flex.dart b/packages/core/lib/src/widgets/html_flex.dart index 3539824af..2f6b66094 100644 --- a/packages/core/lib/src/widgets/html_flex.dart +++ b/packages/core/lib/src/widgets/html_flex.dart @@ -24,8 +24,6 @@ If hashes are mismatched, then the code below should be updated. */ -// ignore_for_file: require_trailing_commas, avoid_multiple_declarations_per_line - import 'dart:math' as math; import 'package:flutter/foundation.dart'; @@ -46,9 +44,10 @@ class HtmlFlex extends MultiChildRenderObjectWidget { this.clipBehavior = Clip.none, super.children, }) : assert( - !identical(crossAxisAlignment, CrossAxisAlignment.baseline) || - textBaseline != null, - 'textBaseline is required if you specify the crossAxisAlignment with CrossAxisAlignment.baseline'); + !identical(crossAxisAlignment, CrossAxisAlignment.baseline) || + textBaseline != null, + 'textBaseline is required if you specify the crossAxisAlignment with CrossAxisAlignment.baseline', + ); // Cannot use == in the assert above instead of identical because of https://github.com/dart-lang/language/issues/1811. final Axis direction; @@ -98,9 +97,11 @@ class HtmlFlex extends MultiChildRenderObjectWidget { @override void updateRenderObject( - BuildContext context, - // ignore: library_private_types_in_public_api - covariant _HtmlFlexRenderObject renderObject) { + BuildContext context, + // TODO: rewrite HtmlFlex and get rid of this render object + // ignore: library_private_types_in_public_api + covariant _HtmlFlexRenderObject renderObject, + ) { renderObject ..direction = direction ..mainAxisAlignment = mainAxisAlignment @@ -116,24 +117,54 @@ class HtmlFlex extends MultiChildRenderObjectWidget { void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties.add(EnumProperty('direction', direction)); - properties.add(EnumProperty( - 'mainAxisAlignment', mainAxisAlignment)); - properties.add(EnumProperty('mainAxisSize', mainAxisSize, - defaultValue: MainAxisSize.max)); - properties.add(EnumProperty( - 'crossAxisAlignment', crossAxisAlignment)); - properties.add(EnumProperty('textDirection', textDirection, - defaultValue: null)); - properties.add(EnumProperty( - 'verticalDirection', verticalDirection, - defaultValue: VerticalDirection.down)); - properties.add(EnumProperty('textBaseline', textBaseline, - defaultValue: null)); + properties.add( + EnumProperty( + 'mainAxisAlignment', + mainAxisAlignment, + ), + ); + properties.add( + EnumProperty( + 'mainAxisSize', + mainAxisSize, + defaultValue: MainAxisSize.max, + ), + ); + properties.add( + EnumProperty( + 'crossAxisAlignment', + crossAxisAlignment, + ), + ); + properties.add( + EnumProperty( + 'textDirection', + textDirection, + defaultValue: null, + ), + ); + properties.add( + EnumProperty( + 'verticalDirection', + verticalDirection, + defaultValue: VerticalDirection.down, + ), + ); + properties.add( + EnumProperty( + 'textBaseline', + textBaseline, + defaultValue: null, + ), + ); } } -bool? _startIsTopLeft(Axis direction, TextDirection? textDirection, - VerticalDirection? verticalDirection) { +bool? _startIsTopLeft( + Axis direction, + TextDirection? textDirection, + VerticalDirection? verticalDirection, +) { // If the relevant value of textDirection or verticalDirection is null, this returns null too. switch (direction) { case Axis.horizontal: @@ -157,9 +188,6 @@ bool? _startIsTopLeft(Axis direction, TextDirection? textDirection, } } -// ignore: avoid_private_typedef_functions -typedef _ChildSizingFunction = double Function(RenderBox child, double extent); - class _HtmlFlexRenderObject extends RenderBox with ContainerRenderObjectMixin, @@ -259,8 +287,10 @@ class _HtmlFlexRenderObject extends RenderBox // i.e. there's more than one child switch (direction) { case Axis.horizontal: - assert(textDirection != null, - 'Horizontal $runtimeType with multiple children has a null textDirection, so the layout order is undefined.'); + assert( + textDirection != null, + 'Horizontal $runtimeType with multiple children has a null textDirection, so the layout order is undefined.', + ); break; case Axis.vertical: break; @@ -270,8 +300,10 @@ class _HtmlFlexRenderObject extends RenderBox mainAxisAlignment == MainAxisAlignment.end) { switch (direction) { case Axis.horizontal: - assert(textDirection != null, - 'Horizontal $runtimeType with $mainAxisAlignment has a null textDirection, so the alignment cannot be resolved.'); + assert( + textDirection != null, + 'Horizontal $runtimeType with $mainAxisAlignment has a null textDirection, so the alignment cannot be resolved.', + ); break; case Axis.vertical: break; @@ -283,8 +315,10 @@ class _HtmlFlexRenderObject extends RenderBox case Axis.horizontal: break; case Axis.vertical: - assert(textDirection != null, - 'Vertical $runtimeType with $crossAxisAlignment has a null textDirection, so the alignment cannot be resolved.'); + assert( + textDirection != null, + 'Vertical $runtimeType with $crossAxisAlignment has a null textDirection, so the alignment cannot be resolved.', + ); } } return true; @@ -320,7 +354,7 @@ class _HtmlFlexRenderObject extends RenderBox required Axis sizingDirection, required double extent, // the extent in the direction that isn't the sizing direction - required _ChildSizingFunction + required double Function(RenderBox, double) childSize, // a method to find the size in the sizing direction }) { if (!_canComputeIntrinsics) { @@ -493,10 +527,12 @@ class _HtmlFlexRenderObject extends RenderBox @protected Size computeDryLayout(covariant BoxConstraints constraints) { if (!_canComputeIntrinsics) { - assert(debugCannotComputeDryLayout( - reason: - 'Dry layout cannot be computed for CrossAxisAlignment.baseline, which requires a full layout.', - )); + assert( + debugCannotComputeDryLayout( + reason: + 'Dry layout cannot be computed for CrossAxisAlignment.baseline, which requires a full layout.', + ), + ); return Size.zero; } FlutterError? constraintsError; @@ -525,9 +561,10 @@ class _HtmlFlexRenderObject extends RenderBox } } - FlutterError? _debugCheckConstraints( - {required BoxConstraints constraints, - required bool reportParentConstraints}) { + FlutterError? _debugCheckConstraints({ + required BoxConstraints constraints, + required bool reportParentConstraints, + }) { FlutterError? result; assert(() { final double maxMainSize = _direction == Axis.horizontal @@ -544,13 +581,15 @@ class _HtmlFlexRenderObject extends RenderBox _direction == Axis.horizontal ? 'horizontal' : 'vertical'; final String dimension = _direction == Axis.horizontal ? 'width' : 'height'; - DiagnosticsNode error, message; + DiagnosticsNode error; + DiagnosticsNode message; final List addendum = []; if (!canFlex && (mainAxisSize == MainAxisSize.max || _getFit(child) == FlexFit.tight)) { error = ErrorSummary( - 'RenderFlex children have non-zero flex but incoming $dimension constraints are unbounded.'); + 'RenderFlex children have non-zero flex but incoming $dimension constraints are unbounded.', + ); message = ErrorDescription( 'When a $identity is in a parent that does not provide a finite $dimension constraint, for example ' 'if it is in a $axis scrollable, it will try to shrink-wrap its children along the $axis ' @@ -580,12 +619,18 @@ class _HtmlFlexRenderObject extends RenderBox } } if (node != null) { - addendum.add(node.describeForError( - 'The nearest ancestor providing an unbounded width constraint is')); + addendum.add( + node.describeForError( + 'The nearest ancestor providing an unbounded width constraint is', + ), + ); } } - addendum.add(ErrorHint( - 'See also: https://flutter.dev/unbounded-constraints')); + addendum.add( + ErrorHint( + 'See also: https://flutter.dev/unbounded-constraints', + ), + ); } else { return true; } @@ -608,11 +653,15 @@ class _HtmlFlexRenderObject extends RenderBox ' https://flutter.dev/debugging/#rendering-layer\n' ' http://api.flutter.dev/flutter/rendering/debugDumpRenderTree.html', ), - describeForError('The affected RenderFlex is', - style: DiagnosticsTreeStyle.errorProperty), + describeForError( + 'The affected RenderFlex is', + style: DiagnosticsTreeStyle.errorProperty, + ), DiagnosticsProperty( - 'The creator information is set to', debugCreator, - style: DiagnosticsTreeStyle.errorProperty), + 'The creator information is set to', + debugCreator, + style: DiagnosticsTreeStyle.errorProperty, + ), ...addendum, ErrorDescription( "If none of the above helps enough to fix this problem, please don't hesitate to file a bug:\n" @@ -628,9 +677,10 @@ class _HtmlFlexRenderObject extends RenderBox return result; } - _LayoutSizes _computeSizes( - {required BoxConstraints constraints, - required ChildLayouter layoutChild}) { + _LayoutSizes _computeSizes({ + required BoxConstraints constraints, + required ChildLayouter layoutChild, + }) { assert(_debugHasNecessaryDirections); // Determine used flex factor, size inflexible items, calculate free space. @@ -738,15 +788,17 @@ class _HtmlFlexRenderObject extends RenderBox switch (_direction) { case Axis.horizontal: innerConstraints = constraints.copyWith( - minHeight: minCrossSize, - minWidth: minChildExtent, - maxWidth: maxChildExtent); + minHeight: minCrossSize, + minWidth: minChildExtent, + maxWidth: maxChildExtent, + ); break; case Axis.vertical: innerConstraints = constraints.copyWith( - minWidth: minCrossSize, - minHeight: minChildExtent, - maxHeight: maxChildExtent); + minWidth: minCrossSize, + minHeight: minChildExtent, + maxHeight: maxChildExtent, + ); } final Size childSize = layoutChild(child, innerConstraints); final double childMainSize = _getMainSize(childSize); @@ -803,7 +855,8 @@ class _HtmlFlexRenderObject extends RenderBox assert(() { if (textBaseline == null) { throw FlutterError( - 'To use CrossAxisAlignment.baseline, you must also specify which baseline to use using the "textBaseline" argument.'); + 'To use CrossAxisAlignment.baseline, you must also specify which baseline to use using the "textBaseline" argument.', + ); } return true; }()); @@ -913,7 +966,10 @@ class _HtmlFlexRenderObject extends RenderBox case CrossAxisAlignment.start: case CrossAxisAlignment.end: childCrossPosition = _startIsTopLeft( - flipAxis(direction), textDirection, verticalDirection) == + flipAxis(direction), + textDirection, + verticalDirection, + ) == (_crossAxisAlignment == CrossAxisAlignment.start) ? 0.0 : crossSize - _getCrossSize(child.size); @@ -1024,8 +1080,12 @@ class _HtmlFlexRenderObject extends RenderBox Rect.fromLTWH(0.0, 0.0, 0.0, size.height + _overflow); } paintOverflowIndicator( - context, offset, Offset.zero & size, overflowChildRect, - overflowHints: debugOverflowHints); + context, + offset, + Offset.zero & size, + overflowChildRect, + overflowHints: debugOverflowHints, + ); return true; }()); } @@ -1066,18 +1126,40 @@ class _HtmlFlexRenderObject extends RenderBox void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); properties.add(EnumProperty('direction', direction)); - properties.add(EnumProperty( - 'mainAxisAlignment', mainAxisAlignment)); + properties.add( + EnumProperty( + 'mainAxisAlignment', + mainAxisAlignment, + ), + ); properties.add(EnumProperty('mainAxisSize', mainAxisSize)); - properties.add(EnumProperty( - 'crossAxisAlignment', crossAxisAlignment)); - properties.add(EnumProperty('textDirection', textDirection, - defaultValue: null)); - properties.add(EnumProperty( - 'verticalDirection', verticalDirection, - defaultValue: null)); - properties.add(EnumProperty('textBaseline', textBaseline, - defaultValue: null)); + properties.add( + EnumProperty( + 'crossAxisAlignment', + crossAxisAlignment, + ), + ); + properties.add( + EnumProperty( + 'textDirection', + textDirection, + defaultValue: null, + ), + ); + properties.add( + EnumProperty( + 'verticalDirection', + verticalDirection, + defaultValue: null, + ), + ); + properties.add( + EnumProperty( + 'textBaseline', + textBaseline, + defaultValue: null, + ), + ); } } diff --git a/packages/core/lib/src/widgets/html_list_marker.dart b/packages/core/lib/src/widgets/html_list_marker.dart index ce5de1a8d..2e208b022 100644 --- a/packages/core/lib/src/widgets/html_list_marker.dart +++ b/packages/core/lib/src/widgets/html_list_marker.dart @@ -55,7 +55,7 @@ class _ListMarkerRenderObject extends RenderBox { _ListMarkerRenderObject(this._markerType, this._textStyle); HtmlListMarkerType _markerType; - // ignore: avoid_setters_without_getters + HtmlListMarkerType get markerType => _markerType; set markerType(HtmlListMarkerType v) { if (v == _markerType) { return; @@ -86,7 +86,7 @@ class _ListMarkerRenderObject extends RenderBox { } TextStyle _textStyle; - // ignore: avoid_setters_without_getters + TextStyle get textStyle => _textStyle; set textStyle(TextStyle v) { if (v == _textStyle) { return; diff --git a/packages/core/lib/src/widgets/html_table.dart b/packages/core/lib/src/widgets/html_table.dart index 736683972..80c3b88c3 100644 --- a/packages/core/lib/src/widgets/html_table.dart +++ b/packages/core/lib/src/widgets/html_table.dart @@ -756,7 +756,6 @@ class _TableRenderObject extends RenderBox } bool _borderCollapse; - // ignore: avoid_positional_boolean_parameters void setBorderCollapse(bool v) { if (v != _borderCollapse) { _borderCollapse = v; diff --git a/packages/core/test/_.dart b/packages/core/test/_.dart index 5b300247b..597b371e2 100644 --- a/packages/core/test/_.dart +++ b/packages/core/test/_.dart @@ -20,6 +20,7 @@ Widget? buildCurrentState({GlobalKey? key}) { return null; } + // suppress lint for tests // ignore: invalid_use_of_protected_member return hws.build(hws.context); } @@ -586,8 +587,9 @@ class Explainer { String s = ''; shadows?.forEach((element) { - s += - 'Shadow=[color=${_color(element.color)},offset=${element.offset},blurRadius=${element.blurRadius}]'; + s += 'Shadow=[color=${_color(element.color)},' + 'offset=${element.offset},' + 'blurRadius=${element.blurRadius}]'; }); return s; @@ -612,9 +614,8 @@ class Explainer { widget.builder( context, BoxConstraints.loose( - // TODO: remove lint ignore when our minimum Flutter version >= 3.10 - // ignore: deprecated_member_use - TestWidgetsFlutterBinding.instance.window.physicalSize, + TestWidgetsFlutterBinding + .instance.platformDispatcher.implicitView!.physicalSize, ), ), ); @@ -653,11 +654,13 @@ class Explainer { } if (widget.runtimeType.toString() == 'InlineCustomWidget') { + // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls return _widget((widget as dynamic).child as Widget); } if (widget.runtimeType.toString() == 'ValignBaselineContainer') { + // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls return _widget((widget as dynamic).child as Widget); } @@ -775,15 +778,18 @@ class Explainer { switch (widget.runtimeType.toString()) { case 'HtmlFlex': attr.add( + // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls 'direction=${dynamicWidget.direction}'.replaceAll('Axis.', ''), ); attr.add( + // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls 'mainAxisAlignment=${dynamicWidget.mainAxisAlignment}' .replaceAll('MainAxisAlignment.', ''), ); attr.add( + // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls 'crossAxisAlignment=${dynamicWidget.crossAxisAlignment}' .replaceAll('CrossAxisAlignment.', ''), @@ -810,6 +816,7 @@ class Explainer { // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls final left = dynamicWidget.left as double; + // TODO: remove ignore when our minimum core version >= 1.0 // ignore: avoid_dynamic_calls final right = dynamicWidget.right as double; attr.add( @@ -921,40 +928,20 @@ extension RenderBoxRenderObject on RenderObject { } extension WindowTester on WidgetTester { - double get windowHeight => - // TODO: remove lint ignore when our minimum Flutter version >= 3.10 - // ignore: deprecated_member_use - binding.window.physicalSize.height / - // ignore: deprecated_member_use - binding.window.devicePixelRatio; + double get windowHeight => view.physicalSize.height / view.devicePixelRatio; - double get windowWidth => - // TODO: remove lint ignore when our minimum Flutter version >= 3.10 - // ignore: deprecated_member_use - binding.window.physicalSize.width / - // ignore: deprecated_member_use - binding.window.devicePixelRatio; + double get windowWidth => view.physicalSize.width / view.devicePixelRatio; void setTextScaleFactor(double value) { - // TODO: remove lint ignore when our minimum Flutter version >= 3.10 - // ignore: deprecated_member_use - binding.window.platformDispatcher.textScaleFactorTestValue = value; - addTearDown( - // ignore: deprecated_member_use - binding.window.platformDispatcher.clearTextScaleFactorTestValue, - ); + platformDispatcher.textScaleFactorTestValue = value; + addTearDown(platformDispatcher.clearTextScaleFactorTestValue); } void setWindowSize(Size size) { - // TODO: remove lint ignore when our minimum Flutter version >= 3.10 - // ignore: deprecated_member_use - binding.window.physicalSizeTestValue = size; - // ignore: deprecated_member_use - addTearDown(binding.window.clearPhysicalSizeTestValue); - // ignore: deprecated_member_use - binding.window.devicePixelRatioTestValue = 1.0; - // ignore: deprecated_member_use - addTearDown(binding.window.clearDevicePixelRatioTestValue); + view.physicalSize = size; + addTearDown(view.resetPhysicalSize); + view.devicePixelRatio = 1.0; + addTearDown(view.resetDevicePixelRatio); } } diff --git a/packages/core/test/src/core_legacy_test.dart b/packages/core/test/src/core_legacy_test.dart index 174ed5189..731750543 100644 --- a/packages/core/test/src/core_legacy_test.dart +++ b/packages/core/test/src/core_legacy_test.dart @@ -1,3 +1,4 @@ +// suppress lint for tests // ignore_for_file: deprecated_member_use_from_same_package import 'dart:async'; diff --git a/packages/core/test/src/internal/text_ops_test.dart b/packages/core/test/src/internal/text_ops_test.dart index 6cc9832eb..0c37ddbc1 100644 --- a/packages/core/test/src/internal/text_ops_test.dart +++ b/packages/core/test/src/internal/text_ops_test.dart @@ -76,12 +76,7 @@ Future main() async { testWidgets('reset to null', (tester) async { const html = 'Foo ' 'bar'; - final explained = await explain( - tester, - html, - // ignore: avoid_redundant_argument_values - height: null, - ); + final explained = await explain(tester, html); expect(explained, equals('[RichText:(:(+height=2.0:Foo )(+i:bar))]')); }); diff --git a/packages/fwfh_svg/test/svg_factory_test.dart b/packages/fwfh_svg/test/svg_factory_test.dart index 91cfc971a..856e20198 100644 --- a/packages/fwfh_svg/test/svg_factory_test.dart +++ b/packages/fwfh_svg/test/svg_factory_test.dart @@ -402,6 +402,7 @@ class _GoldenDisallowFactory extends WidgetFactory with SvgFactory { class _MockHttpClient extends Mock implements HttpClient { @override + // suppress lint for tests // ignore: avoid_setters_without_getters set autoUncompress(bool _) {} } @@ -453,6 +454,8 @@ HttpClient _createMockSvgImageHttpClient() { .listen((data) async { await Future.delayed(const Duration(milliseconds: 10)); onData(data); + + // suppress lint for tests // ignore: avoid_dynamic_calls onDone?.call(); }); diff --git a/packages/fwfh_webview/lib/src/web_view/web_view.dart b/packages/fwfh_webview/lib/src/web_view/web_view.dart index 2c545ef86..c2cd15951 100644 --- a/packages/fwfh_webview/lib/src/web_view/web_view.dart +++ b/packages/fwfh_webview/lib/src/web_view/web_view.dart @@ -113,9 +113,7 @@ class WebView extends StatefulWidget { this.unsupportedWorkaroundForIssue37 = true, this.userAgent, super.key, - }) : - // ignore: avoid_bool_literals_in_conditional_expressions - autoResize = js ? (autoResize ?? js) : false; + }) : autoResize = js && (autoResize ?? js); @override State createState() => WebViewState(); diff --git a/packages/fwfh_webview/test/web_view_test.dart b/packages/fwfh_webview/test/web_view_test.dart index 6975f1037..3eafb85d4 100644 --- a/packages/fwfh_webview/test/web_view_test.dart +++ b/packages/fwfh_webview/test/web_view_test.dart @@ -91,8 +91,7 @@ void main() { testWidgets('renders false', (WidgetTester tester) async { debugDefaultTargetPlatformOverride = TargetPlatform.android; - // ignore: avoid_redundant_argument_values - runApp(WebView(url, aspectRatio: aspectRatio, debuggingEnabled: false)); + runApp(WebView(url, aspectRatio: aspectRatio)); expect(FakeWebViewController.instance?.debuggingEnabled, isFalse); debugDefaultTargetPlatformOverride = null; }); @@ -115,8 +114,7 @@ void main() { testWidgets('renders false', (WidgetTester tester) async { debugDefaultTargetPlatformOverride = TargetPlatform.iOS; - // ignore: avoid_redundant_argument_values - runApp(WebView(url, aspectRatio: aspectRatio, debuggingEnabled: false)); + runApp(WebView(url, aspectRatio: aspectRatio)); expect(FakeWebViewController.instance?.debuggingEnabled, isFalse); debugDefaultTargetPlatformOverride = null; }); @@ -254,14 +252,7 @@ void main() { }); testWidgets('renders true', (WidgetTester tester) async { - runApp( - WebView( - url, - aspectRatio: aspectRatio, - // ignore: avoid_redundant_argument_values - js: true, - ), - ); + runApp(WebView(url, aspectRatio: aspectRatio)); expect( FakeWebViewController.instance?.javaScriptMode, JavaScriptMode.unrestricted, @@ -313,14 +304,7 @@ void main() { testWidgets('renders false', (WidgetTester tester) async { debugDefaultTargetPlatformOverride = TargetPlatform.android; - runApp( - WebView( - url, - aspectRatio: aspectRatio, - // ignore: avoid_redundant_argument_values - mediaPlaybackAlwaysAllow: false, - ), - ); + runApp(WebView(url, aspectRatio: aspectRatio)); expect( FakeWebViewController .instance?.androidMediaPlaybackRequiresUserGesture, @@ -331,8 +315,7 @@ void main() { }); group('ios', () { - // ignore: prefer_function_declarations_over_variables - final expectMediaTypesRequiringUserAction = (bool require) { + void expectMediaTypesRequiringUserAction(bool require) { expect( FakeWebViewController.instance?.params, isA().having( @@ -343,7 +326,7 @@ void main() { : isEmpty, ), ); - }; + } testWidgets('renders without value', (WidgetTester tester) async { debugDefaultTargetPlatformOverride = TargetPlatform.iOS; @@ -367,14 +350,7 @@ void main() { testWidgets('renders false', (WidgetTester tester) async { debugDefaultTargetPlatformOverride = TargetPlatform.iOS; - runApp( - WebView( - url, - aspectRatio: aspectRatio, - // ignore: avoid_redundant_argument_values - mediaPlaybackAlwaysAllow: false, - ), - ); + runApp(WebView(url, aspectRatio: aspectRatio)); expectMediaTypesRequiringUserAction(true); debugDefaultTargetPlatformOverride = null; }); From 84cf2dbeb50e371004bbf2bd261c13c0884eaf64 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Mon, 17 Feb 2025 23:17:20 +0700 Subject: [PATCH 04/11] [skip ci] Install Vercel CLI --- .github/workflows/demo_app.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/demo_app.yml b/.github/workflows/demo_app.yml index 8ec95e296..f133c8b58 100644 --- a/.github/workflows/demo_app.yml +++ b/.github/workflows/demo_app.yml @@ -71,6 +71,8 @@ jobs: run: | set -e + npm install --global vercel@latest + cd ./build/web echo '{' >vercel.json echo ' "headers": [ { "source": "/(.*)", "headers": [' >>vercel.json From 3637cc672b985cd395c143902b9d2ff04b7680e7 Mon Sep 17 00:00:00 2001 From: Cirrus CI Date: Mon, 17 Feb 2025 16:42:00 +0000 Subject: [PATCH 05/11] `./tool/update-goldens.sh` --- demo_app/test/goldens/AUDIO.png | Bin 21389 -> 21381 bytes demo_app/test/goldens/B.png | Bin 5004 -> 5006 bytes demo_app/test/goldens/DD,DL,DT.png | Bin 4779 -> 4777 bytes demo_app/test/goldens/H1.png | Bin 5501 -> 5502 bytes demo_app/test/goldens/H3.png | Bin 5007 -> 5011 bytes demo_app/test/goldens/H4.png | Bin 4418 -> 4416 bytes demo_app/test/goldens/H5.png | Bin 4137 -> 4136 bytes demo_app/test/goldens/STRONG.png | Bin 6117 -> 6106 bytes demo_app/test/goldens/SUP.png | Bin 23457 -> 23457 bytes demo_app/test/goldens/SVG.png | Bin 24084 -> 24086 bytes ...BLE,CAPTION,TBODY,THEAD,TFOOT,TR,TH,TD.png | Bin 29283 -> 29286 bytes .../test/goldens/inline/display/table.png | Bin 33329 -> 33333 bytes demo_app/test/goldens/inline/font-weight.png | Bin 25268 -> 25273 bytes demo_app/test/goldens/tag/TABLE/colspan.png | Bin 43272 -> 43272 bytes demo_app/test/goldens/tag/TABLE/rowspan.png | Bin 45451 -> 45438 bytes demo_app/test/just_audio/scenarios.png | Bin 13583 -> 13581 bytes demo_app/test/table/row_color.png | Bin 11032 -> 11034 bytes 17 files changed, 0 insertions(+), 0 deletions(-) diff --git a/demo_app/test/goldens/AUDIO.png b/demo_app/test/goldens/AUDIO.png index 4647047964b3ea304cfb736b7fd528772df3e900..8454e546f37a1757926458bba174d1abf496cb90 100644 GIT binary patch delta 3910 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 N(N;$xtJUly{sU9}UW@<$ delta 3918 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 RVR;bn(bF-+mTKEY{2!V6d3OK+ diff --git a/demo_app/test/goldens/B.png b/demo_app/test/goldens/B.png index b303d6164d2eea8a91e6873498c2f7fc4d0ca9cc..d18dbf1c0c858a2acdfbf23e33dd379ee5efb754 100644 GIT binary patch literal 5006 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 JQuWEpe*nGO#jOAU literal 5004 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 delta 4472 zcmZu!cQ_o|-yc_yh>|6Gi1Sk2%lGIcL7#&-s+1JH>Yrlt80LDoTdInH$qVhK3U)%KxZf z!V@deX+oMX3D|vi`TFOA(M;v`F|Uaa?bofaovaQq6cW&ogp?o=&Ribz@l;LKjJ&=88U} z=Lz8pXW_5$?#=ty=ks)xURhbWG48^C>Pn_;SXuHc84IW$f8HKD%;7rnxrbwISEtyr zmO)!bN3Zz3zy~SsDA*t#cGLe6p-O^1cBZQ-ww4LTi3p|PdQdI8@dR~K?{xKWv4?T} z+>ZVs_Ko`i2H{8dijuB1K}mUjp^<*oBOq(J-kXTZetulr!a@d9^6|MUC+SJpG$^jX zg-_D?1 zjEaiV2os=ZV`C%YrWwzUrE^jpY&=Z2;wmebH`3G7FVT>Nm|>OgXQSHZ5%$rRp-!Is z$&K_npa!NI{aBcUj8!lX0xD17a4)-47DhsD24ehMX-D#1-H6ouh_kp8hrL2wF%Y@L z`7vQgO3zowpDg6`P%LoclzSf$HoyAaMsK?P3gEN6&!wFuK_QYI9$htCtEA$y{m?dR z0{8W6TTP$w+$b)4{`3ea{9Y%8Ma@kVH`|lmv8BleP|k#5qpAnCzVXCyA?QqMj1JxB zQ?Js7`#L<%kY}2auO~Ew+?#6R0OLAi6~>C2PgT^^?D}0NgGRa~D90t5sEYUA$KNP|0lNTqE+ap1#+ z+E}B8|CU#L>}Cdarg=A;s7B=>h8|Df*!$S9J6#*?Z5kUNbN0W6P~{1hR~V`w+*euyhv=Z*AojKaY7U zzPA8-3N4B8ds-IOcJVpzr1ce*y`A%&M~@!C;XAv!%^J<};A3noFZMi3E(Ff(Y&?>0 zBNA1>sVSpO2V+6YCZ zE{lZh3s<#(($u|B0~S#+F)X4(RwEVluSyOBQzYewxU5Hpmy|DeQ|b2ov2cHh{eCkLgZ%a98DmQ2&N1_c_I4HF<500BP=
z-P_w%m4N(jdxjo5LMtQRA1{C7e8ECa zC=L?Eglj&f1}G^hUB?P}-N#GbYNiO<&70WZs}0m6r)m1`(S`4P@s_JXPP7f%DL=`L zy0$cA5y7v+j_)s#1Z-Pc$kHT2{sMuyp5y}J@2cy_i4r`xgvd@RGA?D`-;#}JX;EzN z=;TEpxM(@CX2g zgz01X4|H9Bb*~+jSxh{b-9<%fZV8lx{#k{u>`;9E{JEvcMbu-T7`?LM3VPO)0l6mm zv^%-R#lA-)PW@T;Sr)o<6xYT}eRkgQ0Jh`n>8w(l_k_(FXc#+n+m3e0psIw<#J?Z| zJ~kwthck`Y#F?-Vgp5MZua!_U3AU7HZWcJI@O7Wc@F=K7%4*6og)MuYIWq9Oqgk5zn!ldz=c zUduvPJQ?DO*-Pm}eYQPWw6|oUE_XaVG?mOXp%rLAIt+u?eFz^-vxRikq7|7!ooK=IX~^1oln+y=NjC#Ff6lVyF?n{lgxNY zKt~&vWv(|R+jgQhBhdG7iAPEg>t!`oVrEbf|MKaFN$K#01G{xr7DKExS63WQ>!Lui zt(RRHLLMu<*8?5)sjH1I=q|itA|r!?L65+$9q-hix$z&C*q38OvJMh=-D;BWKF(1e z+6+FJ4k82C*wRC?EQZsbL{2dWlpIY9xw*MX2kc0gSG(uVkLg>-mj_JU5Erzmf5?#n<=zFW8?SM zXN87>*RIv(Pwyk1sdUEqCK8F#k92fW2DmK(mR7xIXp-xUdAbKO>`1k9r^kI}THnGB ztjjjU2x23j%#bnxJCzXSMQ3L>SGtayZ_YN0!r^9SX5#jTcfUIA8o!O#O_-az@q2@4 z@)#qBSxzgvcz(GPRTamxI*=ASfLu#9NYT7Q>nZ=vK|Q`N8$1_)!{_H=I}=#5kp9&F z1IO&lSwOUio|{;L$t>R}M@nWUx;$gPd}9n(sVv|((>dkr;<7*_EUbL5PaU+EAt=DE zUxmR0+OXouT(taiR9^f4Lc;TOFUZ&?2S$A!7{qH4F14v<259yLwXobN@ zibxddCgG&M9GIJF)F?FkGO^FW!GR}{zDO@XT2^D3)70y@*Nu}7+B`*`aB;5VoHEpX zyVO)vym1d3$$M~Kcyr8#yHPQ-iJXec9(_(>gtW|`p_(&D^M_rp+(({s{OWCN>Q8$A zK5B8%ajeXWLrqOh^WiN>Cyh(Mn3cptJ=S~229@pvW>51fJn_he4Q7#J83 z16OElX8F>j-5&a)-=I)43HD|x;4&uY1|t_aPw>sD5H0$E%Y#-<1V)%%kwCSoKOdh1pjd5wW}cy$7o~T!Y*l1bw_#Llr0VRPpY$&Z zRd|zW5?+^X<_Rc5&HOUa;|Hn2wwCCfF03HIOkF!=Yh;uI0s7r_{XBEJ!oyJa#PITMMZ@MT?|lW zc(#$IPR}z>$c|6$rGE%Q{eprAN*AFZ5x`}XZ&;1RX|sw?;=M>%R?I0sLv?(f$&{b1oR z#O)2GE;RWG{d@f}=$D$srC$H}`t4ir`tA?xa!iS=02ZzZeux)CAOYRrUgf{3sURTx@m{a=UohX@4#-{%flUNlvLjFY1y`p=rAE%Av9@xUiC{-9|>KF`UtssFnX{FA-O61B$v z=Nod2i^UvBp!Qg)34NCJXYO>g3F z39ic1aZ5*TOv)vubX>SyIFBO+N0(wPSr7Opkn{ZWKM)1#FU`ET0V8CzChIb&aJK#RP(>yB Zlz!e?QZR!)|1JPsk5nJ4ls&Y4`G0;mzli_< diff --git a/demo_app/test/goldens/H1.png b/demo_app/test/goldens/H1.png index 1c0375bedcd064849162c63b2d40ed7a5965556d..bc0ebe649e0b36fc144e7f3d27e889f65d85800a 100644 GIT binary patch delta 5288 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 aye8AkQZ4GQbc+Q6A5|qyc!h#l$o~MO_*x49 delta 5273 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 AIRF3v diff --git a/demo_app/test/goldens/H5.png b/demo_app/test/goldens/H5.png index ad60f153593c0604f63fe71a31364e3a0697bc0b..88ab43272a88301ae7a9c2fb924e8ca6378389db 100644 GIT binary patch delta 3910 zcmV-M54rHEAgCaaL4VRoL_t(|obBCrR8&{u2k*f91C+K7 z8n1nO_cy8iEumozwx61M6-rwNl$Djq9{b}Y#3x|9w~w^^;Rn-^l$88b`a%om=n)|V z#(Vo9GxHuQDk`9~b-=A#>5bOU&o8Lgr_$B|H8nM@ut!AnXQlfrJ1Z#2$Ko%)fXA!u zQkj{l>9ZU{i@h^$e=L+r;%QxEKx&_Smp#y+*mV zHV;sVsBzCUKyq{QFmTX7xVUtFmfg0hfddCT)%IIsj!wk=jA6sQnq2?Eg9mVQa{NR8 zU5Mz}ll?Ddad9zrY~P8?DVL?P>gpPVhi%1cLx;h8oDUM>e-kvextDnl?c29+u)WBG zQHY5?g!1xoxkHj1IeZl3y?rod)SLJ&WDQD7e?PsIot=%KB}*}&-yn<|J0AP@AJEvg zu&@vT{);i7-yqDJ`w7z1Gc?u@A2t#fFI)rwq@-NNn{WIDKc6^>@!mcd@%m_lZP|*t zztMH|>NR}ufA?wdaPNztB}=hx?FOt04rz4kkDH^qs;a7R^vE$pN5#}DkBW+hhljgH z`St79@v-kL3>q*5fnP0wszfEND=I32rKM$q{isx>SQ_*-(r%o_?P%W-kq4vj=9stf{hqxjDJhY)L$SwWv2$kx0=`&;wd>d5{{38pZVm+i z)YjHwuHSrET3TZNfqe*A?2irWHsJiZ3)1$hf*48J3nEG}d2AOoF@nEA>KX-`@S0HseEV+_WAyuBRb7`uE@|Dk{R=yLa)o z_y3NegT1gMFbD+&g#Z9Oy|yqiGK9~B_wd<*e}x+VFc8smPBf89RVp@b3Ke}k`io^t zmy6WYs~YQf?u-!g=YAqBS5;LBNBd6V#`POQ2q7veDnx+)Vi6O4NTj9R6bBDPiY_kQ zL~?S9v`uYot@!1ae~RT_e913p*Qo ze^FZcu-?S?riim=&Pi=%WMqi$-CRX=b+xFjt`->?8KR=1LR$azvTww;t=okVLgeJ+ z2s;~lar^ddY5j?~pN03h3DWW~uMy(H`3ph_A(E3*gzHPaM0t6+w0{1)PsPClkwOR| z;^Iz-x8M4!sH&=#)~{W&UIedP-QXNQe`$`QBBRBaQE!S_GyOzD!YPe*9|>BrOe7?n zl9ttKwXn0X7gsJ{k;?Y${$6|$@TIgIe==SyTe@6ax$=v+a`}pw`SENq$8Vmft*w>n zJb3UxL`6o6cPC5~AN$S}NlD2K?gJ4$Kbm|EBs)7B0sf1z;ImKR<1-#c#zyt(f3$1g zPI|Aas|!OzL+K)Jn>KCWAFxnb@8sl&^z;nG9{&kFdUOW>XlZGoYu7I5(4hnL_4To6 zp+EW$=m$qf2LQlZZ@+~ZzSA`NyqR_r-s2wLB~?~dhS=k=NWXOpI=T;cP1M$+sHg}< zg+(wmGsO!pw85(2)wp=^5(*0ne~_1#kLfc$1OVh@=fJ|k0(N$GQu{hOk3UG$)6;{V zo}RR9U|;~XS`7fmx|ao4S6Arj>eQJR9aL5}+}4xkC@?Sxef##oY`Qzx)H;(HA98UdeoC*buF!&-Dl zl7oXiPMDh8yM)_w9oQC(e)*)#nxcHCG@f1fc8`uh6#c15sMM@vf!#>Pg_($bQ>Pj%_&=s;V$Wo^}+ zqaS{ZMpR@p#*OvHP|u+lJ!TYo^yn^)_w1Q-7&Uq%+O}=mqCTyxEMaP9io(J|SX)~` zRiZ*%+zITC*aID1UHJM=L;nH&Ths>;{qZ&H8i-P<#N2s)h}gXYe`RH*7&KrgQkr;9 zJSiy|^XGn|QI?gJEd|2vh&`Ax`F$u93Pi_5!uO*Y8sX6t1_lQ3@Nh?NZZ6Et&83&I zu`zUXba3z9J)Amq8pDTsL0?}V0H9X?e$n32(h@gs-a=k(UbFgbjFpuYl9N(2o~Nj) zs&2IYlji8f7hlA?fA9GqD&`=ZoE$OpqgjZE*dx_FeE0|k$oOFY{If;4aQ^q}K>7Iv z$j{4%LZLueSs6S%hvD$yBbYYhLu?M+fWbosLs$2i-oQsh|Al1Tg=K4Ji`jm&@N;|| z%+1Z4w2iZ~Gp=2`j{W-&ATKu$XV0EPSXej)4;}~raCLLVe~*V_FlFjwn3py9Z9%fAs9>1^~#($-(W6+vw7@i>z^O+^`up({3UwD;w+At;aa;cVKDR0lK=n zShs!+R;^wM4-a?f=;$<|MIw40wCLYR8yo8;*EKRS#J9mKuyMmCgslD!&Q4AUS{jJ% zzg_=mt!EHk^YVmRt;ULfe2d$6?qKlXL6|$w4_aDUe=ssOLP$t3LPFMH+qNATIdTL7 zmwbtWf&yuK-;bsvc;#vg_Zo>_y?Wy1S9&8R=8&wh=;`UA3;>8fnSe2GjF$BQKWfxSR8~~t^UwY9;K2h795?`sLUu)>szc0gsh@L4Pfjngw&R@W` ztvhh>Vj_C=>WN8HCc@3l^*=o;GU~LwE#2L`1Uit4xT9NERM}lh6t)lb{L+e=aN`1g>Ad0aJwnX69y6 z`JFp=002s*vc-d`si{F)+D%wkn8U=x1Vu$f(9_d{o}ONd+XjH_>}(VlKhP-a)X5pz z+RRZRqULJyCudDf4LpZ^T5{-|V^AxM5SP zv<(1T!?(k8e~6dHtE#H1)!HW_dY&}v2&A!cEiEmLvZA6QR997N9H{_6etrQeDk@-Q zWvQ`EWo0F@va+C1C^YI1^&ARI%MJj5v>RzKQ7E9RtAonQN|>9QYt&Vhs8C#7427uz zckbLp$BxQ+M=rU!xtRL?6pZtJM=E>ag%_GS1w=$te@By#KpuVI-@kt!*REZcUL`7( zRHv-049k`-N00w?Lr=Hf_-w&KsMTty)oRS~n+La-dcpnWS25oEU1ViF{CfDb8)+E% z`e^j)GY}(RAFa{niMSI;x|9q6@b#UE8Ph*P_inD}<@Pcbe(o>TJANz{UAuILhkIZ2 z>oX9Ze?z>Glao_#A2KsD;q2@LLjwbJ?5Ko`OJ|#e!ltffjRU$en8bSyJ1ucWCn=2A8 zok!r3uQd7+wVFpgmX;lmd^r)jBDNzuY%6}ffBP%)a`WIj<0E_(xEPmzNy4=0A2c{_ zAq1{m{so_Y@)=(B=m!t?zKDxE(cIl9BBI|k`4rY8^XAWi=WCwQa`4Jk();+6@i=ql zEKZ+3BbBA5Ud6ECUP%3CDneF&ha*RhLZvE2@7}$UpO=rLM~-3Z_Ar>4o1v$nL8JYO zf7)8Oy1oPx6BF1wH~;|d{`xCwYigiUm15+mk!at(J=}V_HN3qL2w3b7QCkb=PR@vl zj=_6AlaQ2>2!+C=xzj*I^xSLqH4qC63%Iy+mdcHdj5O*^o-zsJCwNQCMuvtscI-Gl znZE#0F$eL@ishK&H&0`mmfU5f_1h_^f7+Uw$JSG+ROr^NE1aF3prfOMHf`Eq-P#Sv z%gbee5E04HsuuuWex)}O;!nX;p@33phqY_gAv5zHiVBNhV`~FPM+ao2XCNizGK3IN zm?|)M$Y8`oA3{MvA(E3*n%!sTPMu(6WQgeKLr|$ok#s4k!Fsv5dGH+Kg^L#we^Fju zj>A75fsL&VY;0^>Vb6((ohle|C?QCK1&=Fx< z!qKfu515*nLTP7*tb19|*4D4HTfrPoAV%H zUTz-LYBj8^t)Qc$0{|#4F2?<2mp}4phsuC5PoSlF=xAEH8*dYB@I?T+?U}9o| z^z;n0ZQB;s)>cTnk%o5d+rh%Z0+p4ONKemzwY3!t4GpntX9Vo+J3^^cV&d5GSRB}Y z0Q(Q@mHMvh)~$31A)r*+@fKbpq89kW|0a4>RTTpK7h~Jj?Erx8J-Xw|uf9OfMlPlk z5mD>-!w1MCnZIVDvZ@MpcDB&fZT8J&L`2j~f0_UxBBE!Dk6{y&(F!V&&=D5=3s7I{ UHL+&vI{*Lx07*qoM6N<$f-dBk`~Uy| delta 3914 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 Ww{2`PjpXwH&~yKuHu@vVGWh@A!L?)n diff --git a/demo_app/test/goldens/STRONG.png b/demo_app/test/goldens/STRONG.png index 7e3bf797da3a02359036fed2a984fadc26cef9bf..867b12ee61d715a080188f0c7374459247c39b83 100644 GIT binary patch literal 6106 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 literal 6117 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 DPRBOh diff --git a/demo_app/test/goldens/SUP.png b/demo_app/test/goldens/SUP.png index 0270ae77858228d521242f637eae02b53d587b24..81e7858649663e856cfc54d073b5709f7b7d6727 100644 GIT binary patch delta 8577 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 delta 6720 zcmb7Iby!qwn;%LPfnf|v$}y0T0hG>Hh7u%Sx=WOXp$9yu#2`7+QYr`{-3&Q^QX`>s zcS#N5Py%~+ziao}KX$ME_WU>Jx#y{K-@mvM>&fEl$x4jm$#Tk#<(nt~)a04_pHf{L zr?S^p3lDJuKM+fTo&rwEw2G=B3%p^ExI3?VnHj*07a7>&FPj;BE0I{x;^CoPRIi9D z9Sy%@Th+T2)7Uud^WBMadaLocXZJ2eji!^1;GfMj)zkKo60W(x%#k)AHC`y4LJAKp$R7JOYCD7MJl822%BeF!;N zOtPq%j~?IN-o|NJh95rz<9T@UD5?a&nHzB2ELb*RP)K)bb!?({d?ql}dAtR5P@HTccG}CdvqC2V_szcEkIB`|{pe%j=j%(H*zFbe z+eziOU{p39)20VFPZPdH*yQQuGroB7BB^3yb+vQHjH79rnlFB+UC62=aYa+3+ zv9-Sb{tVU985I>-1sID?K%jPQb>)W*zwrT&QHqh%RDDQ{Y?`udHAd$?l!nH7FWKJL z(VtdTwe$AfyW2y1)qY1QSjr1j=A<;eLgR#AgZbP2(V0L;cXz{_M2{Sh;f{#rwsIsN z9hGpJEK4x1bb$SxzdjtC(H) z{!>if+IMB29+rsD4_9^ivx$D%lNP9osTV`j zH?jQ*p`Zrng&o_RGJLI{l{RG2v$t%MNKf19%2m{)9$Q;qu~Cw9Yf=z$J=?#Br?25;_uDyv5~tN2wN3J?u-&eQ&*T=in}dUci9e`!M{tfz-S0%Q(EBR> ziqk%wwJ@w%CwNfX?>F8%*NFxQ0~`^I{MKUwtH9s;zdz~b(*Id*x{P2sZnSKfZr?pU z=G@UbBRe=eguz(;I-}-<;Cp*x#Bw#Ph6?r%h_7QXn8D=KFO2q-*pVROyPd9gE`0VAC zVOLnt)6P-~AHUvCAVh$x&NhsqR@f(#`tCkqmfhiz z^uZ0+_BdBhcO~Ty3p%aD1(YtJz8Dni+j7#eKAf4pyu1r$&-SlupfAUndA_Xy|9jZN z;tOkABzw1%(3YSrQOl)nLtiQ8#XCC!kcgUkI)V@ue#N7kQ-@c&)A^>%uk3f#DQ zx@ZUvHI?g{NnP{dMc~nIAV|N^gp6VAVSISpX-{@|v9_U>e9Y&~J=t1BY9`Ax8p8q&n_y zXbBSe^>ly&27~Ed?EpUmIEIFnT-u8 z5B6ok25k}_0LpNk?F1hAGU4)?yl+nqj*jMLXSH)e=MvlFui1HVw=a2#d%*iGY8#NsWjIvV8hz7^UUxQq!x=Z}t zZ&N@pKO45Ka+;#Sr|RZlland&IMj0T_NF?#*3)K=ulQ|BiV_laZqXSaof!m+n9mNx4ocQ>UT+~eoxFTD`7 zkZs!*?H7#^045EITOmm@(YNxHeHUiilf|~K*7~eeqK#!vK-Zt^Qtd@AYK&IpFIho0V9rwyB0=+E&5H)qd;9q_zep zTl;0^<=)IDr@*b=6TIQ>qH(Jrt<7fIeiV_E9yu{#npINLxALPf7n_u1&m3w+3piw# z0%v6BQQLEdHZ24|Y-eXDQX!1~h75X7xbgJp#`#!pMuSr3)c%b;o;)RQ@96Co0EJ-f z&;4dvIu#L9cpFOMw9L-QHeTL}cq6(5?6}TXPiwG*goL#H9IK+xN1% zJ^{uJYb>!=rh8|hR?KauC)APsxtdA8(l8ju&w@Tyf%_Xidksy{O2^?Gr6|_Ddc>QJ z@hX!fpG^8Xesn`GVLQtD^}8VWI~zD-<+YaOXXiGj;!0ajU|V4azlb%z#<5%CoJ z^J{Brad)F|yG2rk1Td5Ps$DsM4Hkzr0Z(c@H%x!|7b`6b?CUi6i%d*R7{Z#~Qgi;& z{QYb2B0c?6d@FQ&@TjU19sB5px{=^eYEiMs<0WSUm5tdb!J5^MD zxvs7bLj{1Uo10*v@wA63;=8_~q2pMkt6BoD-ZRdr3?h*<;i-$NZ)mu5+3|_-*bnP! z$DwtlFZzWJJCPU_#lL?c;yo$~3i!ctw3({cgmlOyX=XP5up3j}T>|Vta${57P>Ach zd%lG?2iLD%V`Si%Y8-L?8Jz=TU^ZMY0|^@VS$}B3uJ8IhJ3E_!nb|TO`sF(EsMh9N z(c0`Lea6{wLM;xb`^?nuBB8sxutS!HhUT$eYFM3AhPnBWpN~(q4qZyP%A#d8WZP|j zCZO4`f1H|X;SG!g5{GNmaj*^<10+fnZ&w_&ZT)5$L&%AH6>_Ca! zJVGhi*|r*K;>}+Y@+0{7xAVHTBj<;JNq;mt4x7=u+Mi3d(kGOrDR%;GkNy;wnb|ug zvNlp~@0zmqjA<&vXF5fdkZJ;g>tDclmGj}BazxE`Th6y4;5glffwSptOUok<6l%2A zE8oi~waVG>&$lZ-e@4HJizECRbSxk|{<1%3Q^$(M!UAenbTu+%pLl!IpPg*kPXwk2 zR*0cF+M8cfOQ1;wX1}gr-!!|B&CSoZ@?GT?^fF*b6tr_h?j!WpQw$)_M*2^_7(ej>- zMKtIIvm+&dvW2=FVEyEQ*jie&5AYRY`NzGBZJ;UI41+ybPTy~AMo^^)sKct09f zzWQuZEpV-wUXe{M!PIy$%> zJSbN`zDPs!(R*VoI5hMM3yW&8InV&U@i6R$!;5;l1!-GH6_ZN?kG;W!36F{4zIl@j z%^8}SdIO}vJG{JaK7YPiXMThT=qR_R$w|5m^Zu|88Q6X-(Or4#i`Z4 z#7!v}l!X^c&8*j{u&DEP{+N}uI#hT=#(%GbAQXJd3BjhL7&h9WY`js^Uvt$jd|GxHX@4#NM=%WrSh7K0c!Em})??JbcDr zQe}FyJi)m_<5~XaU>vu>W_hQC{NPH*{io^RA%$G0q~D3Tx-1VVB6%BWSh#XE(yd#9 zFV!D!)?EW1BYjS007`qIzAG;yU`Amk6OWBZ^z--M`Tn3+@cGZ%0RaJBd2kqPIp2-U zW2Nt=q|c_hj*bqtS0Tt9uQemdJ?KrJe7W9*WvA>qE9?1HU!29PMe!!?4<_VGs2OfEX z3bKQ6yqoda82?bsEt0%G-RwP`>kJDQESbjC*Z4L95rf{ug|R$%Dvo;ugSDfM7={ja zm;KgD+YM{nKKw3^#`6-KYl^s-RxUYJ96EvJ`#oKXNwfFyc0mrN<4zhY*XZcz-uh_V zlT=Y7K<)-4VEt80$1+6>#jdmL+DPdw(6tT}81;uIgk!`*`$J1eThp3`hK5*TG7Z05 zGZF8hJi?uLd7a5=tRj4<&;&)C`HNfsE_{wzWA&x2o!yTwdVJArhr2n3oHHoGE?dH1 z(tS{I=agcLCRq^e`s*r@**flzp|^Q?yI28^%9osc+P;vz5>qJ7ElJm4N-_SmKHh;KMD8?EgMCRsEs5iW!H#)`At};+!V!%3 z$?^N;iqebm;LWK}JF91rvX9e;S~E4<&|V-6*u&q)0T$$u}tOS?W&x zeMJf8{+u4l&?@-s$44sk{wCG?s6}#=qJLSvbXuu2*I}GpqhbW(`dB5QQ!gBoyi9cD z+FkCg4pnw0TwNMA_O-+T$&EjETo6H%bv`D=)L>=6!$|U{2lG%?F_-T@vVg`q@07&^ z&f&6e@)iV76_tzO;o-i13BwVqipcf$4>GaI$;^(v723W*i$}d7t_GTFYV+wnQ|=z% zd6&cssNbfhs-yPdyr^wJ!;d^R`^ZplVqQnGG*@ z46?PgHO%#T;IKMano=bb28UlynH2cAyu6H>^cp^K77E;=1h8hg} zrt2ozM-G+IbBkNl=29#yL`wmMLTOv^-8(0Y{w&I?%!#ht5BGSlg2u$V;WD3~AOk;e z@%L?oRrX38s!$_ck_HNMzvLZwqgWt2HEWF%KKEvw72ql~t}N5w9znGyq;23FCTlCN z^1)y{GIbYJs$C`v`UxAj`NusZ)6onCa1-BMn0}CHWJs%mqyQSQ0|*Z9^=V|&*t>1# z=ol3g7Dnyo=XY>$AYR80-dLFKZM#Z}zChUU+_5LAhd+Ql#^Vrn9qi;EUcr zxDy|x;LimCJ%Y`^XYHXw`}?jd4MW!Ga*GU%HF#f@1z}@Z1EC zXHZHmIk`+w38KL5LEafn$(l@Jqx9wd@b~3E+BI6WhO$X|UIdee+u$w$w~kgob3x3_ z%>ziI_P&08WNr{&{Lw_ItV*${al7d}R^fgQ^9IGH(6WESXVnidCZt_ISpm#1WkyTb#I_HchL zz~KTdv%~TNL)Cz*1tY?oHb{&}(f8|(2`(oy$ZZBn2*{KTJeZ3>q?v+c5g3mS0)1iV zxNB2-aIjocMJ2t{s{F zq>POaLVVWuo@{Lx!~%@Ur}=n}4yyk~+;VlC$GoV{hSEuC++=FFgWM~v=A-}q(Nd|kB zdaVt?*x9?mo?=0!2)Q}+kwj(LM_S99MB!McT^z_X5lo1sDfE_?^|><2dPH>*e|mBp z9vOKXY>5LM%g#Z}@8kM;kNfxW7YPqIsvapQ7*#r4|M201#us&Dc7R0S#Wic-kYE8C zDCpVIaMK%8ITeUY<;1LK-z6`0N`FI#61sDUHwR94q1CS(nTQ5cZ*Gf z{b$hfBuX({@T`%daW{=3s%uF|7g5@3X zdIp)sCM0~j;acDPJ>@~61=cbDf?LcT^;!zACsnAgJAeO4!uu2WMiBay4th$F%*_#q zMod#vQ)eOw!I^559aP+!8Mg%lqCsJ-Uu@nDn!*UPV%{0o!%Gkc+;_j&pJM5pB=y0i%S?QOBf~klF)}>l_wHUa3#WMXm|==$lQ6d)o6s~KAO!8 zQoIvZ>SAQGTMo-KBYMuHXcVOL=11_uhm@4d=eIR$Kl{XogdOt-IMkHamvgrLZE`Vj zMtdaTGbb~Syx@NeMsB&yyN1>a(H4 zoLz-?@AMD4*&Vm0BQx6kzatO``_-tpIJLOz+iGKKTNAaa*-Uy()z_~}>=unPGs!s3 zkZ)tzd(1yZTsYmK&6TwAY6@*wM;Bygci7EkZA~;`5v&^5IHM&;j9DfoCR%#tt8M1I z<5;u{Bb}G3a162A|NM#B5&p$z@<6u+v%!o=JG5d6qEw4pT2O#ad2>0?wXj; zIBmD>US$hQO{G)$i3_u{Lx|*QYG~M=AEn9?wB*Pp1=pX8ZHyzj(i-d6|J1&sp`lNQ zIXOAmIh*ya6cL+^%Z2aiih`N-$E#wPBMZM&CO{ee#r5fi-6!CCC2jYy3qbV&a~^ z;?0VUl9dOs<|k+iBcryOU89L6BdpR=1+$6oPYCpi9du9858=}BSEfqpp1A51d9t#y zYg0v7%vwCOR8%VTyquhitzTtSPRhjU6y6h>P3GT~OG(~6U0p7P5X#9O$Db2~H!;U- zG`{5J(LZNYZQu7HxQm5P#YdNrEfa5KZT6O!V}e;bw?*hM_cphK>x>cwx@fLwA)m}9uE%>;Ve9(sHiVEwx{gk&uPvs2Rl#a zu^+1odbVRqV3Ri(YLy7KJwS`joyjdb)e7%;ogJ;@rh9i5ej|h&_f=AiR0>E62E zvYeY)vYK^VUHM#Y?=UD^n=OyIT5McrNRKj{knAbpUya62o+Ll#XhTi~dwCoyqndb3 zuK9bCMmJxG8j!%a&DFZBW<8J4f!$lWB4RJpetN9+O#=t!v;q>g8U5)59d)x6Y`B$XP1=pM|u;6ZLW`)*gD(w z|9jjxeRi%DUt)Zapy;?U9prhcB+^69Z~x3BzH@Q|9Wei;=9XJ(X({`1PrR~jwZ&ZA zD~R-O?pH|EWb-77TBgjbN7B>t@lbm$KS)^P;U5nYl9Fz*x%bj#rVC}*q+eYeq0pg3 zhs>RwlE@jAHmOI{JUnqU{e6jtGsh|gIcL2ss3pVkv9TQKSR`_jcR5x;MqT~5s2HY8 zj&MKR%>0Uf`y6Lwvb;t%;x3);G-cPXFD`65VNh!73ocU_mJt4MgBzoKnotMGE_<%Z z=)?-Bez8k_FyE=?5yIKtqru_q`a_dvEeR%0*$e2E(W^Kn&GroO078LJe8*_1e{Cs~ zR5UpkR#?yIe9k|gk_fGdkI*nrG11|E1rD9!&nP)PA@NZL}C~!8L|f^q|a3$g>1vN&L4=%EsR|sR<1f-jgT0{r&WQ zxa4Kk4=K=;=`Q&=)U2hrVu7J%2M^yWpEiibG_;G|e>uy9!dTK-+LzA`YG{YyP?G(- z+~Visay0CoH%Jloke`fG_1^LGdplOB8zL@Fdv-|bgMOeF%VW&TT8Asyt+%mO@_m=D4cVBUpjfC?o?L9>E6)Qh~$i?(;@Rus+By+^? z`pzvisr>xv^4x4H$xhetrC&D|7YHL1ecHes8_!2E&q5o1zA!lWev*uk@V5`fB?d>| z04X?F&?0Suu*XV)$cn;T7w@tJfmmPzg*pe`3RQYF%|2eW^+?p;SN?f1+4oWk_Z)7U znnZCilsBx2-H#+_7}e3JO&!pVb_*&hEUNK5eVCJzBOMNZ`t)gNn6f>SNnARlEhQCj zhQ0B`k#$Y=Dz8E75q<(l#kTZDgNgKhX)6?$F{E+7=n+s z1vu<3s7Odjf0_%cKLzy)!@NdbdlDkB`fbcS)a?xV9IA5-=@36vT=dGz)!I9Tg zezQa&&T1?RQ%_ zAUwc6Sf9>*3R_uOsW3y`6K#&JutFsvV;M^gM>&dh8~v-}d9Ac6yDB|+1spA*hzx_X z6l(C1;v1r2d+1YWveb)Uhs>Ifk4L5KY0mPZSKu#kOt_}Hac!@1cHf9%naX=I5!ddv zfQaGcgKh>J0oHOhwV(g)b_72c*V9X1A2I&W{6<(hzRGLU4ivw_Z@~u?a>?AkGHdQ8 z^I92n1gko3j@|8&e0Z^?C$6IpiRwKZX>g-(D}-*Nq`f`Ib6xHG z1mHIV5A;pjZtq(Ea>no!yd*i!0}9ZG|4@RTqYLbCqi1A@qDAd7siU?%DSr7H)S~ci z?z+QB9Addet^S{Tsq}K_{BXsX?e9j<$-Dq}KaLhvqJ`oVIDDvRXv$0mblq!?G9$lm zKJAoSYQ8RB+Td?%ZC#t{i0z6XU)^v6FDSnI{@%CeJ?aa~>m3PpS(E>Iw7{5Ah?k$K z@!G8F>}NNf$Gy5(R9LPAh)USwsAX{QozW^tAso%Br_x?b7nipacwI!gydn&ZjBfil zJ+Rn;rfb{!Q|lAC+{B7gs$cuw;;ZNCkF5heUi{#(#S-x%c?*)}#ZnDujS_C{LWg8GRPZlB#o4?nT;Fktr#%gN+oHg;u*q z0`CxMUW9_iLOx1lPxn>wR_EW4*ST!IpMeChZ%|-sTU)FZs%pChv>jq-(obeF$8miN z3HrainA|Ms@-i|u%OPGK20-&rkp<3FmDQKyU$-5%Cekv#1Uw-m z%-ce*y5MHy0e{-g#QV^b}A|=hVw$5^2fJt-ySR06Gv4Q5ehngmWJVhSWeOsyiODL@XyG2 zlXL!z$@FvlvG>L(LMB7(tF5hL%b!2bplcYMoY8_YiQ6W)xR^!HbC+M(!?~+#6&KXp z+WLA%tO6D(sg0a4TeMeg0ZClnldbM^|enKT-fzFN0^ z{0FRfv#zrAD5Yrth_tO-iS}cjb}4))zA%wa1RavwT!j|;XZ>BtSZVMrygno2=)(^MldE(7kG1x(-#y*{3R>=ds3qXM z1@n=x!wM(i4@Mx!t8HeChZIB|wx^u%@O0^*Lq9*iGN&FMvbRF>fAU5Owd>Ppl$1O|4S|7=f87uR2ooL=QD=T^0XrAhcgemDwEiV?OFcFYO-BJOh!}_p(>kxWS9q|I@DibM=Sv zzYQsByS~H{DztK_re4T0G*ORjJU?zg8-v@ks_Vjd*}6rKwJ1f1R{K*;#(F2w^@L)9 z$Feykpc;Ql6k$Ht-*AjWUDP`63}OD#$9I~Ja|AzlZ||*p&=~@sxRlJkHi3yWP5$(6;_Qizq{D=vDy0z=#>@~ zvo$q*px3#caqSm|gTcHAUX|sLAg`!?Dcln?;(DjTL4q-%rC8lR>wzlPQ{O%?q4q~t@YMA zta7WZ9$5*V?1e~k{T%-Z=#GEzfJGfK4Cy#F7-q^+&3Y#bb&y@em@j20Ib?qgx)nkqVEZyo+A zGcYh%8c0v4lnACn?aVbReERf^T3X}jlPA8;-d2T$MUYB(NU(dT#j!P)vvX#E1uORP zS?rG=RDc}On`+?#v>a;%fV`0Vv-h&HTxx1+rWOTPZg_Zj53nEn8ti^YKZ4A4e?mx3 z4&)p*k$=X>VVoUstEda{Xl1^dy71KO_p;hK2g#*s>aRy2E77yXDfW}}y_y<<+0 z1LuaPxHm#pwK}}xC6_~%DVX) zs*LJcv*UAv6L}A471ET#y>NGZbcH?kol?(K@;(7*BBOUC3WovIrBUrHTxmX*;XPyX z(^@?Q3>J(U?@IxYT@}`oaa!D4nzbC42OnqZ^vVsFIUeFOos`YSK=UzYTK8Y-=0-B& zl9G}Z>#6I!YbH-Cb4@wBhhE`HZ@fkgcpkewWBHiy6^nq~XiApHX67A;weUv|#oTb= zFaD2~Ks0(?_UFq7ki+HbIEIF49Og?JFdBKHfoR$xChfY9{OXR5Tv<|K)XWi~N(X6D>!~JJLM&I{chW z^(ZJb)Nty6K88_`Mdv(~h*!zYYj=SfWMrOl*HuyHoBNS2rc^!+uDiErrB->Zaq0-# z{SS!=`F@J3=Br_R*DR;$y&MWdRipJknRaJ(VC9{Rs=r8nq1@nVH&%pd0piKpWC3Qb zeA+^17(@)RQp+vN<7kU;bKD9x|6`86|H>imbZ5V$tf~_^l@wQ`Rbt=4&>2daU179Q z@q1!Yb@Xlg$ofdVUJgna$Mx1=wv5TcB>W!|Ju4vCDb3d+{y^*5+R88cv_8OPZ%@U= z6)Gto-g~y=VLj6zVJ9O~Wj)hh{VIUdc*_)m_4f4k|A%*`ECtEu9j{b#TDbP0K;Cg97ZmkXEGe76PlZB;_I0*58HWS@B_8OmA_vhZ( zK^~{&WW#fxZ{I$^)QUCwkk9i+Xm1394uW)t#ZI}-P_i!2yckevqR`de2`&t>l%AqP zJtSax#EN+K`LmLBEh(?FSe>(kNU(}GF9*k;*9x3G@QqKw_#Tx!Pf4DIqJ&(Q5Brj< zVWxA%Sx7q|sonkV9=37OV9MU+AO2zTit?rJzkjwc>3I607y>T2L@jA)St#7K*mgdT0j61*@I65AC5$kB$R&?4AQl(W%HjKJ zv1X~WjUGxJ#lcALG3vrvuk*)^9*5cR0{l=?UjNLF;NfZ)2%hfAN)W84r?OHhaqwH2 zMzJ^ZC(^m`7J3D{Bt!f*GS-8e+Yw~Z^h#~6wv3zbU{2E;R=uhe$jM@Skq2VYQ#twU zu-eZF3hdp86sc9JRVFb;W7Lc&0ZDdtWf9$cnx}s1ajrW$HOlaBtFdcskRqVRJIC4FmkW^mQd0JA1~K2|Oq`I1_N3htKF>EicpCR4NOQ&1S_L z9E;mdxH!jmZ^9LxDq#9^739n)AeB5k)Q~9|_4O&TEtPY0%}0wR5;?LHdB?GJbaXO}GBs0I-ZTT=Z2&}KR$`v0 zgoHp40wE!9F?Fec=LK<%AuPsuimx!^n05MZMSKO8z{B6aL&><~yf4p(Aq1qy0Adex zN%(#a^9}HJ(WGv8*MdYwvFHet+Ww+sVrDL_tc1_>9Hy%XyE~ekRS+_rnX$_y)d8Jt zGzO76SBb5YdZ5mNsCV4OyWu3sHbjHnzZI8r?#uKn)Ur{E1xBPw-g;+jfu*HIulyl8 zM;7pm3=U=^8$BplPTM=fHnQ~(i)H5$eRRTpTf{}32hOO4%4!dyX=&lBOnXYOpZ%aeL|dR@ZUI2qgbp3B@27&vx@6>3a2kw-J}>Q;Ad>}7r2{_+U2 zQ`hVW5}(O)F;GP)rc%p5#$zsX4*JcsK#V$ATbGW2(&#S}`Rs(`4&hQT*psdIZ{Mht zmJTEcnK8g_I6rFhd)XDccPn3O8=7%b$Z6B7$Ud!KM*#2X(=bqqaV(mWlLN@TkpZmI zYDC{8)Necq*`Q-+S0YIGk&&;YRI9cpD&@w+{BYMzsZI73t%)tPsWIP8&7r4vXR z3L!56Z96sDqzG3*G& zJLifEh#)ht(3W=7XQ8JL`uFb~u$nxfz=Si3j4-(e2Zx88+a`vFlmNtc4z|EH@epG; zoe{}_sXD6E87h_L&NryBq=b!36!MNL-bqNvy@QFV{PSBL$K8$|!7(v0F*>!v1dh=d zhQpWQBVsv(@{QCqG=skF;M2B?aXB@-HTjO5?iw3Z@NXVBe1vy`APJKd}wcY zSGUL8=)1eelF_^KYA`GZSH{00Y>u4-wDVG5qLb*99GF;eFcI;9Qkwqd5mPIq~;NQmJf>` zZek?D0q6=D_zx(eCFP$$AyXl1JY$5cX%KSQJ7Vm_?y2ftz|!5?Lt#UZy3tw~REPMp z4dzYfLM!zH9&>$w(H~3yFA`_`*1+d=cb*3--lO;%zAZTC;xNlESf9W5?>nwo#u3pw z-Q-Spuf|v02}{rO6wwlk_o@nJ(LA0*Bg@pcpYbr0xXB{ zbbF0y^L`zHUsxqGJG+9zaE$C%fB#amMPqyxjUPkq=(*+y@K3x}aVd~S02t%ef`&3B%uvPH0EbCeZ@1g&O;uVX zo0S#080@bUkqA1ctaIj+*)MYdJ+Ix9H{y7T2B@enr7+sNyT3VaPc3+~s%KvS5R)S4 zlBQK@u~Om151LhXyq?^!1wEgIk)$N@ zINkg8>m}hBTwninK=?NO#~-%x^{0}R=Hp9Sq9(O=i#bZpyRFn|og&#AJ?QY@kPxHo zB&Q1VA%9~z?Xr_qY8%hnV9M(y)o`iPCv&(FU7ybtuzLXfiZ&Vem67pO{2tCCkZ%ab zViOXeZci6pWbC;t{m96ugp`yN^(X=my;ogmO6SonS3J_b4lIJd%ek{(W<~e}1X_By ziWWO%TUuK`3wuEDl|sTot6&o{@PUjRTO;IiFbMVfqivA-vq$QA47*Ph}m z!F;2sq6fpHy%9O3@+tqa#RHs?2ct=&kVP$U`Fhlt;D<@EckWEXyTWzMQ&~ks(n^gw zm8&cXowufg3oO+AACpO%nrhT}fr`)5Eby1kp8-2)$cff27ysf4yA7#sG^*$5{2NDz#!7l!ta`_ zWhdyrE*PurPZ9ajSX8X@UTMd1=j0pQvu%JAeibYP!4M(I_M#4+xb@SqzH) zb4up0JGk}c&Tl0o?AC|jH&$U|KtUPv%a^`Guet_H9i;pp6Mt@M@(#DjCFS4H2J!qE zLr6@#`m;ZU&QRCyF)7MnJeNnCbnD+`MY!=k)V(m+I?m{3POeX2UngN&h<)1MaxC_9$i$Y}9cBp1E5 z)&lH5;K{xQ-(IzfbdO)w2r{94_?+R+>yOj>ykpAWUt>`2NPSC5DU4}!-4#2X0n%Yl zJVM{xJpW)0oPGpW=Q%0;=+UD!6hhhgAprdw($XNQ}m&>Tjc^h@Qa4f@uTMHIoyy4`6zlO7W=3cxlEMx*Q z+JNt6+8xY*`Q`OKpf$v7A01T=jf@xp1MB8j;K!^f8UfR1^3f)$84aTiPuCxu_igWl zM3#R?(+aum`2p<&JHiK-5;3F!%QIJx1uFXRU}=VQEx_zDaZC$?8Eub9Ia1D#U!55A zTLK)yQJic3{NAIjfu;A#i5zA`RaI3tLUC0*lV+5hHqXMMLm+UBH7o78qiN)TJgTCs zqbT#2^6Sm!gcYh%wRZD?{sEMr_*T?SY)<6zbh~~E=H&- z(no|`F)b|~2Wyi$lfV`T0QLfiPKC{QB+!ZfuC0AzG0oO$z9ImA@>j1S#0{BWHbIST z*RnkXVErv4|MtiCG(e7yC802b1{nVzK!WSWLEb%k>7n9HAhx8l$CViUQ3;6jN|?}; zLMBQBWnM*1j#1B5jSMH}joe+NX&OIjuyD4iQPsE~$(#55_1+Y710oqM5&?+gtP3ZQ zP#dG@nScpkuDJP-id9|@qoyytK{l)o0LUeu~em35V8qX=!)kD9-rg4+l z7+D2^)&CB6AdyA$*yBP`i?A~9nS0>uBbOIt23f{h2_a(QZ4(uC4&h2$X(CQEZC5zN z0%BQKqZLvSl$!IU-_)3=25XJft1M@e47`CG;rcXe=`DJwT(Hd_N0FYBi|fzZ(VNeW zU{L8q|9JqChg)eCbe>bYej$MR-=7YM=9-T(@aGQmbd$=Y1lQo1O0x)>o^>%8qA-k%Z6Iwv)H?c-DL>h5m0-VCv`v9*B8 z(}fz{_s(saWq<|xNxK-~D+FDoa2JdZ14sdeo5^85w-8jEgmdw~ro#XA6fjP<|Dioq zGdN&Jl}*OlNz?NIIG2*+EX6ldGFv8Y_rR>sUIaj5z{usn&s(#H7Ii#?FJ2607@AQqj5cA$Kh0MqktThlTSTwr%*uv$B(@Bv~u*qDq5LyECW2&k9G<*W09 zgF!F91lS#I@xxKTTGwo{q@H_B-VyVAWVo`cw-C49dj=G}uTl=k;i~YJ;v_%Z^rnwE z6d~SPy2a#$R0!zw_7v$M7A zuH83*ot&RM5pXocX-S7Jeglak@pQ&94)L+`^85+Vv*ni?06;T7Ixe?0TS!6a^r{$N z-u`!t^W6pEUBl&MfNs*Wv$M+qSHMs)fLnF+p~g*z+rN%lsO>FIlfwcdpa_$#gxwfs zZGTe1>V=J|*c+dPh$tuJ7$JI{sn9$dO32BelMEW@kG+mSFega_925Mpo84%QDE&^j zfLLQWTXFY%$|*M8+Y1whOGefYbTdL>cdDwYY&xB(IPhkF|2BOKz##{w(f{v;K>uTh zd;@gB@z4=taA@d_wxB4CnAh5%``eov2?`KBU6;1)UZ{uS^8=OF2h& z%31)Mj0RxuQS*DyFTBF>nOFCZ|r z*3clv=WzDu>>hLm_{syY9Jb-96ToAInqPHMGE?RqFIFl37zFIcGRx-pTwWlv%>SuT zWC@SLT~N-73|UEv0dZ@II#%gT;q*{hbDK zUDARgxiF&92Mxr5jb7W1tHEJm%LAfU?brRJdlpb`3N1f<(9fTAnUq;zQ|Q)*szxjz zww}(-&M?5g_CDO@S}}{etam>o0?SwG{6|2cus=X#*$C;qZqd21zA`eRmGJ+&TcO$? zO?s_!6>)04V>wYnrlT`sN&3nUcj<_-F1(nf4$)UY3vkkc#4T1lyuq>e{9ad{(5dRt zdui$3y}04KqHg*|%3|5Q72no9YM&pCXq)@}cO|63>`V&EX<|4wqi)LaXk z0|Ej#owx4XNUq>>&u(ad{f|*@T=2z!QKJgC7GY!i*3$A?T0{G0?gB%zt53T+W*Z3p z7yASJ(s4`=AfLFnIO$a2ae+k%8cNDr|Ffr;aB-?S7dThFb$|xqCqU(@v5PEvR}p*5 zJ&XuF^4q|I14h&5yu7?&=s$ZOVdXPbU>`3>A@w~%SNNoEXPkd68;m;SD9q5>y8q|U zE6tjD+FQ4FZWb3>?}nT>FWJJan;?aBU8XBHdIFY@H)0-;gpB~i3`-it7#tt(0_*}B zxR&|!=@XLO%cFcPw`7-oqwqxe-DKZ7AH`-7Bm|g2B3D>^3$j5gzbL$e{!o zQ&T#y)TnV1jR|g`$Nn?6Qm@Im`%eRGFg;2YZ~u|1`R1T3(Zo5CJ(i!7=?0 zBzi~laG=f)DCR|mqsUR&WP#MFqsmkGqJX8PWsCs8WIZmN#!o<9PrEsQ3Tm5a3jE7X9_E~C+ndIBpS?dnWmcs7{8khDq@Xol&e*t6*np>;`J0O z1qsmW7rW#<5!-I#TV-y^CAgF}9~ga>Dz#npc;~#x_GeZbZw#(>59DLhMPU$-8frj5>8_!3 zFTdaJ**#}>`G@o7%-r|h{njV$@*>8zPaoSaUuhI|L^32_>VfvOcCFhqLsAXqo!N_9-&@=$ z!ot0Jg2ERxy4hNtL{BDO>FblX@163XTaLBlgsXT@^yl!8Pr(MFC=B z;@;Ts@bLZccOBOlBw$RA@B4=DsH^4vBw*^CWGVD%xqDS}%-K=r84 zR$uw^^YF3^n?jG(rLl7xwUH2&JeiSdHJSU5Jg;=F{(hHiYT@ryf#$Gwx*qqGDJUou zzs-T~x7f7`P+n|25r+oOnPm_uEE*Aq6chh;Iz&CkY%jwJlbi9V;lWOj!{U19w-1+T8=|omzjd8A zC!IvPV+O`Xl{7~>JY?`_3e3xh(+sy34?S0oc5)O&R5iOyHV$SpL}%2R_X&K?q|#WY5w_*Zh799!BtwuhZH!Y> zcPytX?P8$m#=*gCkY{z)!y%k3nwtLIQAa(l*9Qw{(;wzevrPjPj{7!_C#I$%2wdMzdqtlU@jhk->5@7J$iC!2=_R<(sY2hEYi#Y`Lq zaD~gehqF2qvx&C}XoCo>y*P`$1`$ZWub%~A(*`A|sM0~l0s(MNuW;m_j%%16#f#kB z+}SCiV1jwSBWa99yG67Tx_yzJSOPmvDBAFYB}?}4d3=gCHto-irRM?gXx~{YzPJ?9 zzlNit?HSxej4~v5@yUBj)QXbqP)jRHa&i_+5gN~hT80{xAP0Id)t7N$CByazlWa!FaG$q`-8XY>YGmZrN-cV z1-BNj>5JqDBA{s#`~{tZC2UwY_u_uYsAA!fma8JlX++eZ)1`^gQQLi&qQb&L_w`Bs zF=)PEG*<=%+=J?6cn;nv zKB^Vo^=xRDTdu1^S^PHRCR*Jwox#5+t4)jKE`@&mXOC(HTQGlZ_|B&H%a>PG#ilee zf(oj$nf|b6%J_G4Q%d7pr1WN!71IU2f6oz^`QyX&_4+UF2ERi*i2*jPnDmaK-1IR$ zXElLD*k>;X%rNjDzt88~JVFAScGe+*Rh1Fy^C5Xjd{OsF-2Ymw!W2oUKLaN_nDT=! zd!o@(Zq1fC1QOV@jj;Gnp8~34Y3i-Vf*L;ug2jJkcvWHclt4=VRu{vn!}nV4Bf#pm z@B}dE2tPJX=u?ZwXfab86QBHh@yx|09bA zt0b||WNn{0p5w_5T@=O2_o-|xBFaY>Q~a@;`-Lei1`(pI$0IG~dJPWKapq45LEITY z+}m0B_@e4<#`h64&~TfNAao^sfYlXAqJ?7Q+9hSz6VPgZY9J$nMU}bIv9YnidR}ie zeV2&Hl%6}W%!cm5_wtJtzIisrt#h^Q1ZNm7l|btDjL$IiQvBfHKz+b#|K}TA+y|?p z&2%t;0_yCM>EFJY)>$DVdXqZL*7m#fTU^P+jl^{uZ9{z;E9-WKAUwLfC?WYEkkDSN z7>jef*EMc^?r^xMle4>e4N>9BPGj~f$-5SMTAI!M$oxU1N~tUJ_FU^AXkR>w2R$4P z!kjf+n&l^C;3W{>z6CHR6sdN+675Z__E~TO5sCe!ckc;EknWlwdWvxev$c^W*R3hC zl@O)Wv@{F?$eS_o9DkcNyr3ptg9F{4pPz50W2EVY#Nhb9;g{JF*~6RaKh_+7SyxwA ztob{u84XY6aU=Zj0pWOIBx$~PzWa}k&taBLlK4k|4Y@^9pUCgp_k)RZ4m0<2WQU(V zVm8To*8u|LFjEsf+jeFG+1tm&?ofw3pketgiA`(hSr)kp;G24hDjBDP@_2<_AQ%fJ zB_*4v+LV^Vb&E-HKfI&57Y!rMX;^pexGe6f5VPyX(}uAb)I`~6RXHv7Y7lekOI%-( zO^AEO2^ts~We4LB6OofkzkSPfCQ_ricW3%^tCgY6AHjx|%79 zrMlK9x4O3Gbh`gI;xTJTeZ5AAA5Y)+ECUXgfbQs--GhVN_p!5y%z7c)qAliAA>d84 zir;2Q1m9mmk=`t_nORiV=DNlM9$DSjoK_!vcD|K~b<@6S3Xj*z6hQy>eg2>R{WcPG z^#n~-ssu6BNA&VB=np|5Qj2yV7bM^$<#y~YUsLoyfIj~=!8a`zRAGJ3;{-x- z`4qMv6Nr>y>OAdpG|ReRvGPicL9^3kNcRA@<2U20iv{JSdVp?4y*kgk9VBhY!VsWaKO!0 z^I9=);EQgfeZlQmJ^)$1*0NT>#h`5wI+>{M9Cw4ec%=RRnKCN_nMJ1O1DlgqIGHb+ z7siY4WeC_a@bf3VXxuTjF%8Y$5%WG;{gFCsijlbA)P#@|JwG}{R@mULk3&}9qSoe! z$jC};r{P|#vxY7@$7t_A;nZh2o zpNNQjtTbpr7Ao3Y9BmayhPvaD@g=UVTAE*jawR1t-9@*I^=F8u9Bv3YAIQQ0D${Ru zN&^X?UF}RJ-hU>Bbl-%I#lMYo^^tCIN7%h+Ft*SP14#WTGqVor{aEi9DLHwK^>4YU zI;*Z!?ge$sPavp+VlA-!#a~2GQMk2#ir&(y`CcBqt@1axPr?zEP)h`+%k4XNSkD1( zLDuOIfrfIjS*yG@oJVnWbv`^YB4K1iQ-P_wy1xFUtSlo3x*8o-AFnh(484;qRxRMs z)TAfn^L#Qq%>7x!OBGf1I&!(rW{%j#hE=!Gs%xgFRVpad##0J(8V6rj3@I(G*prhJ zwqtHSzQtFrd~*t^QX86EmYd^IHWQTz2W)Hgh{Oig-_aC;E~6m`r&uBHMW!WI-`vEt z)z!Co(ryxveK3=GVX%Tm0|gn`-oYA@G7}W=Y<(<8fVM923Ydswy$-XuCWG5;u%MtI zE|U}4sd|ULBPu=A%8q1#oROK1gR?4O2{W^hbzsak+J~qP$FeN3DF0bP;=$PydQdR& zU@i6fs!ovN*lk3ms@old**GK|Fvqod^HNB?;$xeihO2Ac8zrRy$FcbIcnNFk(*3iu zLkeHjtEI=m$;sn3({H~TzXG|AsNa}Ks>#oPc6GYKS0I-(A}bC$nZfxgrtInd5}AN6 z)104RLL>>N)5;N*uiu4swaH^D;X15uplxE|Q$Kz3n<(2)v8`^LtK1O&dVxzAxN_sC}hzfm)}&B#|$p*&le18+5mKn=8gvjow^D4xeTxgyKRRdQk`sP zYPJjnS1J;$SZSrat;NH$<_c@Oy`!|eGKm%Tanc$HCE#*}H@LU>^?x5m7WPmAI|oYE z$NH2Z7}(@}XdSZeqjKEjyu{*E?bIy#y0G&H-OUx?;N(>=n3SF{px!fK}l7+F(KOY zywyV1*bTj`sQ=ku4}CbHeLnKSW!VT^3HhBxb+7-a@nX$}j_4n(3+?L!52guwkylq& zlb0D`?>P<2ihTn8u4*QEVy>>Bq-uYv#;dG1QxgC%-@FAiRbFMtBSUT$@1+uQ)8YoY zn2L6*)oMP_ZLs~G#HyuJyZl~mDmfp}UUH#Og87C0aU!{{uI`6aRMAQGkEf@keH~TtXjPv}x~RiTXu3q0v~0 za%%%sv+LT@!T9&U&|-U|$QC#9w@dOq42qv~YbqVL|9DYaPZYcom0|HS4DPrR#(t@L zfqnme;rrv+(emw=^`-n|qP>!7vr{W8u^_y^(;M>bGw)vbJvYrQwx5|vJN@A?TCQ_z ze--NeHWnlfVp(f?7^7;U zkS=Z;{#_&Hk<9AFLy_LuSVeUc64=llOSJw6Fb$lSBGx6&W_ng45mwiKMMYP>g5>Mp zOIM70`Z`t6K}?NN+4M)DTTpQD4SRK4f6nE&3meFOF-WQGAaLk$KLg$fz{bD?;=2xJDR zqJ{PGu-7;#U)}ly0BFSM7im=Z~p2fx_1H!6)AW(u$1lpG=*2kJw%iA z=Z%mU8Jk#3gcH(hw|TQODt*qE8Qi86cmG_bRaIjR9o}D}nMq(&)~@wthaoUyUDmVJ zz_v%%M?V-B5U8_6eKwa*;q~s9EuczZfC9m+Qgjsx1fbWVdFFi;J}mQvNA4#b+Vn=t z?)lg9C+9mqfZozM+s=YRaw#QA@*XrX%hmaQpph(`)o&zztua9svipjfkmezxFu!#| zogd#xc7%|q8L?`W7g|)1^I1)i1|(PL{@qwW{35!3+v3U$>yDua1VjUMv^1P2(|`3n z;q1Zs@KBe~gehIn$#W~)2WD3vy;!Q0DaC(vKgfV#6HrmIdiU4XZsy7 zYgHMV9x&k#d_L7e9f3Jdf(XSh*6W2dQJO&d^K>e3Tp2*?*^72Z^$k_7Vh#81bazXW zuUaiLD4m6vbg?H+fEet3-YS5%yKf1@wx-q4^yvF$;@8nG+zDmk7YWWp8g>j z*}a!(HRg%?5*C9+$*S=Q;nC4c7tLrG8RqFst49*d#Mb1qoj546RPIa22MBC?(~Trx zm{G=lAb1K5Ys0K&T9SGM#gKIf>QZH7IcaMFXCK9vSvj{B#VaCQ43CT3D0>A^dx;}dcD|G56 zPe*2QZLF;By>xubWp3nqUs*{hgv5p|nLf*bQ)dJUDg2!-GADRKteh>@_48-Y@vF6w z0*sUWKF%bu+jpt+Ou7bPyL)>-fUvoQL+&sOFQL>cpG5Dqx^JbcCg&a);Q%G0*H1Mj zHI?cS;Msd}5ejR7N6jTZ$(bwP!Gx(u_OZpjP_!^XRG3;XnmKyF$z+q*=gmH0+3 zKVnk`z&0#8()@J`)}{4WX)q9l#j6ZtoSk{x-3#`Pt{#dS7$kETT?n+KR)jpr)P`H$ zb7@-{9&5wNFXXXaBt1LYkeu`PD~7c9c=4{>!X9i0#wRA0|1nQGV7mvxn&p!E=b$|3Z6yq3D^c6Abon?Tyqc_3Yi>L2qC;eL#H9ulEcAv|}mhS&eb8 z_3?ALr5oz=goA?^WHOs>Q>t@z;sPRj`QP8S8EV&`dmFC({RgvC#XWZk0NzzaHMpHy z=-@n*F#D2}{zInO&Tcc2^2r+1;l&%4pZ}f(eGS32DLbzJVvK8QvP3ol81#ge7Q@D- z40k0gGJ4_F!L9O&3SJSjp2*jSU%xs=kZ?+0EO>5 z3i)dtTjhSaw6Cv-ii*nQd}*T!?~}S_vfv5GystM*=2s!W)A376KGe+qTj{< z-OAY$yy2jix=P+){lsI=GpM9J3gt2Z?ZAQwni1zR{6n8OmML*|b~cF;HInDztftDkd_mu5CB$Dt=9lig=s&RK&%LQ)1i?BIrwGRO-RE;MXa4QLRYl9Dq zh&5K&pipfh*1bl1)KO&ydK@*al@y8#ONFww>(L;|q3o zvB#^Xzk%B1*WCf_yt=-6q4N}ntl`e>+p6_)hm?nXHZg*r7ZeRQ6nGtNk^w28yUoTU zUBK!)fGW9pc`lCm1QKTKS{V7d_0}Sa3X5~lU@4Ty$jG>`(i#hzh0AoizSr3SGqO+# zfvTo`;j#TxKtMC^kc3q;O2AIfWpi>5cRGgp-WR)R0Ud^EZwdk1$)Epz$lOR+eaY<0 z-vhDw_YVAv>GcmQXSL+zO&tR~vofrJPHG;;SxzYbsVifj>{!DO?` zgw4iu(>o$V7ejvuB_*Y9XuMmAUgj7GKZ_gh=&V*3dl%oRfx76cNhLNv_x`YH~nPz37IeMJWZsg+~adzJ=@m=2c zR|VC2yh%0Ta|+87Mn*BHwqhS&K~n~$7!F)&zC^VmrT4m8pld@ea1mysE207gBV~L8 z1A`>>4#3W0^sh;(t1JfdCbb8EuEr^LxQ#|5P^f!``BsOdqImN1^6uMb!B)tk8s9Z% zrK}T~3iM2~Unqbyg=#4=wzDlCl*KE){k)eTD`)nV9F zqeGd3QH6dr6tOYk@YQqesb;ypwBs&&gZ)h9_$lbVWW3&NOT9_v8x4w0tsd`szT^aj z%9u@R$;gDJ*IO6oPhA4Yb+C=(l@vCh4f0fL#(N?y9a85ommCma3e#_Ok2XcbsFjVQ z*UCTy+cShRE4K}pRDXU34;J7e`My%WId}Zj7xKMW9j{;oGJo~guU}kJlt9EBFV7DD zxWBd=7*IOdK{En93-FwyP0h@9Yh=TNIR(nt`ufM9!#KLx{Y3Fzm%3FZFe;fCTfQtB zpt@OQK+DZ?rjQ?~sx_iV0Q|8T)+JJlwv@Tq(+0_MP6!QStdEr;8j%)Uo;}dZm^;)( zrbT#i?ap>~cCK!RCstRON}0lv2Z30BT0OF9C9z7}D*IA6UD$R>!CtBN+TWR*ziRV& zc}LN8C3>t>BjMGpP)BsPq6xLwGXVjmw02A;^1wTuiJOdf?a;d>eJ0@j&&pjCj$3F5D;pn$tFX!LCk z5(lO^>okCFr2Hm)RKjk?JwxAt(zbZ!KJ}2Uqq{jLK`t#k{7vP0e{?SKYpb~&DnxAd zUr>-YA{Izw^YamUd7$)s2Ub#NFb;Z!2CA`}#;YHMCQ99KfPP%6nmm@MZesFu?ssZ9 z2oLbx;qKxfutelKZ}@q5^6gs3%XOR6=|W>wYnS_4s{rrB#>UQfGSxEY5Tm7CaG|rp z#l;Pag_=c$blmLnY*9QxL4UeCJ0(tm>)^HGat6Y=iAKK%iWac#walmeuW#`=LvA^a z|2kpMo{9L`iQd5>eztD^2&lhusQ>8R|A%vQt*EG2i~B{MnDfWb&?hlJpOu;v3GBW2 zZu_nhqYi2x_niWll^CFqS0-kV2q31q(`QHYbbRs`u4s8YS>8n@Y zqsWCqZjeGhUY+9frxCATVI36%;&~|+4fQq5vHKG#cg-v=L)M0 z4R&O47*1bLAy)u8kpABySpvT*0TjOhtFbuLwYA&ixwwG4XIki{h5}Bh-C-|Tsk)i< z+@A+|g-^w!pJz8#hlQVeW1}bk) z*!iKWnjC`b~gPr4hj0i3GOTg%yt30 zDGBf~FfZgo1jxwAN7^M{fb@(QoCFJ1*Vm(+IEkX7+aOWXv%=UQNsRiP}^c@(Y1_GV!wK;1@NQhio zd%Ku$OM0s{fG8LHA_4u^P8cMdh9>`Vv$g9yF-Qik5v56GNn7X8CH_~}JsxSFD3j?J z_SCe;^BMmcrrp0#ame>dn7hYufneC-1&CjtBq(MyaBWR9v*|RXwtD1gw^`TsdU1a4 z_!hNOxG+A+U)7pgP=1C*@aT~OV9-uB^WBv*9eTMPx@R&nidnxiE zprR;ngdry8+K1KjDbOZ>RAZ~%@i27CEh)R*@9Y)<8QCu&oRRWd-v&I9S*<%}n3`_y zC>;TeP+3Jq^Q|d2;Kl~AXt0=?YkYhahy@W+QT+geYj}KITG3NW-A?dbxs z@bi67_qBDBzIbG3m20<0EH0WAD7JYYegRECH9g%rH&W+5a2!S;aQ|i!H_quR3~;h( zq*-3(&mVneL-=#W4E`Ko=Yz8iujJ)%Ku@W=Z<$k87PuYB8uZ^;4*lQ5JW;^SZASuV z`l_S3mJM6S!0-m5pguW&{|^-qPFud3yCa2m6iKgLskT!3{a#S@Z;asr`)bFP| z=H^%9V4o=s5^I1dc6Pi|Da1k`Dp0MAlGLn7_}* z&E4nH@V^dXJZ970jh>FcjgtErS*IzhtE(%BgSD;;8WP9(lQ%cM{;a526gu^# zwY9aOy9_((u*wT`4rt#7RY|2O9+1n2QV+j}=)L~SV)_GM` zH_|eI{&e6;R3JKpBTyuTtkvY??xUBlWS#m zgXS<+H#U%^Zt^W|9$F1AgoOx6j#FvcvtN69K9ANnNIlLI1Q8pgD9-!Qh%EZIB^uk* z^jz3|{Ux0i2@tSS!Sv9hrF||WG|%ns8lt?u0|joLy$6TNlFCwQeNp!rl+z{bLZ>d^ z_WTVE4RTa=)Aj$r5D1ToG8^Aa1NUB7+WG}Xz2!v1tp<8|a1ITtbeU_(R!ZtwUveeP zc#C|@0e5n*Pr!P-G-sF_xagnjR9#N0X8`^Ag%N*sd|?7a_sy*`mU{)I8nuHd_@^)3 zw@@Yftprc6<2ltHB`BJZ8vXYimCCt*A!x(D8y0VUy28Omct^c2N1S*}Wi|d53vIlI zL%WYvk16Zl8hotr|D?{~WLi8;QH9j9nXo)|+yWywk0cRxV0K?V;foVZ!nO+0jXzI( Zg`YYQfZd#Jtpo#qZ(b`&RZ19t{2wPtK>+{& diff --git a/demo_app/test/goldens/inline/display/table.png b/demo_app/test/goldens/inline/display/table.png index 6fce74cf8371c511cd094c829c755ef1ea7dc99d..46c42499882c7fe3e5481db6bcffb7b14a950b38 100644 GIT binary patch delta 14980 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 delta 14998 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 delta 6826 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 Ocu9)MiIzb1ef|%bSRN$+ delta 8660 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 diff --git a/demo_app/test/goldens/tag/TABLE/rowspan.png b/demo_app/test/goldens/tag/TABLE/rowspan.png index c0b9068d04203ce3ef88d3ac045006fbf9e77941..7cdbec3440a66714c64251ffec51dc109b8876d3 100644 GIT binary patch delta 8954 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 P23~S+m8D80js5=*F0m9g delta 8943 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%0DRETv;|o^Tm}NU;EpMZ@cEz)mhm?1&Z+M z-iKDxTafMNJ^e;2Y2GE=BBa8*L$cz96&q`{C)&vvAy>njhm+%im+A$jd%2QssPX|+ zKGrmdE`vvnT!)^j9?JDkwmXQFOn64Myk~U0PSk&ZVeoQEisrSPYcdU3SYPq6MR4#u z0*}XSo*J~awvK9?<#ecN&`l_kHKVS9flR|eLgFHN;Blg(vX_2M z^vPTli!NPCGaN)I@vz0mA>y}uRO{jdm{cc7 zw!w8QYz;s_ATRd&6b2vN6~Fv=1jCVAffFA$vB$xJ9ebs0vUW5ko4j!<^^kvK!0Lk* z>}rdy@$^Q%i=020b~-PWX+e1aHu?pRrWd(^kKy>&7BduaBpXbmDxUiK`obCVo{NOR z?Orb~9b*lE&3Fax#pPwJtVcCG) z_v}%XR zVaDc1`@F-#Q>Rv%D9t<4YA=we-aqbh%DiU}#UIW_m19|?JLj=rwU#gX6f$CrTyip7 z-1qUi98DdAgM(R85r?S!f@u@Kv3w&sX5FfkPPcRD>g^Q`uovow57w>s4M$CCGLRE; z5atC)<8lN?6-lgWwOqA29vSC`WZbB9%KYi_?d&GpKB$EWAIHI=N6L+!f(KFg{f)K{il{Dzo@*cn3Libvq$NaN#A7`g`=BA0? zr^|!%YppG`&8JcuZcu0fCJGN{Y`hnX`z&3UE;jrJtoWsFtUQd9c{;l8{>!zA#Dw#q9|uyTszn}g1!!)23z^C|Oxc)nuv#^@f53)=UC{TM z#n>uAs`m};6=W;p9a96koh^L_sjA(y_mKFGSi zo!y`YoX)H05;3|y0a?msadAa4A8eh28zR=X#(`bKngp0TfE1G4a(s$%3f=5K}C z*{-jz8wVc#$Ny`ic{>@c}-uTH?t5B$Z^+uPgC)3OQ^ zvDND)cwl>2Zbo09N3ab@Zrl3=!}JpKJwD!DU1m|u2U$B)A+vLHt;K_tAp7*DbgEM7 zBafoMr3NgC!zP#eH)^#6dKt&t1s-eqtvxpM)&_t^z2`hVJ%en`_ZS!$7~A%LvFQ{T z4uBZ5sm2h<1?KspUJ#2g0gr`zjNNRoJ0cC&3>s0We_l3@;*@GS>nhU?2V0ipo=1~-qjo7e{054(D zHf`DQw6O3;hp5i?j8=7R+f2D|)W~M>!NcA2@KJuxMT?JIUy{SyfxB z-Et*ihsmcPV>JG@X-iaNEra?F*PRc~fyy_E=`YpUy+vZ_ zg*>R}-CH;P(B}^Tq`#>;Vz(q|8in&0t9iQy33D+Hsfkd6VL|+?F-bA=B!O*D%zn&* z6!wPBUij(diIe1#2!$+OBt^7`1jie}$Z?^kxF7>PjClRqCM&tu%6&tXW>>? zQt*aP?8`_bSn%{6q$G3~$qs);I(y+mXW2H*b*N%F5kVXIYIIgK`+z=jotKN9c^rb3 ztu&$ECNW&mXtc%9)wcv+X1w8l}GFpD|a`JtfeQK912>S=^Tt1j##Z_jFRinJnm}^Xlo>O zDODnosPW6n%MbZhPn!;R@=TSb9i?jgmk0pJR=X*3Tcm7t%(#dVNn7lbEi_Q3)$O5a z?hJ8BI|YG2*v+>GCNsv~Y=JF~Ckm$B>6rlLKdD=i%%kO~GQLO{ST|kcgC0}U5bnIF znrb3K*x4X^mBGVt#4a^Mp+)gaTa1FidM8L+)N{4LF?7V?q;4xKP9m9redET#yMILY zdl~WZBAc`m8UCYD^AQO{026RLUDkDXkM{m*T4wj9w(asIJ87Ni)CAJEqKlxf9M8{Q z&DxXP?%@-euGz=gU4~l>Lo5E!31Bzm={SP~)UlVLi1t$s^#{IP(F^LzPy2ZJIz#Hq zs4;ac@o1~=_shUEeQWyB3sHjhA;TFLjz=i z`NtvMQH#<2rYkIPmV!y(?9|GqO|8~@U|n@T{A@9LBhAV8hHLYAPhZ%x$(gw&s)0o7 z9>J;NZ*U+8=-FxU0^nx2C0z-$S;WR58&jYhL0rPR(a_nl0VGAiZmvrZ#A~02j zO0fZwJ%g9z>$t`gJ<|;lP_kr2>;|C(LXo!>LG4VVM}DA-rrJsXZ0UlV7<_lnAJjCEQX=I_u9QxoFtP z!A#z1uMy3PAr7gcCq_g(|91QO#$*c57%4qTh!WNTOnS+&-jwC;$~=V@{7LQy37GVv z^CVnU`iMv)?$%pXx0y;R-Hx29N=8C#|tCwr;toQqr@#M4J8j4?v6;;PM zY89!bujiPWmI^zHY%Mr(;XZAP^+WoO5;xBb?}%~Yqlg;zKA&*JyGD)=0AS?_+OW3x5Lm7msfZq?B?B_ z=KG(VOgf$Fhw_|pBo1Akwj+dY0<~jnuj}-!%bJez<{;&r6J@+I{%aT0c)u zN~ow6`*mN%LS566m8>^0u;+8)x=ylu1Z@BqqCz>`?g(_rX zcuG}7HUbe=R_(EK=T6B8I~$>xO&LU|z%y`nLFNsKi13}DS)sX4v0Xv`h&-KqfW___ z*z9vK!z_)EVbDGHTC&<$6mbk0>O@hWYm>i^&yDtbu+81DlxeeJ(jK-|fGbVkfy8GjKWa-2QaCTEwtSD6SiC)T>}x z_?U{mwH&$jb_B=4gNab7Xcj_ATBlsElpdvbALXe-#{QUnr7mQ>xV(ksXe;>j#AK65 zvHWy;*41Xs>WWv!cFjD%k`lDzuy*UW(<-JPv>dlnE>RaBZaG;06GlE+YAf8B6u%eq zcz=3A$zSc+!G4FA8r1R>M8J^?i;CKc{IFLELV>^xFIkh#|Edx7`h-pZA1+$z7Y0kE z93`118lv*rTPnh97agO9BWk%r^JQ&!bz!STNMvebV`F%^nCp-Vit|N0(;RO38Q4Zi zmMV!gbNfZux**`)V&2-zaM;3I;3#2lqp138{5lf1m89#8)UoF zubu9&66M6p^^mM&n}y6YJ4rdYtv-lJ&P6KbCKg^!YU$FrGjJ-Px+l9js8P3TgPkEwo#;(}iAl;QYq^kSXC?6$1DJ?zNYoa{4 z*4j>jW#BR#+yi4-L)(n!Mku)%^JU1FmyrI)k82@hFB)#}X>l&%;>hQ{p`~?8LkqPm zdV+WBE}#qiqACPmttRmCxWenMwkrX2VG=5^@viRRHQ7e|+7syM$=!-;pyJJ#JgYXv zI8h2LZ&_+0CrURSzgX`x?FhD$-(FyF=tU9n0cX{Ay->Ej1N4P;d;D!8Z$`whbl+zx zwMbL}1f-(1-^{=9t_nKxW2I*k{z^H$Uzc6AcAQKuVIh_2r}ri~Cjs2}`lj~8Ab1Ij z%2`idsPgAqh6A2?JnZ`Kwo<3&HG3#CFvItLHmc6tt7>_@ylGdiW>X5Zhp;nyr*vJ9 zfh>T6o1v)??E2-z(ly*^0K4|WVL$JXj%r#8-!*MqpNwih#MkRd;=!deO@k?GmPfO0 zS?)z|#+$%ZgSWNZVc!gkI6{aQ4x=aw6#^II_^@}&etiS;&J@eXDUp6Je`smIqG6aX z+sai87@@~QJ1veEGygzi@O_r z05G^sDqaqjQFoaKP$_t%E-bG7OH*e6&5HN$Pe0vwcNgp#?wv-oC-(U9<9!$WnXlu& z0k3(V2aZ4F~^k8MH^Q>i_LfpxB{o51+g)6Z2jW`zZ8EOU>s%6~3Oy8G>+ z@890iYy&vgt;EAKV84nz7Sl@)f_EFNky74!#9mGT(OFFE8w&Zh=86X37q$rVtzpeW zVT`MPOzts`+YB@diKMu?&pRY6tgQhna4WIW1D6%m*Pr%1nXFIxYR}27S4&c+byFcN zf7^`vczc85m4hu2boC8!*+7}Su<88%^s2j89UL9o9+7WU+aBMs`wk!lfk|h>o&s7i zG(24S$RBVOYqz4?UjbT6e|~O%NcdGJP@HdRL+M?83cXc`S20+!0|&Mg75;DZC=^pq zrT+0bfVJle&$%HzDPX`oz5RLMh9u3TknnK*inij1!FijSVPGVO&CT-)3k%;Zfg{B$ zd`x?^1+WLJ|D0m{-=3EKznS2zb@NL?nO9&kpc)qzto5JFSL>x@w8gvL41#Goo7A5@oA=IRuj?ivVI@bs1wO-FLkNL(J$te zLf0l{q1Cogjbstwz0@EmU8wFS>zar5pz%k*&9F7&qdRaMDJQ!n&8PrK$16=xRvBS^ z{^E_!_f}#7g&CCX?2Wazf@s?aKRk8utkr( zA&KWpIUTCf*g}!VbD7z-Z#3LXJb-ZE5ev%1m^kEU@KJKaRP%i+Nv4Q*FF^~Sz>&-Z zt+*4c8Y6P-_d32CZJ-7cPf2CM@XAFCEHf;n{lSlExJH>Il`}PIgg4_zUt^-!u0*mP zN`@z3CZlOf^Au%+C7;MSWVQCeldBF=d42uf;aP+dYhsERdqnOpJFMSeX45)fyCh8zFLEG+u0cPYod)nfG!Al96QRAB!Dk(m_w6t`g zO5lPO07X!zMDX`sq2QIeHdhBQF`}ZI0t2;hfyx11g?VB@T^;s}k_a|LFbX7x)bN+% z8w*svow(bXxb*owz+<@^lXjUvvY1*#5q&^zj}lLNa%p@5k`UFA0=qu(ZZG$U$^)49 zQ`YOpHy;Bj=VB;SWm`by%?^Y9DWd|qh=C~t0yfY>Kl%*}#WYI1nn6!>ca?J85F4fp z*Z4(P`(A5%#eEJB>0i)6qE&GkYoh&vI$d=e9l2tP3QoSZV?$ND_44n0`EJdty4 zM50jL20V2T)S)iVSDUcp==B= zdH)pnL#55M0Nz9pjf$p#C&FwKa!i{j*Dk7T9ca8V5j*y)#_DZXa?d;l2oC2*ztA|9 z>NFBN@wIEQWSFB+$v9K)6vZ#DpN3mTQ}tgcjaQqp6;=a33y=byG%@0iLiAi($7Cp)F82ovC|dQnXCes1#~Z9WMlT`b@} zO(9kp?dbExu9M6HqX2Hx7Bz6d0=VKQx~&wyPga1(=Yfdx;n`3#hutW!JB ztso^78dR0|H;m|n+rt2_on7$u8jQeQPU zamTcUjpOHfmplYIL(tMlT?lwXvdz*xn@EQLZLtL>zH)EJIj0NXcu<$>+rH+bsyc6N z5y8;ogkAAtuSeDr5kaC+3=0(HIAP_=-%2eYZg9T9yQ*sF&Q#cLpaSYLW}0MI0M%{F zW7OGV*x2ADMH3v3pw|w@WD{682{4l27*1L(P5!J{{&#ia#F>mUg(i1@2eOt)y=-ng zM4MOT?#c=&Ak%v`;Gz-#I)SF12gNYt>eUMq^7n__7X4mQjK~*bAA-==@1M7IMab87 z(=`E*P-;5dwA~mx4kyxFKiZ0XtVkL)Q>4{`17<1UPanOww@PWJ8dLgi(iI%+cpPEv zEi||(H>PcZHw>^CMO^BBWWzuHvD!C@) z5E-hJgS4G)85~*s4}c>G7bi;8hzoM=ky4gQ1cFczyWwF{XC9RA-c(1U_NE; z3j}_bSj;j#g~Q=kQm`6zQ=SYLAD`iS3o4HRwfV;8sU@nCR9`Ov67MueDRw=mm@Z2- zq{v4KGA=~NtNdTDV1*$?y1=V!J7~kZZA5NAp(6)LR1+k(j+@$1i`D(DiHKDOmPJ(< zxfeucctQySW=$Xu$2p`TWfQ-J)7I~x$J(^N{m>igi3dolMAZvGXRr2I^7?!tndQ(U zb|`FH_Uhk&_JY$3HRob@#50m0eV3FU$gn`t9n z4iJ@Ofi5#5}g53fAz(S5sQDvn)yF8Ea>+2 z-((s^cyUhwfO?)y6Dj@chI7?`TKrFMeE1LIqJMV(#ec0~=z3f+0<>3CQxlYZCp_MF zZf*{zsC6rRa0I~C-3}!lj+knj-lfpzy-PPRp52|D_ko}XG_Z8KGJVHxp#OnLI1T*B zojdj1Z+}p+67M{>mKT!C4ss$VEF{F?K=qB78v(C>O9tvcfQh9Kp7}(wFtk^r%&U)akm1eH}tVvAz*9Ghs`xv3xk!ar1b_}y6pY} zfFD@Q!nZ14rKs@o+gpJP1LdkpFka{J!_lnlY#?0EoZC<4f|^-WSzlj&SJ!4A=yfR@ zuuYI(0^&ZPvPtifxS*o`cE(|ESZR3>xJd)v^yrhPj~{;*R(vS*gN=&G`hNUxhQH>K zqrhwjXzgmS9Y_tEic&kD*cZ_0bf|yE;YSeAJ_3Y%W>0S&(7+&m&0y)x;?}a%{eJU5 zy0;U|`t7Zfja)vM(R0+mi(7!mfBPX=V(^i1AG&fW4ct^zt0J&7CZ`zcPxJELPsXT0 zE}56NG-hvYvE8C$96l@BAe8L7;OUvc{VIXj1DcYSNAwVp@%adAxWnp0OM`SEP8nlH zqJuja%Q__UFzzFs!J#X^fGq%&TdF@?=Dri4ox-iJ-OIAFJi@v^w!3Fq(ck za%a-Nq&#fBLDYm8eE_h#t%F(ARCB}pBEN$mT|&&@*J^boTknBK-D+$+25p9!TUZ3L z;6jinl~-ceAsOG1wt;e4vohJp``sV$@|SqSmh=4=N!paP$2r7t)2`0J`#>0I7_UaP zw+U@7osohzmW6)i44$oSb}j=6@4nMV06k9~qJRQ}m{zY~3dsu1+d3;_S^QmRMG^M| z!+?6bRnNjC1+fy_VJ$UMSsif(44@uQ5!nLv-Qi0Yfs(Z=cKKIeS}EIzyQHqbQD`gD z!k=f$lQGkyN&(rgi5x4tJ%|>;Re~wVu0|QY*S!eweWV11i#kcAAF?Jkz6C7Htm$IR z`#cg12l~hO;P17O*s7a_Utlb`LtlW3=`^kQm=zzW*O}I zn|J!Sb`1#)?s1%{9Z}HqZEn zKd4*;8ekbG+mcfDXcL|Lyn;s!TlmUr{=o052jFUmX zXB2EpLdqo*3pH(#UctH10KO+kpG5oOIifg`m(Kd8$ZyNe?H{}%I1trkZ+E|6e`V-9 z3K5`q6({KvNN(w&01f-781sodskpCSM{$p{w0Bq~=_ngS6!>HT2tVK~wBG6Sqp}v; zRwey(J78h+WNRaSwPir9B3TI-DR$Yy4)VeO!jnKi}hrlu{%TJcy0{U5Sz z)$G%7QEH*1tg>O_LU?;-Id<5G(;c*KTkmu_IB3kSEQ^wV^HVH1;R3)8-yohM z1St#Is2cH2-W(VY{&NpsaW4ya15fmozity0Ae4uK$@m~pYPM&U)lyf&s=ZmQOJFZN zacsUE;eEjC2EqwBjDuZ%@;T|qO_0lmMWf+IvC_?5IPzcr;NbLKlltVPzi12Z#y7FI~Or28iMTT*v zb}woGz9IFE7FwOp>J2u4Y>l8#UUBu{9R6BoY1j7EF<)r%a_BO1wVPn3kiKx>&6v;38_bp;cEQaOc% zh0&#QJ{OT9H`2CSJEKZew&JOe0{(C~%{h`WDGcaj^4f+K;TpTHT~f#?L>}-=e3uR> z#`6&YiHn$K9XpYDB);vyAclf>D>;u|H}^Dhh#ACY=*P@l7LTV8?@5;!3>LqqA4p=w zc1y~Bxg)K=-#@l;CS?d1-}Yd+{MM$5`fB=QVlF~+;|Q1$3wyJjWMh*^{`_Lz7 zGRd+9EG~zKnF|BJ!UGEG%B&kd0wiUtado4B_Dr_U_p+u@%rwSQQ5yVS;JGXQD(lVf z7?a7Ac|5Sy&H;&}ZiJdzi(Tm{uH$AUSl7d!M(0Bm@*w&Ob#QFPWZX&B!>DtKr~Gk11=+dVXt#UhNuuoJg` zMb<0Vx?Oof8)e1FAv{@4)sYignAg>|Eq(KRVL{N;-$>sF*@}(C@3IBrtCA<(f^pDR zP-nLlprJ>*uv6pl@}4qNkyG=prZ}t?V&Tuj78d!SKPcm(r0Cdt`vcW^eUE`5qUKiA z+cnq;DtD^S<)Nnh9BliWSwhZ3chJ;>D(2VEJb49&X zH5~w(zRK`d(O;-)l4K%66wI4a5H;gVQrO`8c~Li7N_&S53-h^eehfhBbkws6|M8Z; z6v){gzN)PS__~WtfMJdO@ppA~HPVt|+Q$d}1?~uFncDoX)=g!l|0@wz`-h{cQ?rAv z1=JzJ=9-7z{Y5s@B1~`h%%|RelHhky?v-pM&W;`wYv}O4iG5kAJ<}>xNN0 zXte@POm|mTD)%eqk|t0(&VQKT2*C~}#C7$qf}SrEj}i|UFuYa70RSv#=Olm$zu5!c zYwO{7AlJaa>&2rzKyy02Yu6o3>`jwCkYU}O|5tA0?upEh)Jx9oe*@^zX|NTA9@Oqp z-$gMeIXU@8OpMlGphsI}*C$gX5aqxW>gwz~dj$hlNAQ699*pWg+1&qMi(LMfq1yX_ zkW>us*8nll@Y9ihhEsFyxge~XCjqUiH+41#0~6%`pM?LLfAsR-I4;D>%Ja9((?@Rp S1ynkS!wHvPN`Joe+y4LoF8b2| diff --git a/demo_app/test/table/row_color.png b/demo_app/test/table/row_color.png index 36c99e56cd3537917d36e2cc4d9fb60898daeb35..e8bd41620b06f5d2703819bc9db1d99c59134cfb 100644 GIT binary patch literal 11034 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 From b313f2e4ffcf084f0b18aa4e338921683b241d7c Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 18 Feb 2025 00:23:36 +0700 Subject: [PATCH 06/11] Update files --- demo_app/ios/Podfile.lock | 29 +- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 2 +- demo_app/macos/Podfile.lock | 27 +- .../xcshareddata/xcschemes/Runner.xcscheme | 1 + demo_app/macos/Runner/AppDelegate.swift | 4 + demo_app/pubspec.lock | 339 +++++++++--------- 7 files changed, 203 insertions(+), 200 deletions(-) diff --git a/demo_app/ios/Podfile.lock b/demo_app/ios/Podfile.lock index e5a692e33..ef5364bb1 100644 --- a/demo_app/ios/Podfile.lock +++ b/demo_app/ios/Podfile.lock @@ -5,6 +5,7 @@ PODS: - Flutter (1.0.0) - just_audio (0.0.1): - Flutter + - FlutterMacOS - package_info_plus (0.4.5): - Flutter - path_provider_foundation (0.0.1): @@ -31,7 +32,7 @@ PODS: DEPENDENCIES: - audio_session (from `.symlinks/plugins/audio_session/ios`) - Flutter (from `Flutter`) - - just_audio (from `.symlinks/plugins/just_audio/ios`) + - just_audio (from `.symlinks/plugins/just_audio/darwin`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - patrol (from `.symlinks/plugins/patrol/darwin`) @@ -51,7 +52,7 @@ EXTERNAL SOURCES: Flutter: :path: Flutter just_audio: - :path: ".symlinks/plugins/just_audio/ios" + :path: ".symlinks/plugins/just_audio/darwin" package_info_plus: :path: ".symlinks/plugins/package_info_plus/ios" path_provider_foundation: @@ -70,19 +71,19 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" SPEC CHECKSUMS: - audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207 + audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa - package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - patrol: 0564cee315ff6c86fb802b3647db05cc2d3d0624 - sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 - webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 + just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + patrol: dd82ffedfee3aba87c1d0ed2daad0b77bfb8ee1f + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 + webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 -PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 +PODFILE CHECKSUM: 4047b237a92efec4e335c96f6d2daf630bacba96 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/demo_app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/demo_app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 694cadd3b..e3976e8e5 100644 --- a/demo_app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/demo_app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -69,6 +69,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/demo_app/macos/Flutter/GeneratedPluginRegistrant.swift b/demo_app/macos/Flutter/GeneratedPluginRegistrant.swift index 4327cd14e..88ff66ad5 100644 --- a/demo_app/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/demo_app/macos/Flutter/GeneratedPluginRegistrant.swift @@ -26,5 +26,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin")) WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) - FLTWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "FLTWebViewFlutterPlugin")) + WebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "WebViewFlutterPlugin")) } diff --git a/demo_app/macos/Podfile.lock b/demo_app/macos/Podfile.lock index 6628ad59c..d225655cb 100644 --- a/demo_app/macos/Podfile.lock +++ b/demo_app/macos/Podfile.lock @@ -4,6 +4,7 @@ PODS: - CocoaAsyncSocket (7.6.5) - FlutterMacOS (1.0.0) - just_audio (0.0.1): + - Flutter - FlutterMacOS - package_info_plus (0.0.1): - FlutterMacOS @@ -31,7 +32,7 @@ PODS: DEPENDENCIES: - audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - - just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/macos`) + - just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/darwin`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - patrol (from `Flutter/ephemeral/.symlinks/plugins/patrol/darwin`) @@ -51,7 +52,7 @@ EXTERNAL SOURCES: FlutterMacOS: :path: Flutter/ephemeral just_audio: - :path: Flutter/ephemeral/.symlinks/plugins/just_audio/macos + :path: Flutter/ephemeral/.symlinks/plugins/just_audio/darwin package_info_plus: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos path_provider_foundation: @@ -70,19 +71,19 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin SPEC CHECKSUMS: - audio_session: dea1f41890dbf1718f04a56f1d6150fd50039b72 + audio_session: eaca2512cf2b39212d724f35d11f46180ad3a33e CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - just_audio: 9b67ca7b97c61cfc9784ea23cd8cc55eb226d489 - package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - patrol: 0564cee315ff6c86fb802b3647db05cc2d3d0624 - sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d - url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - wakelock_plus: 4783562c9a43d209c458cb9b30692134af456269 - webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 + just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed + package_info_plus: f0052d280d17aa382b932f399edf32507174e870 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + patrol: dd82ffedfee3aba87c1d0ed2daad0b77bfb8ee1f + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673 + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + wakelock_plus: 21ddc249ac4b8d018838dbdabd65c5976c308497 + webview_flutter_wkwebview: 1821ceac936eba6f7984d89a9f3bcb4dea99ebb2 PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/demo_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/demo_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 29acf5bfd..c819ee0c5 100644 --- a/demo_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/demo_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/demo_app/macos/Runner/AppDelegate.swift b/demo_app/macos/Runner/AppDelegate.swift index 8e02df288..b3c176141 100644 --- a/demo_app/macos/Runner/AppDelegate.swift +++ b/demo_app/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/demo_app/pubspec.lock b/demo_app/pubspec.lock index 0c3ddfb1f..5bf14a86d 100644 --- a/demo_app/pubspec.lock +++ b/demo_app/pubspec.lock @@ -5,31 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: dc27559385e905ad30838356c5f5d574014ba39872d732111cd07ac0beff4c57 url: "https://pub.dev" source: hosted - version: "72.0.0" - _macros: - dependency: transitive - description: dart - source: sdk - version: "0.3.2" + version: "80.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "192d1c5b944e7e53b24b5586db760db934b177d4147c42fbca8c8c5f1eb8d11e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "7.3.0" archive: dependency: transitive description: name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "4.0.2" args: dependency: transitive description: @@ -42,26 +37,26 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.12.0" audio_session: dependency: transitive description: name: audio_session - sha256: "343e83bc7809fbda2591a49e525d6b63213ade10c76f15813be9aed6657b3261" + sha256: "2b7fff16a552486d078bfc09a8cde19f426dc6d6329262b684182597bec5b1ac" url: "https://pub.dev" source: hosted - version: "0.1.21" + version: "0.1.25" 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" cached_network_image: dependency: transitive description: @@ -98,10 +93,10 @@ packages: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" checked_yaml: dependency: transitive description: @@ -114,10 +109,10 @@ packages: dependency: transitive description: name: chewie - sha256: "335df378c025588aef400c704bd71f0daea479d4cd57c471c88c056c1144e7cd" + sha256: "645fbca3f22309381edb5af59a4c8aa544a3d3872d7b7b7c986c2b18b3bdd265" url: "https://pub.dev" source: hosted - version: "1.8.5" + version: "1.10.0" cli_util: dependency: transitive description: @@ -130,18 +125,18 @@ packages: 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" convert: dependency: transitive description: @@ -154,10 +149,10 @@ packages: dependency: transitive description: name: coverage - sha256: "4b03e11f6d5b8f6e5bb5e9f7889a56fe6c5cbe942da5378ea4d4d7f73ef9dfe5" + sha256: e3493833ea012784c740e341952298f1cc77f1f01b1bbc3eb4eecf6984fb7f43 url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" crypto: dependency: transitive description: @@ -186,34 +181,34 @@ packages: dependency: transitive description: name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.11" equatable: dependency: transitive description: name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.7" fake_async: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" ffi: dependency: transitive description: name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" file: dependency: transitive description: @@ -234,18 +229,18 @@ packages: dependency: "direct main" description: name: flex_color_scheme - sha256: "03fd5e68eff346a042026577f54be0cd4507e565cd86390b12c0aca1c5d6cb0b" + sha256: ae638050fceb35b6040a43cf67892f9b956022068e736284919d93322fdd4ba2 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.1.1" flex_seed_scheme: dependency: transitive description: name: flex_seed_scheme - sha256: "7639d2c86268eff84a909026eb169f008064af0fb3696a651b24b0fa24a40334" + sha256: d3ba3c5c92d2d79d45e94b4c6c71d01fac3c15017da1545880c53864da5dfeb0 url: "https://pub.dev" source: hosted - version: "3.4.1" + version: "3.5.0" flutter: dependency: "direct main" description: flutter @@ -263,18 +258,18 @@ packages: dependency: "direct dev" description: name: flutter_launcher_icons - sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77" + sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c url: "https://pub.dev" source: hosted - version: "0.14.1" + version: "0.14.3" flutter_svg: dependency: transitive description: name: flutter_svg - sha256: "578bd8c508144fdaffd4f77b8ef2d8c523602275cd697cc3db284dbd762ef4ce" + sha256: c200fd79c918a40c5cd50ea0877fa13f81bdaf6f0a5d3dbcc2a13e3285d6aa1b url: "https://pub.dev" source: hosted - version: "2.0.14" + version: "2.0.17" flutter_test: dependency: "direct dev" description: flutter @@ -353,10 +348,10 @@ packages: dependency: transitive description: name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" golden_toolkit: dependency: "direct dev" description: @@ -377,50 +372,50 @@ packages: dependency: "direct main" description: name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.3.0" http_multi_server: 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: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" image: dependency: transitive description: name: image - sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d + sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.5.2" io: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" js: dependency: transitive description: name: js - sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" url: "https://pub.dev" source: hosted - version: "0.7.1" + version: "0.7.2" json_annotation: dependency: transitive description: @@ -433,42 +428,42 @@ packages: dependency: transitive description: name: just_audio - sha256: a49e7120b95600bd357f37a2bb04cd1e88252f7cdea8f3368803779b925b1049 + sha256: f978d5b4ccea08f267dae0232ec5405c1b05d3f3cd63f82097ea46c015d5c09e url: "https://pub.dev" source: hosted - version: "0.9.42" + version: "0.9.46" just_audio_platform_interface: dependency: transitive description: name: just_audio_platform_interface - sha256: "0243828cce503c8366cc2090cefb2b3c871aa8ed2f520670d76fd47aa1ab2790" + sha256: "271b93b484c6f494ecd72a107fffbdb26b425f170c665b9777a0a24a726f2f24" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.4.0" just_audio_web: dependency: transitive description: name: just_audio_web - sha256: "9a98035b8b24b40749507687520ec5ab404e291d2b0937823ff45d92cb18d448" + sha256: "58915be64509a7683c44bf11cd1a23c15a48de104927bee116e3c63c8eeea0d4" url: "https://pub.dev" source: hosted - version: "0.4.13" + version: "0.4.14" leak_tracker: 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: @@ -481,10 +476,10 @@ packages: dependency: "direct dev" description: name: lint - sha256: d758a5211fce7fd3f5e316f804daefecdc34c7e53559716125e6da7388ae8565 + sha256: "68d71111816dc7c1de358281e506efe574bb5072eae4a19f8a57484bf96825f5" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.6.1" logging: dependency: "direct main" description: @@ -493,22 +488,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" - macros: - dependency: transitive - description: - name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" - url: "https://pub.dev" - source: hosted - version: "0.1.2-main.4" 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: @@ -529,10 +516,10 @@ packages: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.16.0" mime: dependency: transitive description: @@ -569,34 +556,34 @@ packages: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" package_info_plus: dependency: transitive description: name: package_info_plus - sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce + sha256: "67eae327b1b0faf761964a1d2e5d323c797f3799db0e85aa232db8d9e922bc35" url: "https://pub.dev" source: hosted - version: "8.1.1" + version: "8.2.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + sha256: "205ec83335c2ab9107bbba3f8997f9356d72ca3c715d2f038fc773d0366b4c76" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.1.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" path_parsing: dependency: transitive description: @@ -617,18 +604,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a + sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" url: "https://pub.dev" source: hosted - version: "2.2.12" + version: "2.2.15" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -673,10 +660,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.1.0" photo_view: dependency: "direct main" description: @@ -709,6 +696,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + posix: + dependency: transitive + description: + name: posix + sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a + url: "https://pub.dev" + source: hosted + version: "6.0.1" provider: dependency: "direct main" description: @@ -721,10 +716,10 @@ packages: dependency: transitive description: name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" rxdart: dependency: transitive description: @@ -737,10 +732,10 @@ packages: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_packages_handler: dependency: transitive description: @@ -761,15 +756,15 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "3.0.0" sky_engine: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_map_stack_trace: dependency: transitive description: @@ -782,18 +777,18 @@ packages: dependency: transitive description: name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" url: "https://pub.dev" source: hosted - version: "0.10.12" + version: "0.10.13" 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: @@ -806,34 +801,34 @@ packages: dependency: transitive description: name: sqflite - sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" + sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" sqflite_android: dependency: transitive description: name: sqflite_android - sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "4468b24876d673418a7b7147e5a08a715b4998a7ae69227acafaab762e0e5490" + sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" url: "https://pub.dev" source: hosted - version: "2.5.4+5" + version: "2.5.5" sqflite_darwin: dependency: transitive description: name: sqflite_darwin - sha256: "96a698e2bc82bd770a4d6aab00b42396a7c63d9e33513a56945cbccb594c2474" + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" sqflite_platform_interface: dependency: transitive description: @@ -846,66 +841,66 @@ 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" synchronized: dependency: transitive description: name: synchronized - sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" + sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6" url: "https://pub.dev" source: hosted - version: "3.3.0+3" + version: "3.3.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: dependency: "direct dev" description: name: test - sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" + sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" url: "https://pub.dev" source: hosted - version: "1.25.7" + version: "1.25.15" 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" test_core: dependency: transitive description: name: test_core - sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" + sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "0.6.8" typed_data: dependency: transitive description: @@ -934,10 +929,10 @@ packages: dependency: transitive description: name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_linux: dependency: transitive description: @@ -950,10 +945,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -966,18 +961,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" + sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.4" uuid: dependency: transitive description: @@ -990,26 +985,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "773c9522d66d523e1c7b25dfb95cc91c26a1e17b107039cfe147285e92de7878" + sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" url: "https://pub.dev" source: hosted - version: "1.1.14" + version: "1.1.18" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" url: "https://pub.dev" source: hosted - version: "1.1.12" + version: "1.1.13" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: ab9ff38fc771e9ee1139320adbe3d18a60327370c218c60752068ebee4b49ab1 + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" url: "https://pub.dev" source: hosted - version: "1.1.15" + version: "1.1.16" vector_math: dependency: transitive description: @@ -1030,66 +1025,66 @@ packages: dependency: transitive description: name: video_player_android - sha256: "391e092ba4abe2f93b3e625bd6b6a6ec7d7414279462c1c0ee42b5ab8d0a0898" + sha256: "7018dbcb395e2bca0b9a898e73989e67c0c4a5db269528e1b036ca38bcca0d0b" url: "https://pub.dev" source: hosted - version: "2.7.16" + version: "2.7.17" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - sha256: cd5ab8a8bc0eab65ab0cea40304097edc46da574c8c1ecdee96f28cd8ef3792f + sha256: "84b4752745eeccb6e75865c9aab39b3d28eb27ba5726d352d45db8297fbd75bc" url: "https://pub.dev" source: hosted - version: "2.6.2" + version: "2.7.0" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - sha256: "229d7642ccd9f3dc4aba169609dd6b5f3f443bb4cc15b82f7785fcada5af9bbb" + sha256: df534476c341ab2c6a835078066fc681b8265048addd853a1e3c78740316a844 url: "https://pub.dev" source: hosted - version: "6.2.3" + version: "6.3.0" video_player_web: dependency: transitive description: name: video_player_web - sha256: "881b375a934d8ebf868c7fb1423b2bfaa393a0a265fa3f733079a86536064a10" + sha256: "3ef40ea6d72434edbfdba4624b90fd3a80a0740d260667d91e7ecd2d79e13476" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.4" vm_service: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.1" wakelock_plus: dependency: transitive description: name: wakelock_plus - sha256: bf4ee6f17a2fa373ed3753ad0e602b7603f8c75af006d5b9bdade263928c0484 + sha256: "36c88af0b930121941345306d259ec4cc4ecca3b151c02e3a9e71aede83c615e" url: "https://pub.dev" source: hosted - version: "1.2.8" + version: "1.2.10" wakelock_plus_platform_interface: dependency: transitive description: name: wakelock_plus_platform_interface - sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" + sha256: "70e780bc99796e1db82fe764b1e7dcb89a86f1e5b3afb1db354de50f2e41eb7a" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" watcher: dependency: transitive description: name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" web: dependency: transitive description: @@ -1110,10 +1105,10 @@ packages: dependency: transitive description: name: web_socket_channel - sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" webkit_inspection_protocol: dependency: transitive description: @@ -1134,10 +1129,10 @@ packages: dependency: transitive description: name: webview_flutter_android - sha256: "86c2d01c37c4578ee46560109cf2e18fb271f0d080a796f09188d0952352e057" + sha256: "512c26ccc5b8a571fd5d13ec994b7509f142ff6faf85835e243dde3538fdc713" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.3.2" webview_flutter_platform_interface: dependency: transitive description: @@ -1150,18 +1145,18 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: "3be297aa4ca78205abdd284cf55f168c35246c75b3079990ad8ba9d257681a30" + sha256: "7310de7efa4e6df8b3d2ff14aef3f290bc00b43363f2d0028845e6de46507fc9" url: "https://pub.dev" source: hosted - version: "3.16.2" + version: "3.18.1" win32: dependency: transitive description: name: win32 - sha256: "84ba388638ed7a8cb3445a320c8273136ab2631cd5f2c57888335504ddab1bc2" + sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e url: "https://pub.dev" source: hosted - version: "5.8.0" + version: "5.10.1" xdg_directories: dependency: transitive description: @@ -1182,10 +1177,10 @@ packages: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + dart: ">=3.7.0 <4.0.0" + flutter: ">=3.27.0" From 9de5cedd5bf5f3b173cfaa28670f0e3449740084 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 18 Feb 2025 01:02:21 +0700 Subject: [PATCH 07/11] Update webview platform mocks --- .../test/mock_webview_platform.dart | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/fwfh_webview/test/mock_webview_platform.dart b/packages/fwfh_webview/test/mock_webview_platform.dart index f35e07b8b..2c080ce92 100644 --- a/packages/fwfh_webview/test/mock_webview_platform.dart +++ b/packages/fwfh_webview/test/mock_webview_platform.dart @@ -17,11 +17,11 @@ void mockWebViewPlatform() { final messenger = TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger; messenger.setMockMessageHandler( - 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', + 'dev.flutter.pigeon.webview_flutter_android.PigeonInternalInstanceManager.clear', (_) => Future.value(emptyList), ); messenger.setMockMessageHandler( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', + 'dev.flutter.pigeon.webview_flutter_android.WebView.setWebContentsDebuggingEnabled', (message) async { final decodedMessage = codec.decodeMessage(message) as List; FakeWebViewController.instance?.debuggingEnabled = @@ -154,6 +154,13 @@ class __FakeAndroidWebViewController extends FakeWebViewController implements AndroidWebViewController { __FakeAndroidWebViewController(super.params); + @override + Future setAllowContentAccess(bool enabled) => + throw UnimplementedError(); + + @override + Future setAllowFileAccess(bool allow) => throw UnimplementedError(); + @override Future setCustomWidgetCallbacks({ required OnHideCustomWidgetCallback? onHideCustomWidget, @@ -163,6 +170,10 @@ class __FakeAndroidWebViewController extends FakeWebViewController androidOnShowCustomWidget = onShowCustomWidget; } + @override + Future setGeolocationEnabled(bool enabled) => + throw UnimplementedError(); + @override Future setGeolocationPermissionsPromptCallbacks({ OnGeolocationPermissionsShowPrompt? onShowPrompt, @@ -197,6 +208,12 @@ class __FakeWebKitWebViewController extends FakeWebViewController Future setAllowsBackForwardNavigationGestures(bool enabled) => throw UnimplementedError(); + @override + Future setOnCanGoBackChange( + void Function(bool) onCanGoBackChangeCallback, + ) => + throw UnimplementedError(); + @override Future setInspectable(bool value) async { debuggingEnabled = value; From bdc002db89826e86639fcaf552518771aa3dfc66 Mon Sep 17 00:00:00 2001 From: Cirrus CI Date: Mon, 17 Feb 2025 18:23:14 +0000 Subject: [PATCH 08/11] `./tool/update-goldens.sh` --- demo_app/test/goldens/VIDEO.png | Bin 37584 -> 37397 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/demo_app/test/goldens/VIDEO.png b/demo_app/test/goldens/VIDEO.png index adf766efd87b7a9db4140961158024449bcb3194..42ae75e19409e7b6131a91a62abc33578eae1098 100644 GIT binary patch delta 19986 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 Vc|Q{oP5=M^00>D%PDHLkV1i?W4ru@Y delta 20174 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 QW&i*H07*qoM6N<$g7#Q03jhEB From 5def283be5e8c1c1ff5d10a408d7abcf934fc667 Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 18 Feb 2025 01:42:49 +0700 Subject: [PATCH 09/11] Requires Flutter >3.10: - fwfh_cached_network_image - fwfh_chewie - fwfh_just_audio - fwfh_svg - fwfh_url_launcher --- .../core/lib/src/core_widget_factory.dart | 64 ------------------- packages/core/lib/src/data/css.dart | 4 -- packages/core/lib/src/internal/flattener.dart | 6 -- .../src/internal/ops/style_background.dart | 5 -- .../src/internal/ops/style_display_flex.dart | 3 - .../lib/src/internal/ops/style_sizing.dart | 6 -- .../src/internal/ops/style_text_align.dart | 6 -- .../core/lib/src/internal/ops/tag_li.dart | 2 - .../core/lib/src/internal/ops/tag_ruby.dart | 2 - .../core/lib/src/internal/ops/tag_table.dart | 4 -- .../core/lib/src/internal/parser/color.dart | 5 -- packages/core/lib/src/widgets/html_flex.dart | 28 -------- .../lib/src/widgets/html_list_marker.dart | 5 -- packages/core/lib/src/widgets/html_table.dart | 2 - packages/core/pubspec.yaml | 2 +- packages/core/test/_.dart | 4 -- .../fwfh_cached_network_image/pubspec.yaml | 4 +- .../fwfh_cached_network_image/test/_.dart | 1 - .../fwfh_chewie/lib/src/chewie_factory.dart | 1 - packages/fwfh_chewie/pubspec.yaml | 4 +- .../lib/src/just_audio_factory.dart | 1 - packages/fwfh_just_audio/pubspec.yaml | 2 +- packages/fwfh_svg/lib/src/svg_factory.dart | 1 - packages/fwfh_svg/pubspec.yaml | 4 +- packages/fwfh_url_launcher/pubspec.yaml | 4 +- 25 files changed, 10 insertions(+), 160 deletions(-) diff --git a/packages/core/lib/src/core_widget_factory.dart b/packages/core/lib/src/core_widget_factory.dart index 4de63dc98..f311d0516 100644 --- a/packages/core/lib/src/core_widget_factory.dart +++ b/packages/core/lib/src/core_widget_factory.dart @@ -245,10 +245,8 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { switch (direction) { case Axis.horizontal: built = CssSizingHint(maxWidth: bc.maxWidth, child: built); - break; case Axis.vertical: built = CssSizingHint(maxHeight: bc.maxHeight, child: built); - break; } return built; }, @@ -690,7 +688,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { if (name != null) { tree.register(Anchor(this, name).buildOp); } - break; case 'abbr': case kTagAcronym: @@ -701,7 +698,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagAcronym, ), ); - break; case kTagAddress: tree.register( @@ -711,7 +707,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagAddress, ), ); - break; case 'article': case 'aside': case 'dl': @@ -729,7 +724,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagDiv, ), ); - break; case 'blockquote': case kTagFigure: @@ -740,23 +734,18 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagFigure, ), ); - break; case 'b': case 'strong': tree.inherit(text_ops.fontWeight, FontWeight.bold); - break; case 'big': tree.inherit(text_ops.fontSizeTerm, kCssFontSizeLarger); - break; case 'small': tree.inherit(text_ops.fontSizeTerm, kCssFontSizeSmaller); - break; case kTagBr: tree.register(tagBr); - break; case kTagCenter: tree.register( @@ -766,7 +755,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagCenter, ), ); - break; case 'cite': case 'dfn': @@ -774,7 +762,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { case 'i': case 'var': tree.inherit(text_ops.fontStyle, FontStyle.italic); - break; case kTagCode: case kTagKbd: @@ -784,14 +771,11 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { text_ops.fontFamily, const [kTagCodeFont1, kTagCodeFont2], ); - break; case kTagPre: tree.register(_tagPre ??= TagPre(this).buildOp); - break; case kTagDetails: tree.register(_tagDetails ??= TagDetails(this).buildOp); - break; case kTagDd: tree.register( @@ -801,7 +785,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagDd, ), ); - break; case kTagDt: tree.register( const BuildOp.v2( @@ -810,7 +793,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagDt, ), ); - break; case 'del': case 's': @@ -822,11 +804,9 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagStrike, ), ); - break; case kTagFont: tree.register(tagFont); - break; case kTagH1: tree.register( @@ -836,7 +816,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagH1, ), ); - break; case kTagH2: tree.register( const BuildOp.v2( @@ -845,7 +824,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagH2, ), ); - break; case kTagH3: tree.register( const BuildOp.v2( @@ -854,7 +832,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagH3, ), ); - break; case kTagH4: tree.register( const BuildOp.v2( @@ -863,7 +840,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagH4, ), ); - break; case kTagH5: tree.register( const BuildOp.v2( @@ -872,7 +848,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagH5, ), ); - break; case kTagH6: tree.register( const BuildOp.v2( @@ -881,7 +856,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagH6, ), ); - break; case kTagHr: tree.register( @@ -892,16 +866,13 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Priority.tagHr, ), ); - break; case kTagImg: tree.register(_tagImg ??= TagImg(this).buildOp); - break; case kTagOrderedList: case kTagUnorderedList: tree.register(_tagLi ??= TagLi(this).buildOp); - break; case kTagMark: tree.register( @@ -911,7 +882,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagMark, ), ); - break; case kTagP: tree.register( @@ -921,15 +891,12 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagP, ), ); - break; case kTagQ: tree.register(tagQ); - break; case kTagRuby: tree.register(tagRuby); - break; case 'style': case kTagScript: @@ -940,7 +907,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagScript, ), ); - break; case kTagSub: tree.register( @@ -950,7 +916,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagSub, ), ); - break; case kTagSup: tree.register( const BuildOp.v2( @@ -959,7 +924,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagSup, ), ); - break; case kTagTable: final tagTable = _tagTable ??= TagTable(this); @@ -973,7 +937,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { ) ..register(tagTable.borderOp) ..register(tagTable.cellPaddingOp); - break; case kTagTableCell: tree.register( const BuildOp.v2( @@ -982,7 +945,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagTableCellValignDefault, ), ); - break; case kTagTableHeaderCell: tree.register( const BuildOp.v2( @@ -991,7 +953,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagTableHeaderCellDefaultStyles, ), ); - break; case kTagTableCaption: tree.register( const BuildOp.v2( @@ -1000,7 +961,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagTableCaptionTextAlignCenter, ), ); - break; case 'u': case kTagIns: @@ -1011,7 +971,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.tagIns, ), ); - break; } for (final attribute in attrs.entries) { @@ -1024,7 +983,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.attributeAlign, ), ); - break; case kAttributeDir: tree.register( const BuildOp.v2( @@ -1033,10 +991,8 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { priority: Early.attributeDir, ), ); - break; case kAttributeId: tree.register(Anchor(this, attribute.value).buildOp); - break; } } } @@ -1051,26 +1007,22 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { if (color != null) { tree.inherit(text_ops.color, color); } - break; case kCssDirection: final term = style.term; if (term != null) { tree.inherit(text_ops.textDirection, term); } - break; case kCssFontFamily: final list = text_ops.fontFamilyTryParse(style.values); tree.inherit(text_ops.fontFamily, list); - break; case kCssFontSize: final value = style.value; if (value != null) { tree.inherit(text_ops.fontSize, value); } - break; case kCssFontStyle: final term = style.term; @@ -1079,7 +1031,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { if (fontStyle != null) { tree.inherit(text_ops.fontStyle, fontStyle); } - break; case kCssFontWeight: final value = style.value; @@ -1088,7 +1039,6 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { if (fontWeight != null) { tree.inherit(text_ops.fontWeight, fontWeight); } - break; case kCssHeight: case kCssMaxHeight: @@ -1097,14 +1047,12 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { case kCssMinWidth: case kCssWidth: StyleSizing.registerSizingOp(this, tree); - break; case kCssLineHeight: final value = style.value; if (value != null) { tree.inherit(text_ops.lineHeight, value); } - break; case kCssMaxLines: case kCssMaxLinesWebkitLineClamp: @@ -1112,11 +1060,9 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { if (maxLines != null) { tree.maxLines = maxLines; } - break; case kCssTextAlign: tree.register(styleTextAlign); - break; case kCssTextDecoration: case kCssTextDecorationColor: @@ -1125,18 +1071,15 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { case kCssTextDecorationThickness: case kCssTextDecorationWidth: textDecorationApply(tree, style); - break; case kCssTextOverflow: final textOverflow = tryParseTextOverflow(style.value); if (textOverflow != null) { tree.overflow = textOverflow; } - break; case kCssVerticalAlign: tree.register(_styleVerticalAlign ??= StyleVerticalAlign(this).buildOp); - break; case kCssWhitespace: final term = style.term; @@ -1145,11 +1088,9 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { if (whitespace != null) { tree.inherit(text_ops.whitespace, whitespace); } - break; case kCssTextShadow: textShadowApply(tree, style); - break; } if (key.startsWith(kCssBackground)) { @@ -1176,20 +1117,15 @@ class WidgetFactory extends WidgetFactoryResetter with AnchorWidgetFactory { switch (value) { case kCssDisplayFlex: tree.register(_styleDisplayFlex ??= StyleDisplayFlex(this).buildOp); - break; case kCssDisplayBlock: StyleSizing.registerBlockOp(this, tree); - break; case kCssDisplayInlineBlock: tree.register(displayInlineBlock); - break; case kCssDisplayNone: tree.register(displayNone); - break; case kCssDisplayTable: final tagTable = _tagTable ??= TagTable(this); tree.register(tagTable.tableOp); - break; } } diff --git a/packages/core/lib/src/data/css.dart b/packages/core/lib/src/data/css.dart index 6d087a0fd..18f2ae78e 100644 --- a/packages/core/lib/src/data/css.dart +++ b/packages/core/lib/src/data/css.dart @@ -318,7 +318,6 @@ class CssLength { value = baseValue * number; effectiveScaleFactor = 1; - break; case CssLengthUnit.percentage: if (baseValue == null) { return null; @@ -326,13 +325,10 @@ class CssLength { value = baseValue * number / 100; effectiveScaleFactor = 1; - break; case CssLengthUnit.pt: value = number * 96 / 72; - break; case CssLengthUnit.px: value = number; - break; } return value * effectiveScaleFactor; diff --git a/packages/core/lib/src/internal/flattener.dart b/packages/core/lib/src/internal/flattener.dart index e9fed4891..0be9408b5 100644 --- a/packages/core/lib/src/internal/flattener.dart +++ b/packages/core/lib/src/internal/flattener.dart @@ -377,25 +377,19 @@ extension on List<_String> { if (!str.shouldBeSwallowed) { buffer.write(' '); } - break; case CssWhitespace.nowrap: buffer.write('\u00A0'); - break; case CssWhitespace.pre: buffer.write(str.data); - break; } } else { switch (whitespace) { case CssWhitespace.normal: buffer.write(str.data); - break; case CssWhitespace.nowrap: buffer.write(str.data.replaceAll(' ', '\u00A0')); - break; case CssWhitespace.pre: buffer.write(str.data); - break; } } } diff --git a/packages/core/lib/src/internal/ops/style_background.dart b/packages/core/lib/src/internal/ops/style_background.dart index cbfa65672..168ef5cd2 100644 --- a/packages/core/lib/src/internal/ops/style_background.dart +++ b/packages/core/lib/src/internal/ops/style_background.dart @@ -106,13 +106,10 @@ extension on BuildTree { style.increaseIndex(); } } - break; case kCssBackgroundColor: data = data.copyWithColor(style); - break; case kCssBackgroundImage: data = data.copyWithImageUrl(style); - break; case kCssBackgroundPosition: while (style.hasValue) { final prev = data; @@ -122,11 +119,9 @@ extension on BuildTree { style.increaseIndex(); } } - break; case kCssBackgroundRepeat: case kCssBackgroundSize: data = data.copyWithRepeatOrSize(style); - break; } } diff --git a/packages/core/lib/src/internal/ops/style_display_flex.dart b/packages/core/lib/src/internal/ops/style_display_flex.dart index 1ff634d12..8d7dcde87 100644 --- a/packages/core/lib/src/internal/ops/style_display_flex.dart +++ b/packages/core/lib/src/internal/ops/style_display_flex.dart @@ -41,13 +41,10 @@ class StyleDisplayFlex { switch (element.property) { case kCssFlexDirection: flexDirection = value; - break; case kCssJustifyContent: justifyContent = value; - break; case kCssAlignItems: alignItems = value; - break; } } } diff --git a/packages/core/lib/src/internal/ops/style_sizing.dart b/packages/core/lib/src/internal/ops/style_sizing.dart index 49ef44fe0..2ccb204e3 100644 --- a/packages/core/lib/src/internal/ops/style_sizing.dart +++ b/packages/core/lib/src/internal/ops/style_sizing.dart @@ -223,26 +223,20 @@ extension on BuildTree { preferredAxis = Axis.vertical; preferredHeight = parsedHeight; } - break; case kCssMaxHeight: maxHeight = tryParseCssLength(value) ?? maxHeight; - break; case kCssMaxWidth: maxWidth = tryParseCssLength(value) ?? maxWidth; - break; case kCssMinHeight: minHeight = tryParseCssLength(value) ?? minHeight; - break; case kCssMinWidth: minWidth = tryParseCssLength(value) ?? minWidth; - break; case kCssWidth: final parsedWidth = tryParseCssLength(value); if (parsedWidth != null) { preferredAxis = Axis.horizontal; preferredWidth = parsedWidth; } - break; } } diff --git a/packages/core/lib/src/internal/ops/style_text_align.dart b/packages/core/lib/src/internal/ops/style_text_align.dart index 3afc07fc7..f7aecb1e4 100644 --- a/packages/core/lib/src/internal/ops/style_text_align.dart +++ b/packages/core/lib/src/internal/ops/style_text_align.dart @@ -67,22 +67,16 @@ extension on BuildTree { case kCssTextAlignMozCenter: case kCssTextAlignWebkitCenter: textAlign = TextAlign.center; - break; case kCssTextAlignEnd: textAlign = TextAlign.end; - break; case kCssTextAlignJustify: textAlign = TextAlign.justify; - break; case kCssTextAlignLeft: textAlign = TextAlign.left; - break; case kCssTextAlignRight: textAlign = TextAlign.right; - break; case kCssTextAlignStart: textAlign = TextAlign.start; - break; } return _StyleTextAlignData(term, textAlign); diff --git a/packages/core/lib/src/internal/ops/tag_li.dart b/packages/core/lib/src/internal/ops/tag_li.dart index f4b7078c7..048836d9d 100644 --- a/packages/core/lib/src/internal/ops/tag_li.dart +++ b/packages/core/lib/src/internal/ops/tag_li.dart @@ -39,7 +39,6 @@ class TagLi { case kTagOrderedList: case kTagUnorderedList: element.elementDepth = subTree.increaseListDepth(); - break; case kTagLi: if (element.parent == listTree.element) { subTree.register( @@ -56,7 +55,6 @@ class TagLi { ), ); } - break; } }, priority: Priority.tagLiList, diff --git a/packages/core/lib/src/internal/ops/tag_ruby.dart b/packages/core/lib/src/internal/ops/tag_ruby.dart index cd63a034f..3af2e1070 100644 --- a/packages/core/lib/src/internal/ops/tag_ruby.dart +++ b/packages/core/lib/src/internal/ops/tag_ruby.dart @@ -74,10 +74,8 @@ extension TagRuby on WidgetFactory { priority: Early.tagRp, ), ); - break; case kTagRt: subTree.inherit(text_ops.fontSizeEm, .5); - break; } } } diff --git a/packages/core/lib/src/internal/ops/tag_table.dart b/packages/core/lib/src/internal/ops/tag_table.dart index 508155b7c..e34faa603 100644 --- a/packages/core/lib/src/internal/ops/tag_table.dart +++ b/packages/core/lib/src/internal/ops/tag_table.dart @@ -307,7 +307,6 @@ class TagTable { onRenderedBlock: (_, block) => data.captions.add(block), ), ); - break; case kCssDisplayTableHeaderGroup: case kCssDisplayTableRowGroup: case kCssDisplayTableFooterGroup: @@ -317,13 +316,10 @@ class TagTable { ? data.newBody() : data.footer; subTree.register(group._groupOp); - break; case kCssDisplayTableRow: subTree.register(data.newBody().newRow()._rowOp); - break; case kCssDisplayTableCell: data.latestBody.latestRow._registerCellOp(subTree); - break; } } diff --git a/packages/core/lib/src/internal/parser/color.dart b/packages/core/lib/src/internal/parser/color.dart index d53a13b85..12d589eec 100644 --- a/packages/core/lib/src/internal/parser/color.dart +++ b/packages/core/lib/src/internal/parser/color.dart @@ -35,7 +35,6 @@ CssColor? tryParseColor(css.Expression? expression) { return CssColor.value(hslValue); } } - break; case 'rgb': case 'rgba': final params = expression.params; @@ -49,7 +48,6 @@ CssColor? tryParseColor(css.Expression? expression) { return CssColor.value(rgbValue); } } - break; } } else if (expression is css.HexColorTerm) { // cannot use expression.value directory due to issue with #f00 etc. @@ -95,15 +93,12 @@ double _parseColorHue(num number, [int? unit]) { case css.TokenKind.UNIT_ANGLE_RAD: final rad = v; deg = rad * (180 / pi); - break; case css.TokenKind.UNIT_ANGLE_GRAD: final grad = v; deg = grad * 0.9; - break; case css.TokenKind.UNIT_ANGLE_TURN: final turn = v; deg = turn * 360; - break; default: deg = v; } diff --git a/packages/core/lib/src/widgets/html_flex.dart b/packages/core/lib/src/widgets/html_flex.dart index 2f6b66094..12a66302c 100644 --- a/packages/core/lib/src/widgets/html_flex.dart +++ b/packages/core/lib/src/widgets/html_flex.dart @@ -291,7 +291,6 @@ class _HtmlFlexRenderObject extends RenderBox textDirection != null, 'Horizontal $runtimeType with multiple children has a null textDirection, so the layout order is undefined.', ); - break; case Axis.vertical: break; } @@ -304,7 +303,6 @@ class _HtmlFlexRenderObject extends RenderBox textDirection != null, 'Horizontal $runtimeType with $mainAxisAlignment has a null textDirection, so the alignment cannot be resolved.', ); - break; case Axis.vertical: break; } @@ -412,7 +410,6 @@ class _HtmlFlexRenderObject extends RenderBox case Axis.horizontal: mainSize = child.getMaxIntrinsicWidth(double.infinity); crossSize = childSize(child, mainSize); - break; case Axis.vertical: mainSize = child.getMaxIntrinsicHeight(double.infinity); crossSize = childSize(child, mainSize); @@ -608,7 +605,6 @@ class _HtmlFlexRenderObject extends RenderBox if (!node.constraints.hasBoundedWidth) { node = null; } - break; case Axis.vertical: while (!node!.constraints.hasBoundedHeight && node.parent is RenderBox) { @@ -698,19 +694,14 @@ class _HtmlFlexRenderObject extends RenderBox switch (crossAxisAlignment) { case CrossAxisAlignment.start: stretched = false; - break; case CrossAxisAlignment.center: stretched = false; - break; case CrossAxisAlignment.end: stretched = false; - break; case CrossAxisAlignment.baseline: stretched = false; - break; case CrossAxisAlignment.stretch: stretched = true; - break; } while (child != null) { final FlexParentData childParentData = @@ -726,7 +717,6 @@ class _HtmlFlexRenderObject extends RenderBox case Axis.horizontal: innerConstraints = BoxConstraints.tightFor(height: constraints.maxHeight); - break; case Axis.vertical: innerConstraints = BoxConstraints.tightFor(width: constraints.maxWidth); @@ -736,7 +726,6 @@ class _HtmlFlexRenderObject extends RenderBox case Axis.horizontal: innerConstraints = BoxConstraints(maxHeight: constraints.maxHeight); - break; case Axis.vertical: innerConstraints = BoxConstraints(maxWidth: constraints.maxWidth); } @@ -777,7 +766,6 @@ class _HtmlFlexRenderObject extends RenderBox switch (_getFit(child)) { case FlexFit.tight: minChildExtent = maxChildExtent; - break; case FlexFit.loose: minChildExtent = 0.0; } @@ -792,7 +780,6 @@ class _HtmlFlexRenderObject extends RenderBox minWidth: minChildExtent, maxWidth: maxChildExtent, ); - break; case Axis.vertical: innerConstraints = constraints.copyWith( minWidth: minCrossSize, @@ -887,7 +874,6 @@ class _HtmlFlexRenderObject extends RenderBox size = constraints.constrain(Size(actualSize, crossSize)); actualSize = size.width; crossSize = size.height; - break; case Axis.vertical: size = constraints.constrain(Size(crossSize, actualSize)); actualSize = size.height; @@ -902,46 +888,37 @@ class _HtmlFlexRenderObject extends RenderBox case MainAxisAlignment.end: case MainAxisAlignment.center: betweenSpace = 0.0; - break; case MainAxisAlignment.spaceBetween: if (childCount > 1) { betweenSpace = remainingSpace / (childCount - 1); } else { betweenSpace = 0.0; } - break; case MainAxisAlignment.spaceAround: if (childCount > 0) { betweenSpace = remainingSpace / childCount; } else { betweenSpace = 0.0; } - break; case MainAxisAlignment.spaceEvenly: if (childCount > 0) { betweenSpace = remainingSpace / (childCount + 1); } else { betweenSpace = 0.0; } - break; } final double leadingSpace; switch (_mainAxisAlignment) { case MainAxisAlignment.start: leadingSpace = 0.0; - break; case MainAxisAlignment.end: leadingSpace = remainingSpace; - break; case MainAxisAlignment.center: leadingSpace = remainingSpace / 2.0; - break; case MainAxisAlignment.spaceBetween: leadingSpace = 0.0; - break; case MainAxisAlignment.spaceAround: leadingSpace = betweenSpace / 2.0; - break; case MainAxisAlignment.spaceEvenly: leadingSpace = betweenSpace; } @@ -973,14 +950,11 @@ class _HtmlFlexRenderObject extends RenderBox (_crossAxisAlignment == CrossAxisAlignment.start) ? 0.0 : crossSize - _getCrossSize(child.size); - break; case CrossAxisAlignment.center: childCrossPosition = crossSize / 2.0 - _getCrossSize(child.size) / 2.0; - break; case CrossAxisAlignment.stretch: childCrossPosition = 0.0; - break; case CrossAxisAlignment.baseline: if (_direction == Axis.horizontal) { assert(textBaseline != null); @@ -1002,7 +976,6 @@ class _HtmlFlexRenderObject extends RenderBox case Axis.horizontal: childParentData.offset = Offset(childMainPosition, childCrossPosition); - break; case Axis.vertical: childParentData.offset = Offset(childCrossPosition, childMainPosition); @@ -1074,7 +1047,6 @@ class _HtmlFlexRenderObject extends RenderBox case Axis.horizontal: overflowChildRect = Rect.fromLTWH(0.0, 0.0, size.width + _overflow, 0.0); - break; case Axis.vertical: overflowChildRect = Rect.fromLTWH(0.0, 0.0, 0.0, size.height + _overflow); diff --git a/packages/core/lib/src/widgets/html_list_marker.dart b/packages/core/lib/src/widgets/html_list_marker.dart index 2e208b022..3b37f2a0a 100644 --- a/packages/core/lib/src/widgets/html_list_marker.dart +++ b/packages/core/lib/src/widgets/html_list_marker.dart @@ -138,14 +138,12 @@ class _ListMarkerRenderObject extends RenderBox { ..strokeWidth = 1 ..style = PaintingStyle.stroke, ); - break; case HtmlListMarkerType.disc: canvas.drawCircle( center, radius, Paint()..color = color, ); - break; case HtmlListMarkerType.disclosureClosed: final d = radius * 2; canvas @@ -160,7 +158,6 @@ class _ListMarkerRenderObject extends RenderBox { ..style = PaintingStyle.fill, ) ..restore(); - break; case HtmlListMarkerType.disclosureOpen: final d = radius * 2; canvas @@ -175,13 +172,11 @@ class _ListMarkerRenderObject extends RenderBox { ..style = PaintingStyle.fill, ) ..restore(); - break; case HtmlListMarkerType.square: canvas.drawRect( Rect.fromCircle(center: center, radius: radius * .8), Paint()..color = color, ); - break; } } diff --git a/packages/core/lib/src/widgets/html_table.dart b/packages/core/lib/src/widgets/html_table.dart index 80c3b88c3..7351b7f45 100644 --- a/packages/core/lib/src/widgets/html_table.dart +++ b/packages/core/lib/src/widgets/html_table.dart @@ -596,10 +596,8 @@ class _TableRenderLayouter { switch (tro._textDirection) { case TextDirection.ltr: x = calculatedX; - break; case TextDirection.rtl: x = calculatedWidth - childWidth - calculatedX; - break; } data.offset = Offset(x, calculatedY); diff --git a/packages/core/pubspec.yaml b/packages/core/pubspec.yaml index fb6305610..b885e05ae 100644 --- a/packages/core/pubspec.yaml +++ b/packages/core/pubspec.yaml @@ -5,7 +5,7 @@ homepage: https://github.com/daohoangson/flutter_widget_from_html/tree/master/pa environment: flutter: ">=3.10.0" - sdk: ">=2.19.0 <4.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: csslib: ">=0.17.0 <2.0.0" diff --git a/packages/core/test/_.dart b/packages/core/test/_.dart index 597b371e2..c350182ec 100644 --- a/packages/core/test/_.dart +++ b/packages/core/test/_.dart @@ -450,11 +450,9 @@ class Explainer { clazz = 'SizedBox.shrink'; } size = ''; - break; case 'InfinityxInfinity': clazz = 'SizedBox.expand'; size = ''; - break; } final key = box.key != null ? _key(box.key!) : ''; @@ -794,7 +792,6 @@ class Explainer { 'crossAxisAlignment=${dynamicWidget.crossAxisAlignment}' .replaceAll('CrossAxisAlignment.', ''), ); - break; } } @@ -823,7 +820,6 @@ class Explainer { 'left=${left.isInfinite ? '∞' : left.truncate()},' 'right=${right.isInfinite ? '∞' : right.truncate()}', ); - break; } } diff --git a/packages/fwfh_cached_network_image/pubspec.yaml b/packages/fwfh_cached_network_image/pubspec.yaml index b9baf5080..d41364190 100644 --- a/packages/fwfh_cached_network_image/pubspec.yaml +++ b/packages/fwfh_cached_network_image/pubspec.yaml @@ -4,8 +4,8 @@ description: WidgetFactory extension to render IMG with cached_network_image plu homepage: https://github.com/daohoangson/flutter_widget_from_html environment: - flutter: ">=3.7.0" - sdk: ">=2.19.0 <4.0.0" + flutter: ">=3.10.0" + sdk: ">=3.0.0 <4.0.0" dependencies: cached_network_image: ^3.0.0 diff --git a/packages/fwfh_cached_network_image/test/_.dart b/packages/fwfh_cached_network_image/test/_.dart index 35d10a1b4..26b87f0aa 100644 --- a/packages/fwfh_cached_network_image/test/_.dart +++ b/packages/fwfh_cached_network_image/test/_.dart @@ -77,7 +77,6 @@ class _WidgetFactory extends WidgetFactory with CachedNetworkImageFactory { final file = MemoryFileSystem().file(fileName) ..writeAsBytesSync(data.toList(growable: false)); yield FileInfo(file, FileSource.Cache, ttl, url); - break; case 'error.jpg': final file = MemoryFileSystem().file(fileName)..writeAsStringSync(''); yield FileInfo(file, FileSource.Cache, ttl, url); diff --git a/packages/fwfh_chewie/lib/src/chewie_factory.dart b/packages/fwfh_chewie/lib/src/chewie_factory.dart index dcd82c882..3d27fe70c 100644 --- a/packages/fwfh_chewie/lib/src/chewie_factory.dart +++ b/packages/fwfh_chewie/lib/src/chewie_factory.dart @@ -43,7 +43,6 @@ mixin ChewieFactory on WidgetFactory { switch (tree.element.localName) { case kTagVideo: tree.register(_tagVideo ??= TagVideo(this).buildOp); - break; } return super.parse(tree); } diff --git a/packages/fwfh_chewie/pubspec.yaml b/packages/fwfh_chewie/pubspec.yaml index 45c78dbd4..9deb06b5d 100644 --- a/packages/fwfh_chewie/pubspec.yaml +++ b/packages/fwfh_chewie/pubspec.yaml @@ -4,8 +4,8 @@ description: WidgetFactory extension to render VIDEO with the chewie plugin. homepage: https://github.com/daohoangson/flutter_widget_from_html environment: - flutter: ">=3.7.0" - sdk: ">=2.19.0 <4.0.0" + flutter: ">=3.10.0" + sdk: ">=3.0.0 <4.0.0" dependencies: chewie: ^1.0.0 diff --git a/packages/fwfh_just_audio/lib/src/just_audio_factory.dart b/packages/fwfh_just_audio/lib/src/just_audio_factory.dart index b947225f7..36c812d82 100644 --- a/packages/fwfh_just_audio/lib/src/just_audio_factory.dart +++ b/packages/fwfh_just_audio/lib/src/just_audio_factory.dart @@ -34,7 +34,6 @@ mixin JustAudioFactory on WidgetFactory { case kTagAudio: _tagAudio ??= TagAudio(this).buildOp; meta.register(_tagAudio!); - break; } return super.parse(meta); } diff --git a/packages/fwfh_just_audio/pubspec.yaml b/packages/fwfh_just_audio/pubspec.yaml index 22619424a..214d8ab42 100644 --- a/packages/fwfh_just_audio/pubspec.yaml +++ b/packages/fwfh_just_audio/pubspec.yaml @@ -5,7 +5,7 @@ homepage: https://github.com/daohoangson/flutter_widget_from_html environment: flutter: ">=3.10.0" - sdk: ">=2.19.0 <4.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: diff --git a/packages/fwfh_svg/lib/src/svg_factory.dart b/packages/fwfh_svg/lib/src/svg_factory.dart index 4c1f792cb..cf68a07f0 100644 --- a/packages/fwfh_svg/lib/src/svg_factory.dart +++ b/packages/fwfh_svg/lib/src/svg_factory.dart @@ -124,7 +124,6 @@ mixin SvgFactory on WidgetFactory { }, ), ); - break; } return super.parse(meta); diff --git a/packages/fwfh_svg/pubspec.yaml b/packages/fwfh_svg/pubspec.yaml index 9badce154..ad15a80ca 100644 --- a/packages/fwfh_svg/pubspec.yaml +++ b/packages/fwfh_svg/pubspec.yaml @@ -4,8 +4,8 @@ description: WidgetFactory extension to render SVG with flutter_svg plugin. homepage: https://github.com/daohoangson/flutter_widget_from_html environment: - flutter: ">=3.7.0" - sdk: ">=2.19.0 <4.0.0" + flutter: ">=3.10.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: diff --git a/packages/fwfh_url_launcher/pubspec.yaml b/packages/fwfh_url_launcher/pubspec.yaml index 344a7bd08..115864658 100644 --- a/packages/fwfh_url_launcher/pubspec.yaml +++ b/packages/fwfh_url_launcher/pubspec.yaml @@ -4,8 +4,8 @@ description: WidgetFactory extension to launch A tag via url_launcher plugin. homepage: https://github.com/daohoangson/flutter_widget_from_html environment: - flutter: ">=3.7.0" - sdk: ">=2.19.0 <4.0.0" + flutter: ">=3.10.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: From 0d52ecb5c9d9b72bc080bc857794cfb11ab6d4bc Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 18 Feb 2025 01:50:29 +0700 Subject: [PATCH 10/11] Fix tests --- packages/core/lib/src/internal/text_ops.dart | 1 + packages/fwfh_chewie/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/lib/src/internal/text_ops.dart b/packages/core/lib/src/internal/text_ops.dart index 775dd67ad..ab2c9bd0f 100644 --- a/packages/core/lib/src/internal/text_ops.dart +++ b/packages/core/lib/src/internal/text_ops.dart @@ -224,6 +224,7 @@ FontWeight? fontWeightTryParse(css.Expression expression) { return FontWeight.w800; case 900: return FontWeight.w900; + default: } } diff --git a/packages/fwfh_chewie/pubspec.yaml b/packages/fwfh_chewie/pubspec.yaml index 9deb06b5d..c39888fd0 100644 --- a/packages/fwfh_chewie/pubspec.yaml +++ b/packages/fwfh_chewie/pubspec.yaml @@ -8,7 +8,7 @@ environment: sdk: ">=3.0.0 <4.0.0" dependencies: - chewie: ^1.0.0 + chewie: ^1.3.0 flutter: sdk: flutter flutter_widget_from_html_core: ">=0.14.2 <0.16.0" From b1a67d9d0529ef67264eb5633cd1f2d6e466582f Mon Sep 17 00:00:00 2001 From: Dao Hoang Son Date: Tue, 18 Feb 2025 02:25:38 +0700 Subject: [PATCH 11/11] Fix webview backward compatibility --- .../test/mock_webview_platform.dart | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/fwfh_webview/test/mock_webview_platform.dart b/packages/fwfh_webview/test/mock_webview_platform.dart index 2c080ce92..eed4651f7 100644 --- a/packages/fwfh_webview/test/mock_webview_platform.dart +++ b/packages/fwfh_webview/test/mock_webview_platform.dart @@ -16,6 +16,23 @@ void mockWebViewPlatform() { final emptyList = codec.encodeMessage([]); final messenger = TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger; + + messenger.setMockMessageHandler( + // TODO: remove this when webview_flutter_android version >= 4.1.0 + 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', + (_) => Future.value(emptyList), + ); + messenger.setMockMessageHandler( + // TODO: remove this when webview_flutter_android version >= 4.1.0 + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', + (message) async { + final decodedMessage = codec.decodeMessage(message) as List; + FakeWebViewController.instance?.debuggingEnabled = + decodedMessage[0] == true; + return emptyList; + }, + ); + messenger.setMockMessageHandler( 'dev.flutter.pigeon.webview_flutter_android.PigeonInternalInstanceManager.clear', (_) => Future.value(emptyList),