BaseDropdownSearch<T>.multiSelection constructor

BaseDropdownSearch<T>.multiSelection({
  1. Key? key,
  2. Object? groupId,
  3. Mode mode = Mode.form,
  4. AutovalidateMode? autoValidateMode = AutovalidateMode.disabled,
  5. DropdownSearchOnFind<T>? items,
  6. DropdownSuffixProps suffixProps = const DropdownSuffixProps(),
  7. ClickProps? clickProps,
  8. bool enabled = true,
  9. DropdownSearchFilterFn<T>? filterFn,
  10. DropdownSearchItemAsString<T>? itemAsString,
  11. DropdownSearchCompareFn<T>? compareFn,
  12. List<T> selectedItems = const [],
  13. ScrollProps? selectedItemsScrollProps,
  14. required BasePopupProps<T> popupProps,
  15. required UiMode uiMode,
  16. WrapProps? selectedItemsWrapProps,
  17. ValueChanged<List<T>>? onSelected,
  18. BeforeChangeMultiSelection<T>? onBeforeChange,
  19. BeforePopupOpeningMultiSelection<T>? onBeforePopupOpening,
  20. DropdownSearchBuilderMultiSelection<T>? dropdownBuilder,
  21. FormFieldSetter<List<T>>? onSaved,
  22. FormFieldValidator<List<T>>? validator,
  23. DropDownDecoratorProps? decoratorProps,
  24. ChipProps? chipProps,
})

Implementation

BaseDropdownSearch.multiSelection({
  super.key,
  this.groupId,
  this.mode = Mode.form,
  this.autoValidateMode = AutovalidateMode.disabled,
  this.items,
  this.suffixProps = const DropdownSuffixProps(),
  ClickProps? clickProps,
  this.enabled = true,
  this.filterFn,
  this.itemAsString,
  this.compareFn,
  this.selectedItems = const [],
  this.selectedItemsScrollProps,
  required this.popupProps,
  required this.uiMode,
  this.selectedItemsWrapProps,
  ValueChanged<List<T>>? onSelected,
  BeforeChangeMultiSelection<T>? onBeforeChange,
  BeforePopupOpeningMultiSelection<T>? onBeforePopupOpening,
  DropdownSearchBuilderMultiSelection<T>? dropdownBuilder,
  //form properties
  FormFieldSetter<List<T>>? onSaved,
  FormFieldValidator<List<T>>? validator,
  DropDownDecoratorProps? decoratorProps,
  this.chipProps,
})  : assert(
        T == String || T == int || T == double || compareFn != null,
        '`compareFn` is required',
      ),
      assert(
        mode != Mode.custom || dropdownBuilder != null,
        'Please implement your `dropdownBuilder`',
      ),
      assert(
        mode != Mode.custom ||
            (decoratorProps == null && onSaved == null && validator == null),
        'Custom mode has no form properties',
      ),
      assert(
        popupProps.mode != PopupMode.autocomplete || clickProps == null,
        'autocomplete mode has no clickProps',
      ),
      assert(
        popupProps.mode != PopupMode.autocomplete || mode != Mode.custom,
        "autocomplete mode and custom mode can't be used together",
      ),
      clickProps = clickProps ?? const ClickProps(),
      decoratorProps = decoratorProps ?? const DropDownDecoratorProps(),
      onSelectedMultiSelection = onSelected,
      onBeforePopupOpeningMultiSelection = onBeforePopupOpening,
      onSavedMultiSelection = onSaved,
      onBeforeChangeMultiSelection = onBeforeChange,
      validatorMultiSelection = validator,
      dropdownBuilderMultiSelection = dropdownBuilder,
      isMultiSelectionMode = true,
      dropdownBuilder = null,
      validator = null,
      onBeforeChange = null,
      onSaved = null,
      onSelected = null,
      onBeforePopupOpening = null;