diff --git a/packages/stac/lib/src/framework/stac.dart b/packages/stac/lib/src/framework/stac.dart index fd6fd106..9957a43f 100644 --- a/packages/stac/lib/src/framework/stac.dart +++ b/packages/stac/lib/src/framework/stac.dart @@ -10,6 +10,7 @@ import 'package:stac/src/parsers/parsers.dart'; import 'package:stac/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart'; import 'package:stac/src/parsers/widgets/stac_image/stac_image_parser.dart'; import 'package:stac/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart'; +import 'package:stac/src/parsers/widgets/stac_row/stac_row_parser.dart'; import 'package:stac/src/parsers/widgets/stac_set_value/stac_set_value_parser.dart'; import 'package:stac/src/parsers/widgets/stac_text/stac_text_parser.dart'; import 'package:stac/src/services/stac_network_service.dart'; diff --git a/packages/stac/lib/src/parsers/types/type_parser.dart b/packages/stac/lib/src/parsers/types/type_parser.dart index 76af36bb..7848d0e1 100644 --- a/packages/stac/lib/src/parsers/types/type_parser.dart +++ b/packages/stac/lib/src/parsers/types/type_parser.dart @@ -16,15 +16,19 @@ import 'package:stac_models/types/stac_box_fit.dart'; import 'package:stac_models/types/stac_box_shadow/stac_box_shadow.dart'; import 'package:stac_models/types/stac_box_shape.dart'; import 'package:stac_models/types/stac_clip.dart'; +import 'package:stac_models/types/stac_cross_axis_alignment.dart'; import 'package:stac_models/types/stac_double.dart'; import 'package:stac_models/types/stac_drag_start_behavior.dart'; import 'package:stac_models/types/stac_filter_quality.dart'; import 'package:stac_models/types/stac_floating_action_button_location.dart'; import 'package:stac_models/types/stac_gradient/stac_gradient.dart'; 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 'package:stac_models/types/stac_rect/stac_rect.dart'; import 'package:stac_models/types/stac_text_types.dart'; +import 'package:stac_models/types/stac_vertical_direction.dart'; extension StacFloatingActionButtonLocationParser on StacFloatingActionButtonLocation { @@ -560,6 +564,64 @@ extension StacBoxConstraintsParser on StacBoxConstraints { } } +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; + } + } +} + +extension StacMainAxisSizeParser on StacMainAxisSize { + MainAxisSize get parse { + switch (this) { + case StacMainAxisSize.min: + return MainAxisSize.min; + case StacMainAxisSize.max: + return MainAxisSize.max; + } + } +} + +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; + } + } +} + +extension StacVerticalDirectionParser on StacVerticalDirection { + VerticalDirection get parse { + switch (this) { + case StacVerticalDirection.up: + return VerticalDirection.up; + case StacVerticalDirection.down: + return VerticalDirection.down; + } + } +} + extension StacBrightnessParser on StacBrightness { Brightness get parse { switch (this) { diff --git a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.dart b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.dart deleted file mode 100644 index ca1957f9..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.dart +++ /dev/null @@ -1,24 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; - -export 'stac_column_parser.dart'; - -part 'stac_column.freezed.dart'; -part 'stac_column.g.dart'; - -@freezed -abstract class StacColumn with _$StacColumn { - const factory StacColumn({ - @Default(MainAxisAlignment.start) MainAxisAlignment mainAxisAlignment, - @Default(CrossAxisAlignment.center) CrossAxisAlignment crossAxisAlignment, - @Default(MainAxisSize.max) MainAxisSize mainAxisSize, - TextDirection? textDirection, - @Default(VerticalDirection.down) VerticalDirection verticalDirection, - @Default(StacDouble.zero) StacDouble spacing, - @Default([]) List> children, - }) = _StacColumn; - - factory StacColumn.fromJson(Map json) => - _$StacColumnFromJson(json); -} diff --git a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.freezed.dart b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.freezed.dart deleted file mode 100644 index d6e6c702..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.freezed.dart +++ /dev/null @@ -1,306 +0,0 @@ -// dart format width=80 -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'stac_column.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; - -/// @nodoc -mixin _$StacColumn { - MainAxisAlignment get mainAxisAlignment; - CrossAxisAlignment get crossAxisAlignment; - MainAxisSize get mainAxisSize; - TextDirection? get textDirection; - VerticalDirection get verticalDirection; - StacDouble get spacing; - List> get children; - - /// Create a copy of StacColumn - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - $StacColumnCopyWith get copyWith => - _$StacColumnCopyWithImpl(this as StacColumn, _$identity); - - /// Serializes this StacColumn to a JSON map. - Map toJson(); - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is StacColumn && - (identical(other.mainAxisAlignment, mainAxisAlignment) || - other.mainAxisAlignment == mainAxisAlignment) && - (identical(other.crossAxisAlignment, crossAxisAlignment) || - other.crossAxisAlignment == crossAxisAlignment) && - (identical(other.mainAxisSize, mainAxisSize) || - other.mainAxisSize == mainAxisSize) && - (identical(other.textDirection, textDirection) || - other.textDirection == textDirection) && - (identical(other.verticalDirection, verticalDirection) || - other.verticalDirection == verticalDirection) && - (identical(other.spacing, spacing) || other.spacing == spacing) && - const DeepCollectionEquality().equals(other.children, children)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, - mainAxisAlignment, - crossAxisAlignment, - mainAxisSize, - textDirection, - verticalDirection, - spacing, - const DeepCollectionEquality().hash(children)); - - @override - String toString() { - return 'StacColumn(mainAxisAlignment: $mainAxisAlignment, crossAxisAlignment: $crossAxisAlignment, mainAxisSize: $mainAxisSize, textDirection: $textDirection, verticalDirection: $verticalDirection, spacing: $spacing, children: $children)'; - } -} - -/// @nodoc -abstract mixin class $StacColumnCopyWith<$Res> { - factory $StacColumnCopyWith( - StacColumn value, $Res Function(StacColumn) _then) = - _$StacColumnCopyWithImpl; - @useResult - $Res call( - {MainAxisAlignment mainAxisAlignment, - CrossAxisAlignment crossAxisAlignment, - MainAxisSize mainAxisSize, - TextDirection? textDirection, - VerticalDirection verticalDirection, - StacDouble spacing, - List> children}); -} - -/// @nodoc -class _$StacColumnCopyWithImpl<$Res> implements $StacColumnCopyWith<$Res> { - _$StacColumnCopyWithImpl(this._self, this._then); - - final StacColumn _self; - final $Res Function(StacColumn) _then; - - /// Create a copy of StacColumn - /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? mainAxisAlignment = null, - Object? crossAxisAlignment = null, - Object? mainAxisSize = null, - Object? textDirection = freezed, - Object? verticalDirection = null, - Object? spacing = null, - Object? children = null, - }) { - return _then(_self.copyWith( - mainAxisAlignment: null == mainAxisAlignment - ? _self.mainAxisAlignment - : mainAxisAlignment // ignore: cast_nullable_to_non_nullable - as MainAxisAlignment, - crossAxisAlignment: null == crossAxisAlignment - ? _self.crossAxisAlignment - : crossAxisAlignment // ignore: cast_nullable_to_non_nullable - as CrossAxisAlignment, - mainAxisSize: null == mainAxisSize - ? _self.mainAxisSize - : mainAxisSize // ignore: cast_nullable_to_non_nullable - as MainAxisSize, - textDirection: freezed == textDirection - ? _self.textDirection - : textDirection // ignore: cast_nullable_to_non_nullable - as TextDirection?, - verticalDirection: null == verticalDirection - ? _self.verticalDirection - : verticalDirection // ignore: cast_nullable_to_non_nullable - as VerticalDirection, - spacing: null == spacing - ? _self.spacing - : spacing // ignore: cast_nullable_to_non_nullable - as StacDouble, - children: null == children - ? _self.children - : children // ignore: cast_nullable_to_non_nullable - as List>, - )); - } -} - -/// @nodoc -@JsonSerializable() -class _StacColumn implements StacColumn { - const _StacColumn( - {this.mainAxisAlignment = MainAxisAlignment.start, - this.crossAxisAlignment = CrossAxisAlignment.center, - this.mainAxisSize = MainAxisSize.max, - this.textDirection, - this.verticalDirection = VerticalDirection.down, - this.spacing = StacDouble.zero, - final List> children = const []}) - : _children = children; - factory _StacColumn.fromJson(Map json) => - _$StacColumnFromJson(json); - - @override - @JsonKey() - final MainAxisAlignment mainAxisAlignment; - @override - @JsonKey() - final CrossAxisAlignment crossAxisAlignment; - @override - @JsonKey() - final MainAxisSize mainAxisSize; - @override - final TextDirection? textDirection; - @override - @JsonKey() - final VerticalDirection verticalDirection; - @override - @JsonKey() - final StacDouble spacing; - final List> _children; - @override - @JsonKey() - List> get children { - if (_children is EqualUnmodifiableListView) return _children; - // ignore: implicit_dynamic_type - return EqualUnmodifiableListView(_children); - } - - /// Create a copy of StacColumn - /// with the given fields replaced by the non-null parameter values. - @override - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - _$StacColumnCopyWith<_StacColumn> get copyWith => - __$StacColumnCopyWithImpl<_StacColumn>(this, _$identity); - - @override - Map toJson() { - return _$StacColumnToJson( - this, - ); - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is _StacColumn && - (identical(other.mainAxisAlignment, mainAxisAlignment) || - other.mainAxisAlignment == mainAxisAlignment) && - (identical(other.crossAxisAlignment, crossAxisAlignment) || - other.crossAxisAlignment == crossAxisAlignment) && - (identical(other.mainAxisSize, mainAxisSize) || - other.mainAxisSize == mainAxisSize) && - (identical(other.textDirection, textDirection) || - other.textDirection == textDirection) && - (identical(other.verticalDirection, verticalDirection) || - other.verticalDirection == verticalDirection) && - (identical(other.spacing, spacing) || other.spacing == spacing) && - const DeepCollectionEquality().equals(other._children, _children)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, - mainAxisAlignment, - crossAxisAlignment, - mainAxisSize, - textDirection, - verticalDirection, - spacing, - const DeepCollectionEquality().hash(_children)); - - @override - String toString() { - return 'StacColumn(mainAxisAlignment: $mainAxisAlignment, crossAxisAlignment: $crossAxisAlignment, mainAxisSize: $mainAxisSize, textDirection: $textDirection, verticalDirection: $verticalDirection, spacing: $spacing, children: $children)'; - } -} - -/// @nodoc -abstract mixin class _$StacColumnCopyWith<$Res> - implements $StacColumnCopyWith<$Res> { - factory _$StacColumnCopyWith( - _StacColumn value, $Res Function(_StacColumn) _then) = - __$StacColumnCopyWithImpl; - @override - @useResult - $Res call( - {MainAxisAlignment mainAxisAlignment, - CrossAxisAlignment crossAxisAlignment, - MainAxisSize mainAxisSize, - TextDirection? textDirection, - VerticalDirection verticalDirection, - StacDouble spacing, - List> children}); -} - -/// @nodoc -class __$StacColumnCopyWithImpl<$Res> implements _$StacColumnCopyWith<$Res> { - __$StacColumnCopyWithImpl(this._self, this._then); - - final _StacColumn _self; - final $Res Function(_StacColumn) _then; - - /// Create a copy of StacColumn - /// with the given fields replaced by the non-null parameter values. - @override - @pragma('vm:prefer-inline') - $Res call({ - Object? mainAxisAlignment = null, - Object? crossAxisAlignment = null, - Object? mainAxisSize = null, - Object? textDirection = freezed, - Object? verticalDirection = null, - Object? spacing = null, - Object? children = null, - }) { - return _then(_StacColumn( - mainAxisAlignment: null == mainAxisAlignment - ? _self.mainAxisAlignment - : mainAxisAlignment // ignore: cast_nullable_to_non_nullable - as MainAxisAlignment, - crossAxisAlignment: null == crossAxisAlignment - ? _self.crossAxisAlignment - : crossAxisAlignment // ignore: cast_nullable_to_non_nullable - as CrossAxisAlignment, - mainAxisSize: null == mainAxisSize - ? _self.mainAxisSize - : mainAxisSize // ignore: cast_nullable_to_non_nullable - as MainAxisSize, - textDirection: freezed == textDirection - ? _self.textDirection - : textDirection // ignore: cast_nullable_to_non_nullable - as TextDirection?, - verticalDirection: null == verticalDirection - ? _self.verticalDirection - : verticalDirection // ignore: cast_nullable_to_non_nullable - as VerticalDirection, - spacing: null == spacing - ? _self.spacing - : spacing // ignore: cast_nullable_to_non_nullable - as StacDouble, - children: null == children - ? _self._children - : children // ignore: cast_nullable_to_non_nullable - as List>, - )); - } -} - -// dart format on diff --git a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.g.dart b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.g.dart deleted file mode 100644 index a94d1f99..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column.g.dart +++ /dev/null @@ -1,77 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'stac_column.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_StacColumn _$StacColumnFromJson(Map json) => _StacColumn( - mainAxisAlignment: $enumDecodeNullable( - _$MainAxisAlignmentEnumMap, json['mainAxisAlignment']) ?? - MainAxisAlignment.start, - crossAxisAlignment: $enumDecodeNullable( - _$CrossAxisAlignmentEnumMap, json['crossAxisAlignment']) ?? - CrossAxisAlignment.center, - mainAxisSize: - $enumDecodeNullable(_$MainAxisSizeEnumMap, json['mainAxisSize']) ?? - MainAxisSize.max, - textDirection: - $enumDecodeNullable(_$TextDirectionEnumMap, json['textDirection']), - verticalDirection: $enumDecodeNullable( - _$VerticalDirectionEnumMap, json['verticalDirection']) ?? - VerticalDirection.down, - spacing: json['spacing'] == null - ? StacDouble.zero - : StacDouble.fromJson(json['spacing']), - children: (json['children'] as List?) - ?.map((e) => e as Map) - .toList() ?? - const [], - ); - -Map _$StacColumnToJson(_StacColumn instance) => - { - 'mainAxisAlignment': - _$MainAxisAlignmentEnumMap[instance.mainAxisAlignment]!, - 'crossAxisAlignment': - _$CrossAxisAlignmentEnumMap[instance.crossAxisAlignment]!, - 'mainAxisSize': _$MainAxisSizeEnumMap[instance.mainAxisSize]!, - 'textDirection': _$TextDirectionEnumMap[instance.textDirection], - 'verticalDirection': - _$VerticalDirectionEnumMap[instance.verticalDirection]!, - 'spacing': instance.spacing, - 'children': instance.children, - }; - -const _$MainAxisAlignmentEnumMap = { - MainAxisAlignment.start: 'start', - MainAxisAlignment.end: 'end', - MainAxisAlignment.center: 'center', - MainAxisAlignment.spaceBetween: 'spaceBetween', - MainAxisAlignment.spaceAround: 'spaceAround', - MainAxisAlignment.spaceEvenly: 'spaceEvenly', -}; - -const _$CrossAxisAlignmentEnumMap = { - CrossAxisAlignment.start: 'start', - CrossAxisAlignment.end: 'end', - CrossAxisAlignment.center: 'center', - CrossAxisAlignment.stretch: 'stretch', - CrossAxisAlignment.baseline: 'baseline', -}; - -const _$MainAxisSizeEnumMap = { - MainAxisSize.min: 'min', - MainAxisSize.max: 'max', -}; - -const _$TextDirectionEnumMap = { - TextDirection.rtl: 'rtl', - TextDirection.ltr: 'ltr', -}; - -const _$VerticalDirectionEnumMap = { - VerticalDirection.up: 'up', - VerticalDirection.down: 'down', -}; diff --git a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart index c8338877..96be67ac 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart @@ -1,10 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/framework/framework.dart'; -import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; -import 'package:stac/src/utils/widget_type.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac_framework/stac_framework.dart'; - -import 'stac_column.dart'; +import 'package:stac_models/stac_models.dart'; +import 'package:stac_models/types/stac_double.dart'; class StacColumnParser extends StacParser { const StacColumnParser(); @@ -13,22 +12,21 @@ class StacColumnParser extends StacParser { StacColumn getModel(Map json) => StacColumn.fromJson(json); @override - String get type => WidgetType.column.name; + String get type => StacColumn().type; @override Widget parse(BuildContext context, StacColumn model) { return Column( - mainAxisAlignment: model.mainAxisAlignment, - crossAxisAlignment: model.crossAxisAlignment, - mainAxisSize: model.mainAxisSize, - textDirection: model.textDirection, - verticalDirection: model.verticalDirection, - spacing: model.spacing.parse, - children: model.children - .map( - (value) => Stac.fromJson(value, context) ?? const SizedBox(), - ) - .toList(), + mainAxisAlignment: + model.mainAxisAlignment?.parse ?? MainAxisAlignment.start, + crossAxisAlignment: + model.crossAxisAlignment?.parse ?? CrossAxisAlignment.center, + mainAxisSize: model.mainAxisSize?.parse ?? MainAxisSize.max, + textDirection: model.textDirection?.parse, + verticalDirection: + model.verticalDirection?.parse ?? VerticalDirection.down, + spacing: model.spacing?.parse ?? 0.0, + children: model.children.parseList(context) ?? [], ); } } diff --git a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.dart b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.dart deleted file mode 100644 index 2da4eb22..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac_models/painting/stac_edge_insets/stac_edge_insets.dart'; - -export 'stac_padding_parser.dart'; - -part 'stac_padding.freezed.dart'; -part 'stac_padding.g.dart'; - -@freezed -abstract class StacPadding with _$StacPadding { - const factory StacPadding({ - required StacEdgeInsets padding, - Map? child, - }) = _StacPadding; - - factory StacPadding.fromJson(Map json) => - _$StacPaddingFromJson(json); -} diff --git a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.freezed.dart b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.freezed.dart deleted file mode 100644 index 7fafb198..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.freezed.dart +++ /dev/null @@ -1,182 +0,0 @@ -// dart format width=80 -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'stac_padding.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; - -/// @nodoc -mixin _$StacPadding { - StacEdgeInsets get padding; - Map? get child; - - /// Create a copy of StacPadding - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - $StacPaddingCopyWith get copyWith => - _$StacPaddingCopyWithImpl(this as StacPadding, _$identity); - - /// Serializes this StacPadding to a JSON map. - Map toJson(); - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is StacPadding && - (identical(other.padding, padding) || other.padding == padding) && - const DeepCollectionEquality().equals(other.child, child)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, padding, const DeepCollectionEquality().hash(child)); - - @override - String toString() { - return 'StacPadding(padding: $padding, child: $child)'; - } -} - -/// @nodoc -abstract mixin class $StacPaddingCopyWith<$Res> { - factory $StacPaddingCopyWith( - StacPadding value, $Res Function(StacPadding) _then) = - _$StacPaddingCopyWithImpl; - @useResult - $Res call({StacEdgeInsets padding, Map? child}); -} - -/// @nodoc -class _$StacPaddingCopyWithImpl<$Res> implements $StacPaddingCopyWith<$Res> { - _$StacPaddingCopyWithImpl(this._self, this._then); - - final StacPadding _self; - final $Res Function(StacPadding) _then; - - /// Create a copy of StacPadding - /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? padding = null, - Object? child = freezed, - }) { - return _then(_self.copyWith( - padding: null == padding - ? _self.padding - : padding // ignore: cast_nullable_to_non_nullable - as StacEdgeInsets, - child: freezed == child - ? _self.child - : child // ignore: cast_nullable_to_non_nullable - as Map?, - )); - } -} - -/// @nodoc -@JsonSerializable() -class _StacPadding implements StacPadding { - const _StacPadding({required this.padding, final Map? child}) - : _child = child; - factory _StacPadding.fromJson(Map json) => - _$StacPaddingFromJson(json); - - @override - final StacEdgeInsets padding; - final Map? _child; - @override - Map? get child { - final value = _child; - if (value == null) return null; - if (_child is EqualUnmodifiableMapView) return _child; - // ignore: implicit_dynamic_type - return EqualUnmodifiableMapView(value); - } - - /// Create a copy of StacPadding - /// with the given fields replaced by the non-null parameter values. - @override - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - _$StacPaddingCopyWith<_StacPadding> get copyWith => - __$StacPaddingCopyWithImpl<_StacPadding>(this, _$identity); - - @override - Map toJson() { - return _$StacPaddingToJson( - this, - ); - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is _StacPadding && - (identical(other.padding, padding) || other.padding == padding) && - const DeepCollectionEquality().equals(other._child, _child)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, padding, const DeepCollectionEquality().hash(_child)); - - @override - String toString() { - return 'StacPadding(padding: $padding, child: $child)'; - } -} - -/// @nodoc -abstract mixin class _$StacPaddingCopyWith<$Res> - implements $StacPaddingCopyWith<$Res> { - factory _$StacPaddingCopyWith( - _StacPadding value, $Res Function(_StacPadding) _then) = - __$StacPaddingCopyWithImpl; - @override - @useResult - $Res call({StacEdgeInsets padding, Map? child}); -} - -/// @nodoc -class __$StacPaddingCopyWithImpl<$Res> implements _$StacPaddingCopyWith<$Res> { - __$StacPaddingCopyWithImpl(this._self, this._then); - - final _StacPadding _self; - final $Res Function(_StacPadding) _then; - - /// Create a copy of StacPadding - /// with the given fields replaced by the non-null parameter values. - @override - @pragma('vm:prefer-inline') - $Res call({ - Object? padding = null, - Object? child = freezed, - }) { - return _then(_StacPadding( - padding: null == padding - ? _self.padding - : padding // ignore: cast_nullable_to_non_nullable - as StacEdgeInsets, - child: freezed == child - ? _self._child - : child // ignore: cast_nullable_to_non_nullable - as Map?, - )); - } -} - -// dart format on diff --git a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.g.dart b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.g.dart deleted file mode 100644 index 07ba2b4a..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding.g.dart +++ /dev/null @@ -1,18 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'stac_padding.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_StacPadding _$StacPaddingFromJson(Map json) => _StacPadding( - padding: StacEdgeInsets.fromJson(json['padding']), - child: json['child'] as Map?, - ); - -Map _$StacPaddingToJson(_StacPadding instance) => - { - 'padding': instance.padding, - 'child': instance.child, - }; diff --git a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart index 024f0be5..7cc592c4 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart @@ -1,9 +1,9 @@ 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/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/widgets/stac_padding/stac_padding.dart'; import 'package:stac/src/utils/widget_type.dart'; import 'package:stac_framework/stac_framework.dart'; +import 'package:stac_models/stac_models.dart'; class StacPaddingParser extends StacParser { const StacPaddingParser(); @@ -17,8 +17,8 @@ class StacPaddingParser extends StacParser { @override Widget parse(BuildContext context, StacPadding model) { return Padding( - padding: model.padding.parse, - child: Stac.fromJson(model.child, context), + padding: model.padding?.parse ?? EdgeInsets.zero, + child: model.child?.parse(context), ); } } diff --git a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.dart b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.dart deleted file mode 100644 index dfa9fb28..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.dart +++ /dev/null @@ -1,24 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; - -export 'package:stac/src/parsers/widgets/stac_row/stac_row_parser.dart'; - -part 'stac_row.freezed.dart'; -part 'stac_row.g.dart'; - -@freezed -abstract class StacRow with _$StacRow { - const factory StacRow({ - @Default(MainAxisAlignment.start) MainAxisAlignment mainAxisAlignment, - @Default(CrossAxisAlignment.center) CrossAxisAlignment crossAxisAlignment, - @Default(MainAxisSize.max) MainAxisSize mainAxisSize, - TextDirection? textDirection, - @Default(VerticalDirection.down) VerticalDirection verticalDirection, - @Default(StacDouble.zero) StacDouble spacing, - @Default([]) List> children, - }) = _StacRow; - - factory StacRow.fromJson(Map json) => - _$StacRowFromJson(json); -} diff --git a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.freezed.dart b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.freezed.dart deleted file mode 100644 index e6731908..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.freezed.dart +++ /dev/null @@ -1,303 +0,0 @@ -// dart format width=80 -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'stac_row.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; - -/// @nodoc -mixin _$StacRow { - MainAxisAlignment get mainAxisAlignment; - CrossAxisAlignment get crossAxisAlignment; - MainAxisSize get mainAxisSize; - TextDirection? get textDirection; - VerticalDirection get verticalDirection; - StacDouble get spacing; - List> get children; - - /// Create a copy of StacRow - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - $StacRowCopyWith get copyWith => - _$StacRowCopyWithImpl(this as StacRow, _$identity); - - /// Serializes this StacRow to a JSON map. - Map toJson(); - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is StacRow && - (identical(other.mainAxisAlignment, mainAxisAlignment) || - other.mainAxisAlignment == mainAxisAlignment) && - (identical(other.crossAxisAlignment, crossAxisAlignment) || - other.crossAxisAlignment == crossAxisAlignment) && - (identical(other.mainAxisSize, mainAxisSize) || - other.mainAxisSize == mainAxisSize) && - (identical(other.textDirection, textDirection) || - other.textDirection == textDirection) && - (identical(other.verticalDirection, verticalDirection) || - other.verticalDirection == verticalDirection) && - (identical(other.spacing, spacing) || other.spacing == spacing) && - const DeepCollectionEquality().equals(other.children, children)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, - mainAxisAlignment, - crossAxisAlignment, - mainAxisSize, - textDirection, - verticalDirection, - spacing, - const DeepCollectionEquality().hash(children)); - - @override - String toString() { - return 'StacRow(mainAxisAlignment: $mainAxisAlignment, crossAxisAlignment: $crossAxisAlignment, mainAxisSize: $mainAxisSize, textDirection: $textDirection, verticalDirection: $verticalDirection, spacing: $spacing, children: $children)'; - } -} - -/// @nodoc -abstract mixin class $StacRowCopyWith<$Res> { - factory $StacRowCopyWith(StacRow value, $Res Function(StacRow) _then) = - _$StacRowCopyWithImpl; - @useResult - $Res call( - {MainAxisAlignment mainAxisAlignment, - CrossAxisAlignment crossAxisAlignment, - MainAxisSize mainAxisSize, - TextDirection? textDirection, - VerticalDirection verticalDirection, - StacDouble spacing, - List> children}); -} - -/// @nodoc -class _$StacRowCopyWithImpl<$Res> implements $StacRowCopyWith<$Res> { - _$StacRowCopyWithImpl(this._self, this._then); - - final StacRow _self; - final $Res Function(StacRow) _then; - - /// Create a copy of StacRow - /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? mainAxisAlignment = null, - Object? crossAxisAlignment = null, - Object? mainAxisSize = null, - Object? textDirection = freezed, - Object? verticalDirection = null, - Object? spacing = null, - Object? children = null, - }) { - return _then(_self.copyWith( - mainAxisAlignment: null == mainAxisAlignment - ? _self.mainAxisAlignment - : mainAxisAlignment // ignore: cast_nullable_to_non_nullable - as MainAxisAlignment, - crossAxisAlignment: null == crossAxisAlignment - ? _self.crossAxisAlignment - : crossAxisAlignment // ignore: cast_nullable_to_non_nullable - as CrossAxisAlignment, - mainAxisSize: null == mainAxisSize - ? _self.mainAxisSize - : mainAxisSize // ignore: cast_nullable_to_non_nullable - as MainAxisSize, - textDirection: freezed == textDirection - ? _self.textDirection - : textDirection // ignore: cast_nullable_to_non_nullable - as TextDirection?, - verticalDirection: null == verticalDirection - ? _self.verticalDirection - : verticalDirection // ignore: cast_nullable_to_non_nullable - as VerticalDirection, - spacing: null == spacing - ? _self.spacing - : spacing // ignore: cast_nullable_to_non_nullable - as StacDouble, - children: null == children - ? _self.children - : children // ignore: cast_nullable_to_non_nullable - as List>, - )); - } -} - -/// @nodoc -@JsonSerializable() -class _StacRow implements StacRow { - const _StacRow( - {this.mainAxisAlignment = MainAxisAlignment.start, - this.crossAxisAlignment = CrossAxisAlignment.center, - this.mainAxisSize = MainAxisSize.max, - this.textDirection, - this.verticalDirection = VerticalDirection.down, - this.spacing = StacDouble.zero, - final List> children = const []}) - : _children = children; - factory _StacRow.fromJson(Map json) => - _$StacRowFromJson(json); - - @override - @JsonKey() - final MainAxisAlignment mainAxisAlignment; - @override - @JsonKey() - final CrossAxisAlignment crossAxisAlignment; - @override - @JsonKey() - final MainAxisSize mainAxisSize; - @override - final TextDirection? textDirection; - @override - @JsonKey() - final VerticalDirection verticalDirection; - @override - @JsonKey() - final StacDouble spacing; - final List> _children; - @override - @JsonKey() - List> get children { - if (_children is EqualUnmodifiableListView) return _children; - // ignore: implicit_dynamic_type - return EqualUnmodifiableListView(_children); - } - - /// Create a copy of StacRow - /// with the given fields replaced by the non-null parameter values. - @override - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - _$StacRowCopyWith<_StacRow> get copyWith => - __$StacRowCopyWithImpl<_StacRow>(this, _$identity); - - @override - Map toJson() { - return _$StacRowToJson( - this, - ); - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is _StacRow && - (identical(other.mainAxisAlignment, mainAxisAlignment) || - other.mainAxisAlignment == mainAxisAlignment) && - (identical(other.crossAxisAlignment, crossAxisAlignment) || - other.crossAxisAlignment == crossAxisAlignment) && - (identical(other.mainAxisSize, mainAxisSize) || - other.mainAxisSize == mainAxisSize) && - (identical(other.textDirection, textDirection) || - other.textDirection == textDirection) && - (identical(other.verticalDirection, verticalDirection) || - other.verticalDirection == verticalDirection) && - (identical(other.spacing, spacing) || other.spacing == spacing) && - const DeepCollectionEquality().equals(other._children, _children)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, - mainAxisAlignment, - crossAxisAlignment, - mainAxisSize, - textDirection, - verticalDirection, - spacing, - const DeepCollectionEquality().hash(_children)); - - @override - String toString() { - return 'StacRow(mainAxisAlignment: $mainAxisAlignment, crossAxisAlignment: $crossAxisAlignment, mainAxisSize: $mainAxisSize, textDirection: $textDirection, verticalDirection: $verticalDirection, spacing: $spacing, children: $children)'; - } -} - -/// @nodoc -abstract mixin class _$StacRowCopyWith<$Res> implements $StacRowCopyWith<$Res> { - factory _$StacRowCopyWith(_StacRow value, $Res Function(_StacRow) _then) = - __$StacRowCopyWithImpl; - @override - @useResult - $Res call( - {MainAxisAlignment mainAxisAlignment, - CrossAxisAlignment crossAxisAlignment, - MainAxisSize mainAxisSize, - TextDirection? textDirection, - VerticalDirection verticalDirection, - StacDouble spacing, - List> children}); -} - -/// @nodoc -class __$StacRowCopyWithImpl<$Res> implements _$StacRowCopyWith<$Res> { - __$StacRowCopyWithImpl(this._self, this._then); - - final _StacRow _self; - final $Res Function(_StacRow) _then; - - /// Create a copy of StacRow - /// with the given fields replaced by the non-null parameter values. - @override - @pragma('vm:prefer-inline') - $Res call({ - Object? mainAxisAlignment = null, - Object? crossAxisAlignment = null, - Object? mainAxisSize = null, - Object? textDirection = freezed, - Object? verticalDirection = null, - Object? spacing = null, - Object? children = null, - }) { - return _then(_StacRow( - mainAxisAlignment: null == mainAxisAlignment - ? _self.mainAxisAlignment - : mainAxisAlignment // ignore: cast_nullable_to_non_nullable - as MainAxisAlignment, - crossAxisAlignment: null == crossAxisAlignment - ? _self.crossAxisAlignment - : crossAxisAlignment // ignore: cast_nullable_to_non_nullable - as CrossAxisAlignment, - mainAxisSize: null == mainAxisSize - ? _self.mainAxisSize - : mainAxisSize // ignore: cast_nullable_to_non_nullable - as MainAxisSize, - textDirection: freezed == textDirection - ? _self.textDirection - : textDirection // ignore: cast_nullable_to_non_nullable - as TextDirection?, - verticalDirection: null == verticalDirection - ? _self.verticalDirection - : verticalDirection // ignore: cast_nullable_to_non_nullable - as VerticalDirection, - spacing: null == spacing - ? _self.spacing - : spacing // ignore: cast_nullable_to_non_nullable - as StacDouble, - children: null == children - ? _self._children - : children // ignore: cast_nullable_to_non_nullable - as List>, - )); - } -} - -// dart format on diff --git a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.g.dart b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.g.dart deleted file mode 100644 index e7cfb9e3..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row.g.dart +++ /dev/null @@ -1,76 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'stac_row.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_StacRow _$StacRowFromJson(Map json) => _StacRow( - mainAxisAlignment: $enumDecodeNullable( - _$MainAxisAlignmentEnumMap, json['mainAxisAlignment']) ?? - MainAxisAlignment.start, - crossAxisAlignment: $enumDecodeNullable( - _$CrossAxisAlignmentEnumMap, json['crossAxisAlignment']) ?? - CrossAxisAlignment.center, - mainAxisSize: - $enumDecodeNullable(_$MainAxisSizeEnumMap, json['mainAxisSize']) ?? - MainAxisSize.max, - textDirection: - $enumDecodeNullable(_$TextDirectionEnumMap, json['textDirection']), - verticalDirection: $enumDecodeNullable( - _$VerticalDirectionEnumMap, json['verticalDirection']) ?? - VerticalDirection.down, - spacing: json['spacing'] == null - ? StacDouble.zero - : StacDouble.fromJson(json['spacing']), - children: (json['children'] as List?) - ?.map((e) => e as Map) - .toList() ?? - const [], - ); - -Map _$StacRowToJson(_StacRow instance) => { - 'mainAxisAlignment': - _$MainAxisAlignmentEnumMap[instance.mainAxisAlignment]!, - 'crossAxisAlignment': - _$CrossAxisAlignmentEnumMap[instance.crossAxisAlignment]!, - 'mainAxisSize': _$MainAxisSizeEnumMap[instance.mainAxisSize]!, - 'textDirection': _$TextDirectionEnumMap[instance.textDirection], - 'verticalDirection': - _$VerticalDirectionEnumMap[instance.verticalDirection]!, - 'spacing': instance.spacing, - 'children': instance.children, - }; - -const _$MainAxisAlignmentEnumMap = { - MainAxisAlignment.start: 'start', - MainAxisAlignment.end: 'end', - MainAxisAlignment.center: 'center', - MainAxisAlignment.spaceBetween: 'spaceBetween', - MainAxisAlignment.spaceAround: 'spaceAround', - MainAxisAlignment.spaceEvenly: 'spaceEvenly', -}; - -const _$CrossAxisAlignmentEnumMap = { - CrossAxisAlignment.start: 'start', - CrossAxisAlignment.end: 'end', - CrossAxisAlignment.center: 'center', - CrossAxisAlignment.stretch: 'stretch', - CrossAxisAlignment.baseline: 'baseline', -}; - -const _$MainAxisSizeEnumMap = { - MainAxisSize.min: 'min', - MainAxisSize.max: 'max', -}; - -const _$TextDirectionEnumMap = { - TextDirection.rtl: 'rtl', - TextDirection.ltr: 'ltr', -}; - -const _$VerticalDirectionEnumMap = { - VerticalDirection.up: 'up', - VerticalDirection.down: 'down', -}; diff --git a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart index 23fb35e2..a65a2545 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/framework/framework.dart'; -import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; -import 'package:stac/src/parsers/widgets/stac_row/stac_row.dart'; -import 'package:stac/src/utils/widget_type.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac_framework/stac_framework.dart'; +import 'package:stac_models/stac_models.dart'; +import 'package:stac_models/types/stac_double.dart'; class StacRowParser extends StacParser { const StacRowParser(); @@ -12,20 +12,20 @@ class StacRowParser extends StacParser { StacRow getModel(Map json) => StacRow.fromJson(json); @override - String get type => WidgetType.row.name; + String get type => StacRow().type; @override Widget parse(BuildContext context, StacRow model) { return Row( - mainAxisAlignment: model.mainAxisAlignment, - crossAxisAlignment: model.crossAxisAlignment, - mainAxisSize: model.mainAxisSize, - textDirection: model.textDirection, - verticalDirection: model.verticalDirection, - spacing: model.spacing.parse, - children: model.children - .map((value) => Stac.fromJson(value, context) ?? const SizedBox()) - .toList(), - ); + mainAxisAlignment: + model.mainAxisAlignment?.parse ?? MainAxisAlignment.start, + crossAxisAlignment: + model.crossAxisAlignment?.parse ?? CrossAxisAlignment.center, + mainAxisSize: model.mainAxisSize?.parse ?? MainAxisSize.max, + textDirection: model.textDirection?.parse, + verticalDirection: + model.verticalDirection?.parse ?? VerticalDirection.down, + spacing: model.spacing?.parse ?? 0, + children: model.children.parseList(context) ?? []); } } diff --git a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.dart b/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.dart deleted file mode 100644 index 00ba1038..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; - -export 'package:stac/src/parsers/widgets/stac_sized_box/stac_sized_box_parser.dart'; - -part 'stac_sized_box.freezed.dart'; -part 'stac_sized_box.g.dart'; - -@freezed -abstract class StacSizedBox with _$StacSizedBox { - const factory StacSizedBox({ - StacDouble? width, - StacDouble? height, - Map? child, - }) = _StacSizedBox; - - factory StacSizedBox.fromJson(Map json) => - _$StacSizedBoxFromJson(json); -} diff --git a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.freezed.dart b/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.freezed.dart deleted file mode 100644 index 70f05bdb..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.freezed.dart +++ /dev/null @@ -1,202 +0,0 @@ -// dart format width=80 -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'stac_sized_box.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; - -/// @nodoc -mixin _$StacSizedBox { - StacDouble? get width; - StacDouble? get height; - Map? get child; - - /// Create a copy of StacSizedBox - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - $StacSizedBoxCopyWith get copyWith => - _$StacSizedBoxCopyWithImpl( - this as StacSizedBox, _$identity); - - /// Serializes this StacSizedBox to a JSON map. - Map toJson(); - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is StacSizedBox && - (identical(other.width, width) || other.width == width) && - (identical(other.height, height) || other.height == height) && - const DeepCollectionEquality().equals(other.child, child)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, width, height, const DeepCollectionEquality().hash(child)); - - @override - String toString() { - return 'StacSizedBox(width: $width, height: $height, child: $child)'; - } -} - -/// @nodoc -abstract mixin class $StacSizedBoxCopyWith<$Res> { - factory $StacSizedBoxCopyWith( - StacSizedBox value, $Res Function(StacSizedBox) _then) = - _$StacSizedBoxCopyWithImpl; - @useResult - $Res call( - {StacDouble? width, StacDouble? height, Map? child}); -} - -/// @nodoc -class _$StacSizedBoxCopyWithImpl<$Res> implements $StacSizedBoxCopyWith<$Res> { - _$StacSizedBoxCopyWithImpl(this._self, this._then); - - final StacSizedBox _self; - final $Res Function(StacSizedBox) _then; - - /// Create a copy of StacSizedBox - /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? width = freezed, - Object? height = freezed, - Object? child = freezed, - }) { - return _then(_self.copyWith( - width: freezed == width - ? _self.width - : width // ignore: cast_nullable_to_non_nullable - as StacDouble?, - height: freezed == height - ? _self.height - : height // ignore: cast_nullable_to_non_nullable - as StacDouble?, - child: freezed == child - ? _self.child - : child // ignore: cast_nullable_to_non_nullable - as Map?, - )); - } -} - -/// @nodoc -@JsonSerializable() -class _StacSizedBox implements StacSizedBox { - const _StacSizedBox( - {this.width, this.height, final Map? child}) - : _child = child; - factory _StacSizedBox.fromJson(Map json) => - _$StacSizedBoxFromJson(json); - - @override - final StacDouble? width; - @override - final StacDouble? height; - final Map? _child; - @override - Map? get child { - final value = _child; - if (value == null) return null; - if (_child is EqualUnmodifiableMapView) return _child; - // ignore: implicit_dynamic_type - return EqualUnmodifiableMapView(value); - } - - /// Create a copy of StacSizedBox - /// with the given fields replaced by the non-null parameter values. - @override - @JsonKey(includeFromJson: false, includeToJson: false) - @pragma('vm:prefer-inline') - _$StacSizedBoxCopyWith<_StacSizedBox> get copyWith => - __$StacSizedBoxCopyWithImpl<_StacSizedBox>(this, _$identity); - - @override - Map toJson() { - return _$StacSizedBoxToJson( - this, - ); - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is _StacSizedBox && - (identical(other.width, width) || other.width == width) && - (identical(other.height, height) || other.height == height) && - const DeepCollectionEquality().equals(other._child, _child)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, width, height, const DeepCollectionEquality().hash(_child)); - - @override - String toString() { - return 'StacSizedBox(width: $width, height: $height, child: $child)'; - } -} - -/// @nodoc -abstract mixin class _$StacSizedBoxCopyWith<$Res> - implements $StacSizedBoxCopyWith<$Res> { - factory _$StacSizedBoxCopyWith( - _StacSizedBox value, $Res Function(_StacSizedBox) _then) = - __$StacSizedBoxCopyWithImpl; - @override - @useResult - $Res call( - {StacDouble? width, StacDouble? height, Map? child}); -} - -/// @nodoc -class __$StacSizedBoxCopyWithImpl<$Res> - implements _$StacSizedBoxCopyWith<$Res> { - __$StacSizedBoxCopyWithImpl(this._self, this._then); - - final _StacSizedBox _self; - final $Res Function(_StacSizedBox) _then; - - /// Create a copy of StacSizedBox - /// with the given fields replaced by the non-null parameter values. - @override - @pragma('vm:prefer-inline') - $Res call({ - Object? width = freezed, - Object? height = freezed, - Object? child = freezed, - }) { - return _then(_StacSizedBox( - width: freezed == width - ? _self.width - : width // ignore: cast_nullable_to_non_nullable - as StacDouble?, - height: freezed == height - ? _self.height - : height // ignore: cast_nullable_to_non_nullable - as StacDouble?, - child: freezed == child - ? _self._child - : child // ignore: cast_nullable_to_non_nullable - as Map?, - )); - } -} - -// dart format on diff --git a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.g.dart b/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.g.dart deleted file mode 100644 index 1f5750b5..00000000 --- a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box.g.dart +++ /dev/null @@ -1,22 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'stac_sized_box.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_StacSizedBox _$StacSizedBoxFromJson(Map json) => - _StacSizedBox( - width: json['width'] == null ? null : StacDouble.fromJson(json['width']), - height: - json['height'] == null ? null : StacDouble.fromJson(json['height']), - child: json['child'] as Map?, - ); - -Map _$StacSizedBoxToJson(_StacSizedBox instance) => - { - 'width': instance.width, - 'height': instance.height, - 'child': instance.child, - }; diff --git a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box_parser.dart index 330921e0..db679ec1 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_sized_box/stac_sized_box_parser.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/framework/framework.dart'; -import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; -import 'package:stac/src/parsers/widgets/stac_sized_box/stac_sized_box.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; import 'package:stac/src/utils/widget_type.dart'; import 'package:stac_framework/stac_framework.dart'; +import 'package:stac_models/stac_models.dart'; +import 'package:stac_models/types/stac_double.dart'; class StacSizedBoxParser extends StacParser { const StacSizedBoxParser(); @@ -20,7 +20,7 @@ class StacSizedBoxParser extends StacParser { return SizedBox( width: model.width?.parse, height: model.height?.parse, - child: Stac.fromJson(model.child, context), + child: model.child.parse(context), ); } } diff --git a/packages/stac/lib/src/parsers/widgets/widgets.dart b/packages/stac/lib/src/parsers/widgets/widgets.dart index f36ec6b1..392f2fda 100644 --- a/packages/stac/lib/src/parsers/widgets/widgets.dart +++ b/packages/stac/lib/src/parsers/widgets/widgets.dart @@ -20,8 +20,8 @@ export 'package:stac/src/parsers/widgets/stac_circular_progress_indicator/stac_c export 'package:stac/src/parsers/widgets/stac_clip_oval/stac_clip_oval.dart'; export 'package:stac/src/parsers/widgets/stac_clip_rrect/stac_clip_rrect.dart'; export 'package:stac/src/parsers/widgets/stac_colored_box/stac_colored_box.dart'; -export 'package:stac/src/parsers/widgets/stac_column/stac_column.dart'; export 'package:stac/src/parsers/widgets/stac_conditional/stac_conditional.dart'; +export 'package:stac/src/parsers/widgets/stac_column/stac_column_parser.dart'; export 'package:stac/src/parsers/widgets/stac_container/stac_container_parser.dart'; export 'package:stac/src/parsers/widgets/stac_custom_scroll_view/stac_custom_scroll_view.dart'; export 'package:stac/src/parsers/widgets/stac_default_bottom_navigation_controller/stac_default_bottom_navigation_controller.dart'; @@ -60,20 +60,19 @@ export 'package:stac/src/parsers/widgets/stac_list_view/stac_list_view.dart'; export 'package:stac/src/parsers/widgets/stac_network_widget/stac_network_widget.dart'; export 'package:stac/src/parsers/widgets/stac_opacity/stac_opacity.dart'; export 'package:stac/src/parsers/widgets/stac_outlined_button/stac_outlined_button.dart'; -export 'package:stac/src/parsers/widgets/stac_padding/stac_padding.dart'; +export 'package:stac/src/parsers/widgets/stac_padding/stac_padding_parser.dart'; export 'package:stac/src/parsers/widgets/stac_page_view/stac_page_view.dart'; export 'package:stac/src/parsers/widgets/stac_placeholder/stac_placeholder.dart'; export 'package:stac/src/parsers/widgets/stac_positioned/stac_positioned.dart'; export 'package:stac/src/parsers/widgets/stac_radio/stac_radio.dart'; export 'package:stac/src/parsers/widgets/stac_radio_group/stac_radio_group.dart'; export 'package:stac/src/parsers/widgets/stac_refresh_indicator/stac_refresh_indicator.dart'; -export 'package:stac/src/parsers/widgets/stac_row/stac_row.dart'; export 'package:stac/src/parsers/widgets/stac_safe_area/stac_safe_area.dart'; export 'package:stac/src/parsers/widgets/stac_scaffold/stac_scaffold_parser.dart'; export 'package:stac/src/parsers/widgets/stac_set_value/stac_set_value.dart'; export 'package:stac/src/parsers/widgets/stac_shape_border/stac_shape_border.dart'; export 'package:stac/src/parsers/widgets/stac_single_child_scroll_view/stac_single_child_scroll_view.dart'; -export 'package:stac/src/parsers/widgets/stac_sized_box/stac_sized_box.dart'; +export 'package:stac/src/parsers/widgets/stac_sized_box/stac_sized_box_parser.dart'; export 'package:stac/src/parsers/widgets/stac_slider/stac_slider.dart'; export 'package:stac/src/parsers/widgets/stac_sliver_app_bar/stac_sliver_app_bar.dart'; export 'package:stac/src/parsers/widgets/stac_spacer/stac_spacer.dart'; diff --git a/packages/stac_models/lib/types/stac_cross_axis_alignment.dart b/packages/stac_models/lib/types/stac_cross_axis_alignment.dart new file mode 100644 index 00000000..0993bdd3 --- /dev/null +++ b/packages/stac_models/lib/types/stac_cross_axis_alignment.dart @@ -0,0 +1 @@ +enum StacCrossAxisAlignment { start, end, center, stretch, baseline } diff --git a/packages/stac_models/lib/types/stac_main_axis_alignment.dart b/packages/stac_models/lib/types/stac_main_axis_alignment.dart new file mode 100644 index 00000000..8f7b9092 --- /dev/null +++ b/packages/stac_models/lib/types/stac_main_axis_alignment.dart @@ -0,0 +1,8 @@ +enum StacMainAxisAlignment { + start, + end, + center, + spaceBetween, + spaceAround, + spaceEvenly, +} diff --git a/packages/stac_models/lib/types/stac_main_axis_size.dart b/packages/stac_models/lib/types/stac_main_axis_size.dart new file mode 100644 index 00000000..5e354edc --- /dev/null +++ b/packages/stac_models/lib/types/stac_main_axis_size.dart @@ -0,0 +1 @@ +enum StacMainAxisSize { min, max } diff --git a/packages/stac_models/lib/types/stac_vertical_direction.dart b/packages/stac_models/lib/types/stac_vertical_direction.dart new file mode 100644 index 00000000..2e19260f --- /dev/null +++ b/packages/stac_models/lib/types/stac_vertical_direction.dart @@ -0,0 +1 @@ +enum StacVerticalDirection { up, down } diff --git a/packages/stac_models/lib/widgets/column/stac_column.dart b/packages/stac_models/lib/widgets/column/stac_column.dart new file mode 100644 index 00000000..c3a059a2 --- /dev/null +++ b/packages/stac_models/lib/widgets/column/stac_column.dart @@ -0,0 +1,48 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:stac_models/core/stac_model.dart'; +import 'package:stac_models/types/stac_cross_axis_alignment.dart'; +import 'package:stac_models/types/stac_double.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_text_types.dart'; +import 'package:stac_models/types/stac_vertical_direction.dart'; + +part 'stac_column.g.dart'; + +@JsonSerializable() +class StacColumn extends StacWidget { + const StacColumn({ + this.mainAxisAlignment, + this.mainAxisSize, + this.crossAxisAlignment, + this.textDirection, + this.verticalDirection, + this.textBaseline, + this.spacing, + this.children, + }); + + final StacMainAxisAlignment? mainAxisAlignment; + final StacMainAxisSize? mainAxisSize; + final StacCrossAxisAlignment? crossAxisAlignment; + final StacTextDirection? textDirection; + final StacVerticalDirection? verticalDirection; + final StacTextBaseline? textBaseline; + final StacDouble? spacing; + + @StacWidgetListJsonConverter() + final List? children; + + @override + String get type => 'column'; + + factory StacColumn.fromJson(Map json) => + _$StacColumnFromJson(json); + + @override + Map toJson() { + final json = _$StacColumnToJson(this); + json['type'] = type; + return json; + } +} diff --git a/packages/stac_models/lib/widgets/column/stac_column.g.dart b/packages/stac_models/lib/widgets/column/stac_column.g.dart new file mode 100644 index 00000000..3e1e0c41 --- /dev/null +++ b/packages/stac_models/lib/widgets/column/stac_column.g.dart @@ -0,0 +1,92 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'stac_column.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +StacColumn _$StacColumnFromJson(Map json) => StacColumn( + mainAxisAlignment: $enumDecodeNullable( + _$StacMainAxisAlignmentEnumMap, + json['mainAxisAlignment'], + ), + mainAxisSize: $enumDecodeNullable( + _$StacMainAxisSizeEnumMap, + json['mainAxisSize'], + ), + crossAxisAlignment: $enumDecodeNullable( + _$StacCrossAxisAlignmentEnumMap, + json['crossAxisAlignment'], + ), + textDirection: $enumDecodeNullable( + _$StacTextDirectionEnumMap, + json['textDirection'], + ), + verticalDirection: $enumDecodeNullable( + _$StacVerticalDirectionEnumMap, + json['verticalDirection'], + ), + textBaseline: $enumDecodeNullable( + _$StacTextBaselineEnumMap, + json['textBaseline'], + ), + spacing: json['spacing'] == null + ? null + : StacDouble.fromJson(json['spacing']), + children: const StacWidgetListJsonConverter().fromJson( + json['children'] as List>?, + ), +); + +Map _$StacColumnToJson(StacColumn instance) => + { + 'mainAxisAlignment': + _$StacMainAxisAlignmentEnumMap[instance.mainAxisAlignment], + 'mainAxisSize': _$StacMainAxisSizeEnumMap[instance.mainAxisSize], + 'crossAxisAlignment': + _$StacCrossAxisAlignmentEnumMap[instance.crossAxisAlignment], + 'textDirection': _$StacTextDirectionEnumMap[instance.textDirection], + 'verticalDirection': + _$StacVerticalDirectionEnumMap[instance.verticalDirection], + 'textBaseline': _$StacTextBaselineEnumMap[instance.textBaseline], + 'spacing': instance.spacing?.toJson(), + 'children': const StacWidgetListJsonConverter().toJson(instance.children), + }; + +const _$StacMainAxisAlignmentEnumMap = { + StacMainAxisAlignment.start: 'start', + StacMainAxisAlignment.end: 'end', + StacMainAxisAlignment.center: 'center', + StacMainAxisAlignment.spaceBetween: 'spaceBetween', + StacMainAxisAlignment.spaceAround: 'spaceAround', + StacMainAxisAlignment.spaceEvenly: 'spaceEvenly', +}; + +const _$StacMainAxisSizeEnumMap = { + StacMainAxisSize.min: 'min', + StacMainAxisSize.max: 'max', +}; + +const _$StacCrossAxisAlignmentEnumMap = { + StacCrossAxisAlignment.start: 'start', + StacCrossAxisAlignment.end: 'end', + StacCrossAxisAlignment.center: 'center', + StacCrossAxisAlignment.stretch: 'stretch', + StacCrossAxisAlignment.baseline: 'baseline', +}; + +const _$StacTextDirectionEnumMap = { + StacTextDirection.rtl: 'rtl', + StacTextDirection.ltr: 'ltr', +}; + +const _$StacVerticalDirectionEnumMap = { + StacVerticalDirection.up: 'up', + StacVerticalDirection.down: 'down', +}; + +const _$StacTextBaselineEnumMap = { + StacTextBaseline.alphabetic: 'alphabetic', + StacTextBaseline.ideographic: 'ideographic', +}; diff --git a/packages/stac_models/lib/widgets/padding/stac_padding.dart b/packages/stac_models/lib/widgets/padding/stac_padding.dart new file mode 100644 index 00000000..c2be4cf3 --- /dev/null +++ b/packages/stac_models/lib/widgets/padding/stac_padding.dart @@ -0,0 +1,28 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:stac_models/core/stac_model.dart'; +import 'package:stac_models/painting/painting.dart'; + +part 'stac_padding.g.dart'; + +@JsonSerializable() +class StacPadding extends StacWidget { + const StacPadding({this.padding, this.child}); + + final StacEdgeInsets? padding; + + @StacWidgetJsonConverter() + final StacWidget? child; + + @override + String get type => 'padding'; + + factory StacPadding.fromJson(Map json) => + _$StacPaddingFromJson(json); + + @override + Map toJson() { + final json = _$StacPaddingToJson(this); + json['type'] = type; + return json; + } +} diff --git a/packages/stac_models/lib/widgets/padding/stac_padding.g.dart b/packages/stac_models/lib/widgets/padding/stac_padding.g.dart new file mode 100644 index 00000000..67854e56 --- /dev/null +++ b/packages/stac_models/lib/widgets/padding/stac_padding.g.dart @@ -0,0 +1,22 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'stac_padding.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +StacPadding _$StacPaddingFromJson(Map json) => StacPadding( + padding: json['padding'] == null + ? null + : StacEdgeInsets.fromJson(json['padding']), + child: const StacWidgetJsonConverter().fromJson( + json['child'] as Map?, + ), +); + +Map _$StacPaddingToJson(StacPadding instance) => + { + 'padding': instance.padding?.toJson(), + 'child': const StacWidgetJsonConverter().toJson(instance.child), + }; diff --git a/packages/stac_models/lib/widgets/row/stac_row.dart b/packages/stac_models/lib/widgets/row/stac_row.dart new file mode 100644 index 00000000..5eec26c9 --- /dev/null +++ b/packages/stac_models/lib/widgets/row/stac_row.dart @@ -0,0 +1,48 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:stac_models/core/stac_model.dart'; +import 'package:stac_models/types/stac_cross_axis_alignment.dart'; +import 'package:stac_models/types/stac_double.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_text_types.dart'; +import 'package:stac_models/types/stac_vertical_direction.dart'; + +part 'stac_row.g.dart'; + +@JsonSerializable() +class StacRow extends StacWidget { + const StacRow({ + this.mainAxisAlignment, + this.mainAxisSize, + this.crossAxisAlignment, + this.textDirection, + this.verticalDirection, + this.textBaseline, + this.spacing, + this.children, + }); + + final StacMainAxisAlignment? mainAxisAlignment; + final StacMainAxisSize? mainAxisSize; + final StacCrossAxisAlignment? crossAxisAlignment; + final StacTextDirection? textDirection; + final StacVerticalDirection? verticalDirection; + final StacTextBaseline? textBaseline; + final StacDouble? spacing; + + @StacWidgetListJsonConverter() + final List? children; + + @override + String get type => 'row'; + + factory StacRow.fromJson(Map json) => + _$StacRowFromJson(json); + + @override + Map toJson() { + final json = _$StacRowToJson(this); + json['type'] = type; + return json; + } +} diff --git a/packages/stac_models/lib/widgets/row/stac_row.g.dart b/packages/stac_models/lib/widgets/row/stac_row.g.dart new file mode 100644 index 00000000..31870fc2 --- /dev/null +++ b/packages/stac_models/lib/widgets/row/stac_row.g.dart @@ -0,0 +1,91 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'stac_row.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +StacRow _$StacRowFromJson(Map json) => StacRow( + mainAxisAlignment: $enumDecodeNullable( + _$StacMainAxisAlignmentEnumMap, + json['mainAxisAlignment'], + ), + mainAxisSize: $enumDecodeNullable( + _$StacMainAxisSizeEnumMap, + json['mainAxisSize'], + ), + crossAxisAlignment: $enumDecodeNullable( + _$StacCrossAxisAlignmentEnumMap, + json['crossAxisAlignment'], + ), + textDirection: $enumDecodeNullable( + _$StacTextDirectionEnumMap, + json['textDirection'], + ), + verticalDirection: $enumDecodeNullable( + _$StacVerticalDirectionEnumMap, + json['verticalDirection'], + ), + textBaseline: $enumDecodeNullable( + _$StacTextBaselineEnumMap, + json['textBaseline'], + ), + spacing: json['spacing'] == null + ? null + : StacDouble.fromJson(json['spacing']), + children: const StacWidgetListJsonConverter().fromJson( + json['children'] as List>?, + ), +); + +Map _$StacRowToJson(StacRow instance) => { + 'mainAxisAlignment': + _$StacMainAxisAlignmentEnumMap[instance.mainAxisAlignment], + 'mainAxisSize': _$StacMainAxisSizeEnumMap[instance.mainAxisSize], + 'crossAxisAlignment': + _$StacCrossAxisAlignmentEnumMap[instance.crossAxisAlignment], + 'textDirection': _$StacTextDirectionEnumMap[instance.textDirection], + 'verticalDirection': + _$StacVerticalDirectionEnumMap[instance.verticalDirection], + 'textBaseline': _$StacTextBaselineEnumMap[instance.textBaseline], + 'spacing': instance.spacing?.toJson(), + 'children': const StacWidgetListJsonConverter().toJson(instance.children), +}; + +const _$StacMainAxisAlignmentEnumMap = { + StacMainAxisAlignment.start: 'start', + StacMainAxisAlignment.end: 'end', + StacMainAxisAlignment.center: 'center', + StacMainAxisAlignment.spaceBetween: 'spaceBetween', + StacMainAxisAlignment.spaceAround: 'spaceAround', + StacMainAxisAlignment.spaceEvenly: 'spaceEvenly', +}; + +const _$StacMainAxisSizeEnumMap = { + StacMainAxisSize.min: 'min', + StacMainAxisSize.max: 'max', +}; + +const _$StacCrossAxisAlignmentEnumMap = { + StacCrossAxisAlignment.start: 'start', + StacCrossAxisAlignment.end: 'end', + StacCrossAxisAlignment.center: 'center', + StacCrossAxisAlignment.stretch: 'stretch', + StacCrossAxisAlignment.baseline: 'baseline', +}; + +const _$StacTextDirectionEnumMap = { + StacTextDirection.rtl: 'rtl', + StacTextDirection.ltr: 'ltr', +}; + +const _$StacVerticalDirectionEnumMap = { + StacVerticalDirection.up: 'up', + StacVerticalDirection.down: 'down', +}; + +const _$StacTextBaselineEnumMap = { + StacTextBaseline.alphabetic: 'alphabetic', + StacTextBaseline.ideographic: 'ideographic', +}; diff --git a/packages/stac_models/lib/widgets/sized_box/stac_sized_box.dart b/packages/stac_models/lib/widgets/sized_box/stac_sized_box.dart new file mode 100644 index 00000000..d6e635f8 --- /dev/null +++ b/packages/stac_models/lib/widgets/sized_box/stac_sized_box.dart @@ -0,0 +1,29 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:stac_models/core/stac_model.dart'; +import 'package:stac_models/types/stac_double.dart'; + +part 'stac_sized_box.g.dart'; + +@JsonSerializable() +class StacSizedBox extends StacWidget { + const StacSizedBox({this.width, this.height, this.child}); + + final StacDouble? width; + final StacDouble? height; + + @StacWidgetJsonConverter() + final StacWidget? child; + + @override + String get type => 'sizedBox'; + + factory StacSizedBox.fromJson(Map json) => + _$StacSizedBoxFromJson(json); + + @override + Map toJson() { + final json = _$StacSizedBoxToJson(this); + json['type'] = type; + return json; + } +} diff --git a/packages/stac_models/lib/widgets/sized_box/stac_sized_box.g.dart b/packages/stac_models/lib/widgets/sized_box/stac_sized_box.g.dart new file mode 100644 index 00000000..e19ac964 --- /dev/null +++ b/packages/stac_models/lib/widgets/sized_box/stac_sized_box.g.dart @@ -0,0 +1,22 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'stac_sized_box.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +StacSizedBox _$StacSizedBoxFromJson(Map json) => StacSizedBox( + width: json['width'] == null ? null : StacDouble.fromJson(json['width']), + height: json['height'] == null ? null : StacDouble.fromJson(json['height']), + child: const StacWidgetJsonConverter().fromJson( + json['child'] as Map?, + ), +); + +Map _$StacSizedBoxToJson(StacSizedBox instance) => + { + 'width': instance.width?.toJson(), + 'height': instance.height?.toJson(), + 'child': const StacWidgetJsonConverter().toJson(instance.child), + }; diff --git a/packages/stac_models/lib/widgets/widgets.dart b/packages/stac_models/lib/widgets/widgets.dart index eea7fb02..ff0475d0 100644 --- a/packages/stac_models/lib/widgets/widgets.dart +++ b/packages/stac_models/lib/widgets/widgets.dart @@ -6,3 +6,7 @@ export 'container/stac_container.dart'; export 'image/stac_image.dart'; export 'scaffold/stac_scaffold.dart'; export 'text/stac_text.dart'; +export 'row/stac_row.dart'; +export 'column/stac_column.dart'; +export 'sized_box/stac_sized_box.dart'; +export 'padding/stac_padding.dart';