Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 58 additions & 1 deletion packages/stac/lib/src/parsers/types/type_parser.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import 'package:stac_models/theme/stac_button_style/stac_button_style.dart';
import 'package:stac_models/types/stac_alignment.dart';
import 'package:stac_models/types/stac_axis.dart';
import 'package:stac_models/types/stac_beveled_rectangle_border/stac_beveled_rectangle_border.dart';
import 'package:stac_models/types/stac_blend_mode.dart';
import 'package:stac_models/types/stac_blur_style.dart';
import 'package:stac_models/types/stac_border/stac_border.dart';
import 'package:stac_models/types/stac_box_constraints/stac_box_constraints.dart';
Expand All @@ -27,6 +26,8 @@ import 'package:stac_models/types/stac_image_repeat.dart';
import 'package:stac_models/types/stac_main_axis_alignment.dart';
import 'package:stac_models/types/stac_main_axis_size.dart';
import 'package:stac_models/types/stac_offset/stac_offset.dart';
import 'dart:ui';
import 'dart:typed_data';
import 'package:stac_models/types/stac_shape_border/stac_shape_border.dart';
import 'package:stac_models/types/stac_stack_fit.dart';
import 'package:stac_models/types/stac_vertical_direction.dart';
Expand Down Expand Up @@ -480,6 +481,37 @@ extension StacRectParser on StacRect {
}
}

extension StacImageFilterParser on StacImageFilter {
ImageFilter get parse {
switch (type) {
case StacImageFilterType.blur:
final sx = sigmaX ?? 0.0;
final sy = sigmaY ?? sx;
return ImageFilter.blur(sigmaX: sx, sigmaY: sy);
case StacImageFilterType.matrix:
if (matrix != null && matrix!.length == 16) {
return ImageFilter.matrix(Float64List.fromList(matrix!));
}
return ImageFilter.matrix(Float64List.fromList(List.filled(16, 0)));
case StacImageFilterType.dilate:
final rx = radiusX ?? 0.0;
final ry = radiusY ?? rx;
return ImageFilter.dilate(radiusX: rx, radiusY: ry);
case StacImageFilterType.erode:
final rx = radiusX ?? 0.0;
final ry = radiusY ?? rx;
return ImageFilter.erode(radiusX: rx, radiusY: ry);
case StacImageFilterType.compose:
final innerFilter = inner?.parse;
final outerFilter = outer?.parse;
if (innerFilter != null && outerFilter != null) {
return ImageFilter.compose(inner: innerFilter, outer: outerFilter);
}
return ImageFilter.blur(sigmaX: 0, sigmaY: 0);
}
}
}

extension StacRectTweenParser on StacRectTween {
RectTween parse(BuildContext context) {
final begin = this.begin?.parse;
Expand Down Expand Up @@ -635,6 +667,31 @@ extension StacTileModeParser on StacTileMode {
}
}

extension StacBottomNavigationBarLandscapeLayoutParser
on StacBottomNavigationBarLandscapeLayout {
BottomNavigationBarLandscapeLayout get parse {
switch (this) {
case StacBottomNavigationBarLandscapeLayout.spread:
return BottomNavigationBarLandscapeLayout.spread;
case StacBottomNavigationBarLandscapeLayout.centered:
return BottomNavigationBarLandscapeLayout.centered;
case StacBottomNavigationBarLandscapeLayout.linear:
return BottomNavigationBarLandscapeLayout.linear;
}
}
}

extension StacBottomNavigationBarTypeParser on StacBottomNavigationBarType {
BottomNavigationBarType get parse {
switch (this) {
case StacBottomNavigationBarType.fixed:
return BottomNavigationBarType.fixed;
case StacBottomNavigationBarType.shifting:
return BottomNavigationBarType.shifting;
}
}
}

extension StacGradientParser on StacGradient {
Gradient? parse(BuildContext context) {
Gradient linearGradient() => LinearGradient(
Expand Down

This file was deleted.

This file was deleted.

Loading