SmartSelect<T> constructor

SmartSelect<T>({
  1. Key? key,
  2. String? title,
  3. String? placeholder,
  4. required bool isMultiChoice,
  5. S2SingleSelected<T>? singleSelected,
  6. S2Validation<S2SingleChosen<T>>? singleValidation,
  7. S2Validation<S2SingleChosen<T>>? singleModalValidation,
  8. ValueChanged<S2SingleSelected<T>>? singleOnChange,
  9. S2ChoiceSelect<S2SingleState<T>, S2Choice<T>>? singleOnSelect,
  10. S2ModalOpen<S2SingleState<T>>? singleOnModalOpen,
  11. S2ModalClose<S2SingleState<T>>? singleOnModalClose,
  12. S2ModalWillOpen<S2SingleState<T>>? singleOnModalWillOpen,
  13. S2ModalWillClose<S2SingleState<T>>? singleOnModalWillClose,
  14. S2SingleBuilder<T>? singleBuilder,
  15. S2MultiSelected<T>? multiSelected,
  16. S2Validation<S2MultiChosen<T>>? multiValidation,
  17. S2Validation<S2MultiChosen<T>>? multiModalValidation,
  18. ValueChanged<S2MultiSelected<T>>? multiOnChange,
  19. S2ChoiceSelect<S2MultiState<T>, S2Choice<T>>? multiOnSelect,
  20. S2ModalOpen<S2MultiState<T>>? multiOnModalOpen,
  21. S2ModalClose<S2MultiState<T>>? multiOnModalClose,
  22. S2ModalWillOpen<S2MultiState<T>>? multiOnModalWillOpen,
  23. S2ModalWillClose<S2MultiState<T>>? multiOnModalWillClose,
  24. S2MultiBuilder<T>? multiBuilder,
  25. S2ModalConfig modalConfig = const S2ModalConfig(),
  26. S2ChoiceConfig choiceConfig = const S2ChoiceConfig(),
  27. S2GroupConfig groupConfig = const S2GroupConfig(),
  28. List<S2Choice<T>>? choiceItems,
  29. 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);