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
2 changes: 1 addition & 1 deletion examples/movie_app/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.8
stac:
stac: ^1.0.0-dev.6
stac_core:
dio: ^5.8.0+1
smooth_page_indicator: ^1.2.1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'dart:async';

import 'package:flutter/material.dart';
import 'package:stac/src/framework/framework.dart';
import 'package:stac/src/parsers/types/type_parser.dart';
import 'package:stac/src/parsers/foundation/interaction/stac_traversal_edge_behavior_parser.dart';
import 'package:stac/src/utils/color_utils.dart';
import 'package:stac_core/stac_core.dart';
import 'package:stac_framework/stac_framework.dart';
Expand Down Expand Up @@ -52,7 +52,7 @@ class StacDialogActionParser extends StacActionParser<StacDialogAction> {
barrierColor: model.barrierColor.toColor(context),
barrierLabel: model.barrierLabel,
useSafeArea: model.useSafeArea ?? true,
traversalEdgeBehavior: model.traversalEdgeBehavior.parse,
traversalEdgeBehavior: model.traversalEdgeBehavior?.parse,
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:stac/src/framework/framework.dart';
import 'package:stac/src/parsers/core/stac_widget_parser.dart';
import 'package:stac/src/parsers/types/type_parser.dart';
import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart';
import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart';
import 'package:stac/src/utils/color_utils.dart';
import 'package:stac_core/stac_core.dart';
import 'package:stac_framework/stac_framework.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:stac/src/framework/framework.dart';
import 'package:stac/src/parsers/core/stac_action_parser.dart';
import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart';
import 'package:stac/src/parsers/types/type_parser.dart';
import 'package:stac/src/parsers/foundation/animation/stac_duration_parsers.dart';
import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart';
import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart';
import 'package:stac/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart';
import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart';
import 'package:stac/src/parsers/foundation/ui_components/stac_dismiss_direction_parser.dart';
import 'package:stac/src/parsers/foundation/ui_components/stac_snack_bar_behavior_parser.dart';
import 'package:stac/src/utils/color_utils.dart';
import 'package:stac_core/stac_core.dart';
import 'package:stac_framework/stac_framework.dart';
Expand Down Expand Up @@ -42,7 +47,7 @@ class StacSnackBarParser extends StacActionParser<StacSnackBar> {
duration: model.duration?.parse ?? const Duration(milliseconds: 4000),
onVisible: () => Stac.onCallFromJson(model.onVisible, context),
dismissDirection: model.dismissDirection?.parse,
clipBehavior: model.clipBehavior.parse,
clipBehavior: model.clipBehavior?.parse ?? Clip.hardEdge,
),
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacAlignmentDirectionalParser on StacAlignmentDirectional {
AlignmentDirectional get parse {
switch (this) {
case StacAlignmentDirectional.topStart:
return AlignmentDirectional.topStart;
case StacAlignmentDirectional.topCenter:
return AlignmentDirectional.topCenter;
case StacAlignmentDirectional.topEnd:
return AlignmentDirectional.topEnd;
case StacAlignmentDirectional.centerStart:
return AlignmentDirectional.centerStart;
case StacAlignmentDirectional.center:
return AlignmentDirectional.center;
case StacAlignmentDirectional.centerEnd:
return AlignmentDirectional.centerEnd;
case StacAlignmentDirectional.bottomStart:
return AlignmentDirectional.bottomStart;
case StacAlignmentDirectional.bottomCenter:
return AlignmentDirectional.bottomCenter;
case StacAlignmentDirectional.bottomEnd:
return AlignmentDirectional.bottomEnd;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacAlignmentGeometryParser on StacAlignmentGeometry {
Alignment get parse {
return Alignment(dx, dy);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacAlignmentParser on StacAlignment {
Alignment get parse {
switch (this) {
case StacAlignment.topLeft:
return Alignment.topLeft;
case StacAlignment.topCenter:
return Alignment.topCenter;
case StacAlignment.topRight:
return Alignment.topRight;
case StacAlignment.centerLeft:
return Alignment.centerLeft;
case StacAlignment.center:
return Alignment.center;
case StacAlignment.centerRight:
return Alignment.centerRight;
case StacAlignment.bottomLeft:
return Alignment.bottomLeft;
case StacAlignment.bottomCenter:
return Alignment.bottomCenter;
case StacAlignment.bottomRight:
return Alignment.bottomRight;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacCrossAxisAlignmentParser on StacCrossAxisAlignment {
CrossAxisAlignment get parse {
switch (this) {
case StacCrossAxisAlignment.start:
return CrossAxisAlignment.start;
case StacCrossAxisAlignment.end:
return CrossAxisAlignment.end;
case StacCrossAxisAlignment.center:
return CrossAxisAlignment.center;
case StacCrossAxisAlignment.stretch:
return CrossAxisAlignment.stretch;
case StacCrossAxisAlignment.baseline:
return CrossAxisAlignment.baseline;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacIconAlignmentParser on StacIconAlignment {
IconAlignment get parse {
switch (this) {
case StacIconAlignment.start:
return IconAlignment.start;
case StacIconAlignment.end:
return IconAlignment.end;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacMainAxisAlignmentParser on StacMainAxisAlignment {
MainAxisAlignment get parse {
switch (this) {
case StacMainAxisAlignment.start:
return MainAxisAlignment.start;
case StacMainAxisAlignment.end:
return MainAxisAlignment.end;
case StacMainAxisAlignment.center:
return MainAxisAlignment.center;
case StacMainAxisAlignment.spaceBetween:
return MainAxisAlignment.spaceBetween;
case StacMainAxisAlignment.spaceAround:
return MainAxisAlignment.spaceAround;
case StacMainAxisAlignment.spaceEvenly:
return MainAxisAlignment.spaceEvenly;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacMainAxisSizeParser on StacMainAxisSize {
MainAxisSize get parse {
switch (this) {
case StacMainAxisSize.min:
return MainAxisSize.min;
case StacMainAxisSize.max:
return MainAxisSize.max;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:stac_core/stac_core.dart';

extension StacDurationParser on StacDuration {
Duration get parse {
return Duration(
days: days ?? 0,
hours: hours ?? 0,
minutes: minutes ?? 0,
seconds: seconds ?? 0,
milliseconds: milliseconds ?? 0,
microseconds: microseconds ?? 0,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

import '../geometry/stac_rect_parser.dart';

extension StacRectTweenParser on StacRectTween {
RectTween parse(BuildContext context) {
final begin = this.begin?.parse;
final end = this.end?.parse;

switch (type) {
case 'materialRectArcTween':
return MaterialRectArcTween(begin: begin, end: end);
case 'materialRectCenterArcTween':
return MaterialRectCenterArcTween(begin: begin, end: end);
default:
return RectTween(begin: begin, end: end);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_border_side_parser.dart';

extension StacBeveledRectangleBorderParser on StacBeveledRectangleBorder {
BeveledRectangleBorder parse(BuildContext context) {
return BeveledRectangleBorder(
side: side?.parse(context) ?? BorderSide.none,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import 'package:flutter/material.dart';
import 'package:stac/src/utils/color_utils.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_border_side_parser.dart';
import 'stac_border_style_parser.dart';

extension StacBorderParser on StacBorder {
Border parse(BuildContext context) {
final hasIndividualSides =
top != null || right != null || bottom != null || left != null;

if (hasIndividualSides) {
return Border(
top: top?.parse(context) ?? BorderSide.none,
right: right?.parse(context) ?? BorderSide.none,
bottom: bottom?.parse(context) ?? BorderSide.none,
left: left?.parse(context) ?? BorderSide.none,
);
} else {
return Border.all(
color: color.toColor(context) ?? const Color(0xFF000000),
width: width ?? 1.0,
style: borderStyle?.parse ?? BorderStyle.solid,
strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside,
);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacBorderRadiusParser on StacBorderRadius {
BorderRadius get parse {
return BorderRadius.only(
topLeft: Radius.circular(topLeft ?? 0.0),
topRight: Radius.circular(topRight ?? 0.0),
bottomLeft: Radius.circular(bottomLeft ?? 0.0),
bottomRight: Radius.circular(bottomRight ?? 0.0),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:stac/src/utils/color_utils.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_border_style_parser.dart';

extension StacBorderSideParser on StacBorderSide {
BorderSide parse(BuildContext context) {
return BorderSide(
color: color?.toColor(context) ?? const Color(0xFF000000),
width: width ?? 1.0,
style: borderStyle?.parse ?? BorderStyle.solid,
strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

extension StacBorderStyleParser on StacBorderStyle {
BorderStyle get parse {
switch (this) {
case StacBorderStyle.none:
return BorderStyle.none;
case StacBorderStyle.solid:
return BorderStyle.solid;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_border_side_parser.dart';

extension StacCircleBorderParser on StacCircleBorder {
CircleBorder parse(BuildContext context) {
return CircleBorder(
side: side?.parse(context) ?? BorderSide.none,
eccentricity: eccentricity ?? 0.0,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_border_radius_parser.dart';
import 'stac_border_side_parser.dart';

extension StacContinuousRectangleBorderParser on StacContinuousRectangleBorder {
ContinuousRectangleBorder parse(BuildContext context) {
return ContinuousRectangleBorder(
side: side?.parse(context) ?? BorderSide.none,
borderRadius: borderRadius?.parse ?? BorderRadius.zero,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_border_radius_parser.dart';
import 'stac_border_side_parser.dart';

extension StacRoundedRectangleBorderParser on StacRoundedRectangleBorder {
RoundedRectangleBorder parse(BuildContext context) {
return RoundedRectangleBorder(
side: side?.parse(context) ?? BorderSide.none,
borderRadius: borderRadius?.parse ?? BorderRadius.zero,
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import 'package:flutter/material.dart';
import 'package:stac_core/stac_core.dart';

import 'stac_circle_border_parser.dart';
import 'stac_rounded_rectangle_border_parser.dart';

extension StacShapeBorderParser on StacShapeBorder {
OutlinedBorder parse(BuildContext context) {
switch (this) {
case StacRoundedRectangleBorder():
return (this as StacRoundedRectangleBorder).parse(context);
case StacCircleBorder():
return (this as StacCircleBorder).parse(context);
default:
return RoundedRectangleBorder(
side: BorderSide.none,
borderRadius: BorderRadius.zero,
);
}
}
}
Loading