From c3d60dba73e2d1c62b2a750aeb65c23ef94a2efa Mon Sep 17 00:00:00 2001 From: "Michael W. Aziz" Date: Thu, 16 May 2024 18:50:42 +0300 Subject: [PATCH] [DEV] Separated selectors configurations --- lib/src/Selectors/selectors.astromic.dart | 18 +++++------ .../src/{ => Chip}/chip.selector.dart | 10 +++--- .../src/{ => Chip}/configuration.dart | 15 +++------ .../Selectors/src/Radio/configuration.dart | 32 +++++++++++++++++++ .../src/{ => Radio}/radio.selector.dart | 4 +-- 5 files changed, 52 insertions(+), 27 deletions(-) rename lib/src/Selectors/src/{ => Chip}/chip.selector.dart (95%) rename lib/src/Selectors/src/{ => Chip}/configuration.dart (81%) create mode 100644 lib/src/Selectors/src/Radio/configuration.dart rename lib/src/Selectors/src/{ => Radio}/radio.selector.dart (98%) diff --git a/lib/src/Selectors/selectors.astromic.dart b/lib/src/Selectors/selectors.astromic.dart index 580aa9b..e10fabf 100644 --- a/lib/src/Selectors/selectors.astromic.dart +++ b/lib/src/Selectors/selectors.astromic.dart @@ -1,12 +1,12 @@ //s2 Core Packages Imports import 'package:flutter/widgets.dart'; -import 'src/radio.selector.dart'; -import 'src/chip.selector.dart'; -import 'src/configuration.dart'; +import 'src/Radio/radio.selector.dart'; +import 'src/Chip/chip.selector.dart'; +import 'src/Radio/configuration.dart'; +import 'src/Chip/configuration.dart'; // -export 'src/radio.selector.dart'; -export 'src/chip.selector.dart'; -export 'src/configuration.dart'; +export 'src/Radio/configuration.dart'; +export 'src/Chip/configuration.dart'; class AstromicSelectors { //S1 -- Radio @@ -14,7 +14,7 @@ class AstromicSelectors { T? initialSelectedValue, Function(T selectedItem)? onChanged, // - AstromicSelectorConfiguration? configurations, + AstromicRadioSelectorConfiguration? configurations, // double? itemSpacing = 4, // @@ -25,7 +25,7 @@ class AstromicSelectors { initialSelectedValue: initialSelectedValue, onChanged: onChanged, // - configuration: configurations ?? const AstromicSelectorConfiguration(), + configuration: configurations ?? const AstromicRadioSelectorConfiguration(), // itemSpacing: itemSpacing ?? 8.0, // @@ -38,7 +38,7 @@ class AstromicSelectors { List? initialSelectedValues, void Function(List selectedItems)? onChanged, // - AstromicSelectorConfiguration? configuration, + AstromicChipSelectorConfiguration? configuration, bool isCustom = false, // double? itemSpacing = 4, diff --git a/lib/src/Selectors/src/chip.selector.dart b/lib/src/Selectors/src/Chip/chip.selector.dart similarity index 95% rename from lib/src/Selectors/src/chip.selector.dart rename to lib/src/Selectors/src/Chip/chip.selector.dart index f79dbe9..5b328f4 100644 --- a/lib/src/Selectors/src/chip.selector.dart +++ b/lib/src/Selectors/src/Chip/chip.selector.dart @@ -10,7 +10,7 @@ import 'package:flutter/material.dart'; //--------------- //s2 SERVICES //s2 MODELS -import '../../../Infrastructure/list_extensions.dart'; +import '../../../../Infrastructure/list_extensions.dart'; import 'configuration.dart'; //s2 MISC @@ -26,7 +26,7 @@ class AstromicChipSelector extends StatefulWidget { final Function(List selectedItems)? onChanged; //s1 -- Configuration final bool isCustom; - final AstromicSelectorConfiguration? configuration; + final AstromicChipSelectorConfiguration? configuration; //s1 -- Style final double? itemSpacing; final double? runSpacing; @@ -71,7 +71,7 @@ class AstromicChipSelector extends StatefulWidget { final List? initialSelectedValues, final Function(List selectedItems)? onChanged, //s1 -- Configuration - final AstromicSelectorConfiguration? configuration, + final AstromicChipSelectorConfiguration? configuration, //s1 -- Content required final List<(T item, bool isEnabled)> items, // @@ -109,7 +109,7 @@ class _AstromicChipSelectorState extends State> { //s1 --Controllers // //s1 --State - late AstromicSelectorConfiguration _configuration; + late AstromicChipSelectorConfiguration _configuration; late List selectedItems; //s1 --State // @@ -127,7 +127,7 @@ class _AstromicChipSelectorState extends State> { //s1 --Controllers & Listeners // //s1 --State - _configuration = widget.configuration ?? const AstromicSelectorConfiguration(); + _configuration = widget.configuration ?? const AstromicChipSelectorConfiguration(); selectedItems = widget.initialSelectedValues ?? []; //s1 --State // diff --git a/lib/src/Selectors/src/configuration.dart b/lib/src/Selectors/src/Chip/configuration.dart similarity index 81% rename from lib/src/Selectors/src/configuration.dart rename to lib/src/Selectors/src/Chip/configuration.dart index c050348..2e39b76 100644 --- a/lib/src/Selectors/src/configuration.dart +++ b/lib/src/Selectors/src/Chip/configuration.dart @@ -1,10 +1,8 @@ import 'package:flutter/widgets.dart'; -class AstromicSelectorConfiguration { - //s1 Shared +class AstromicChipSelectorConfiguration { final Axis axis; final bool isNullable; - //s1 Chip Specific final bool isWrap; final WrapAlignment wrapMainAllignment; final WrapCrossAlignment wrapCrossAllignment; @@ -13,9 +11,7 @@ class AstromicSelectorConfiguration { final int maxSelectedItems; final int crossAxisCount; final double? fixedRowHeight; - //s1 Radio Specific - final bool withExpandedSpace; - const AstromicSelectorConfiguration({ + const AstromicChipSelectorConfiguration({ this.axis = Axis.horizontal, this.isNullable = true, // @@ -27,11 +23,9 @@ class AstromicSelectorConfiguration { this.maxSelectedItems = 10000, this.crossAxisCount = 3, this.fixedRowHeight, - // - this.withExpandedSpace = false, }); - AstromicSelectorConfiguration copyWith({ + AstromicChipSelectorConfiguration copyWith({ Axis? axis, bool? isNullable, bool? isWrap, @@ -44,7 +38,7 @@ class AstromicSelectorConfiguration { bool? withExpandedSpace, double? fixedRowHeight, }) { - return AstromicSelectorConfiguration( + return AstromicChipSelectorConfiguration( axis: axis ?? this.axis, isNullable: isNullable ?? this.isNullable, isWrap: isWrap ?? this.isWrap, @@ -54,7 +48,6 @@ class AstromicSelectorConfiguration { withClearButton: withClearButton ?? this.withClearButton, maxSelectedItems: maxSelectedItems ?? this.maxSelectedItems, crossAxisCount: crossAxisCount ?? this.crossAxisCount, - withExpandedSpace: withExpandedSpace ?? this.withExpandedSpace, fixedRowHeight: fixedRowHeight ?? this.fixedRowHeight, ); } diff --git a/lib/src/Selectors/src/Radio/configuration.dart b/lib/src/Selectors/src/Radio/configuration.dart new file mode 100644 index 0000000..a5c52cc --- /dev/null +++ b/lib/src/Selectors/src/Radio/configuration.dart @@ -0,0 +1,32 @@ +import 'package:flutter/widgets.dart'; + +class AstromicRadioSelectorConfiguration { + final Axis axis; + final bool isNullable; + final bool withExpandedSpace; + const AstromicRadioSelectorConfiguration({ + this.axis = Axis.horizontal, + this.isNullable = true, + this.withExpandedSpace = false, + }); + + AstromicRadioSelectorConfiguration copyWith({ + Axis? axis, + bool? isNullable, + bool? isWrap, + WrapAlignment? wrapMainAllignment, + WrapCrossAlignment? wrapCrossAllignment, + bool? isConsequent, + bool? withClearButton, + int? maxSelectedItems, + int? crossAxisCount, + bool? withExpandedSpace, + double? fixedRowHeight, + }) { + return AstromicRadioSelectorConfiguration( + axis: axis ?? this.axis, + isNullable: isNullable ?? this.isNullable, + withExpandedSpace: withExpandedSpace ?? this.withExpandedSpace, + ); + } +} diff --git a/lib/src/Selectors/src/radio.selector.dart b/lib/src/Selectors/src/Radio/radio.selector.dart similarity index 98% rename from lib/src/Selectors/src/radio.selector.dart rename to lib/src/Selectors/src/Radio/radio.selector.dart index 39bdde1..42c172d 100644 --- a/lib/src/Selectors/src/radio.selector.dart +++ b/lib/src/Selectors/src/Radio/radio.selector.dart @@ -10,7 +10,7 @@ import 'package:flutter/widgets.dart'; //--------------- //s2 SERVICES //s2 MODELS -import '../../Spacing/spacing.astromic.dart'; +import '../../../Spacing/spacing.astromic.dart'; import 'configuration.dart'; //s2 MISC //!SECTION - Imports @@ -26,7 +26,7 @@ class AstromicRadioSelector extends StatefulWidget { final T? initialSelectedValue; final Function(T selectedItem)? onChanged; //s1 -- Configuration - final AstromicSelectorConfiguration configuration; + final AstromicRadioSelectorConfiguration configuration; //s1 -- Style final double itemSpacing; //s1 -- Content