SmartSelect<T> constructor
SmartSelect<T> ({
- Key? key,
- String? title,
- String? placeholder,
- required bool isMultiChoice,
- S2SingleSelected<
T> ? singleSelected, - S2Validation<
S2SingleChosen< ? singleValidation,T> > - S2Validation<
S2SingleChosen< ? singleModalValidation,T> > - ValueChanged<
S2SingleSelected< ? singleOnChange,T> > - S2ChoiceSelect<
S2SingleState< ? singleOnSelect,T> , S2Choice<T> > - S2ModalOpen<
S2SingleState< ? singleOnModalOpen,T> > - S2ModalClose<
S2SingleState< ? singleOnModalClose,T> > - S2ModalWillOpen<
S2SingleState< ? singleOnModalWillOpen,T> > - S2ModalWillClose<
S2SingleState< ? singleOnModalWillClose,T> > - S2SingleBuilder<
T> ? singleBuilder, - S2MultiSelected<
T> ? multiSelected, - S2Validation<
S2MultiChosen< ? multiValidation,T> > - S2Validation<
S2MultiChosen< ? multiModalValidation,T> > - ValueChanged<
S2MultiSelected< ? multiOnChange,T> > - S2ChoiceSelect<
S2MultiState< ? multiOnSelect,T> , S2Choice<T> > - S2ModalOpen<
S2MultiState< ? multiOnModalOpen,T> > - S2ModalClose<
S2MultiState< ? multiOnModalClose,T> > - S2ModalWillOpen<
S2MultiState< ? multiOnModalWillOpen,T> > - S2ModalWillClose<
S2MultiState< ? multiOnModalWillClose,T> > - S2MultiBuilder<
T> ? multiBuilder, - S2ModalConfig modalConfig = const S2ModalConfig(),
- S2ChoiceConfig choiceConfig = const S2ChoiceConfig(),
- S2GroupConfig groupConfig = const S2GroupConfig(),
- List<
S2Choice< ? choiceItems,T> > - S2ChoiceLoader<
T> ? choiceLoader,
Default constructor
Implementation
SmartSelect({
Key? key,
this.title,
this.placeholder,
required this.isMultiChoice,
this.singleSelected,
this.singleValidation,
this.singleModalValidation,
this.singleOnChange,
this.singleOnSelect,
this.singleOnModalOpen,
this.singleOnModalClose,
this.singleOnModalWillOpen,
this.singleOnModalWillClose,
this.singleBuilder,
this.multiSelected,
this.multiValidation,
this.multiModalValidation,
this.multiOnChange,
this.multiOnSelect,
this.multiOnModalOpen,
this.multiOnModalClose,
this.multiOnModalWillOpen,
this.multiOnModalWillClose,
this.multiBuilder,
this.modalConfig = const S2ModalConfig(),
this.choiceConfig = const S2ChoiceConfig(),
this.groupConfig = const S2GroupConfig(),
this.choiceItems,
this.choiceLoader,
}) : assert(
title != null || modalConfig.title != null,
'title and modalConfig.title must not be both null',
),
assert(
(isMultiChoice && multiOnChange != null && multiBuilder != null) ||
(!isMultiChoice &&
singleOnChange != null &&
singleBuilder != null),
isMultiChoice
? 'multiValue, multiOnChange, and multiBuilder must be not null in multiple choice'
: 'singleValue, singleOnChange, and singleBuilder must be not null in single choice',
),
assert(
(isMultiChoice && choiceConfig.type != S2ChoiceType.radios) ||
(!isMultiChoice && choiceConfig.type != S2ChoiceType.checkboxes),
isMultiChoice
? 'multiple choice can\'t use S2ChoiceType.radios'
: 'Single choice can\'t use S2ChoiceType.checkboxes',
),
assert(
choiceItems != null || choiceLoader != null,
'`choiceItems` and `choiceLoader` can\'t be both null',
),
super(key: key);