ShadSelectMultipleFormField<T>.withSearch constructor

ShadSelectMultipleFormField<T>.withSearch({
  1. String? id,
  2. Key? key,
  3. FormFieldSetter<Set<T>>? onSaved,
  4. Widget? label,
  5. Widget error(
    1. String error
    )?,
  6. Widget? description,
  7. ValueChanged<Set<T>?>? onChanged,
  8. @Deprecated('Use toValueTransformer instead') ToValueTransformer<Set<T>?>? valueTransformer,
  9. ToValueTransformer<Set<T>?>? toValueTransformer,
  10. FromValueTransformer<Set<T>?>? fromValueTransformer,
  11. VoidCallback? onReset,
  12. bool enabled = true,
  13. AutovalidateMode? autovalidateMode,
  14. String? restorationId,
  15. Set<T>? initialValue,
  16. FocusNode? focusNode,
  17. FormFieldValidator<Set<T>>? validator,
  18. String? forceErrorText,
  19. required ShadSelectedOptionBuilder<List<T>> selectedOptionsBuilder,
  20. Iterable<Widget>? options,
  21. Widget? optionsBuilder(
    1. BuildContext,
    2. int
    )?,
  22. ValueChanged<String>? onSearchChanged,
  23. Widget? placeholder,
  24. bool closeOnTapOutside = true,
  25. double? minWidth,
  26. double? maxWidth,
  27. double? maxHeight,
  28. ShadDecoration? decoration,
  29. Widget? trailing,
  30. EdgeInsetsGeometry? padding,
  31. EdgeInsetsGeometry? optionsPadding,
  32. bool? showScrollToTopChevron,
  33. bool? showScrollToBottomChevron,
  34. ScrollController? scrollController,
  35. ShadAnchorBase? anchor,
  36. ImageFilter? filter,
  37. Widget? searchDivider,
  38. Widget? searchInputLeading,
  39. Widget? searchPlaceholder,
  40. EdgeInsetsGeometry? searchPadding,
  41. Widget? search,
  42. bool? clearSearchOnClose,
  43. ShadPopoverController? popoverController,
  44. Widget? header,
  45. Widget? footer,
  46. bool closeOnSelect = true,
  47. bool allowDeselection = true,
  48. ShadSelectController<T>? controller,
  49. bool? ensureSelectedVisible,
  50. FocusNode? searchFocusNode,
  51. ValueChanged<String>? onSearchSubmitted,
  52. VoidCallback? onPressed,
  53. Object? groupId,
})

Implementation

ShadSelectMultipleFormField.withSearch({
  super.id,
  super.key,
  super.onSaved,
  super.label,
  super.error,
  super.description,
  super.onChanged,
  @Deprecated('Use toValueTransformer instead') super.valueTransformer,
  super.toValueTransformer,
  super.fromValueTransformer,
  super.onReset,
  super.enabled,
  super.autovalidateMode,
  super.restorationId,
  super.initialValue,
  super.focusNode,
  super.validator,
  super.forceErrorText,
  required ShadSelectedOptionBuilder<List<T>> selectedOptionsBuilder,
  Iterable<Widget>? options,

  /// The builder for the options of the [ShadSelect].
  Widget? Function(BuildContext, int)? optionsBuilder,
  ValueChanged<String>? onSearchChanged,
  Widget? placeholder,
  bool closeOnTapOutside = true,
  double? minWidth,
  double? maxWidth,
  double? maxHeight,
  ShadDecoration? decoration,
  Widget? trailing,
  EdgeInsetsGeometry? padding,
  EdgeInsetsGeometry? optionsPadding,
  bool? showScrollToTopChevron,
  bool? showScrollToBottomChevron,
  ScrollController? scrollController,
  ShadAnchorBase? anchor,
  ImageFilter? filter,
  Widget? searchDivider,
  Widget? searchInputLeading,
  Widget? searchPlaceholder,
  EdgeInsetsGeometry? searchPadding,
  Widget? search,
  bool? clearSearchOnClose,
  ShadPopoverController? popoverController,

  /// {@macro select.header}
  Widget? header,

  /// {@macro select.footer}
  Widget? footer,
  bool closeOnSelect = true,

  /// {@macro ShadSelect.allowDeselection}
  bool allowDeselection = true,
  this.controller,

  /// {@macro ShadSelect.ensureSelectedVisible}
  bool? ensureSelectedVisible,

  /// {@macro ShadSelect.searchFocusNode}
  FocusNode? searchFocusNode,

  /// {@macro ShadSelect.onSearchSubmitted}
  ValueChanged<String>? onSearchSubmitted,

  /// {@macro ShadSelect.onPressed}
  VoidCallback? onPressed,

  /// {@macro ShadPopover.groupId}
  Object? groupId,
}) : super(
       decorationBuilder: (context) =>
           (ShadTheme.of(context).selectTheme.decoration ??
                   const ShadDecoration())
               .merge(decoration),
       builder: (state) {
         state as ShadFormBuilderSelectMultipleState<T>;

         return ShadSelect<T>.multipleWithSearch(
           options: options,
           optionsBuilder: optionsBuilder,
           selectedOptionsBuilder: selectedOptionsBuilder,
           focusNode: state.focusNode,
           placeholder: placeholder,
           enabled: state.enabled,
           closeOnTapOutside: closeOnTapOutside,
           anchor: anchor,
           minWidth: minWidth,
           maxWidth: maxWidth,
           maxHeight: maxHeight,
           decoration: state.decoration,
           trailing: trailing,
           padding: padding,
           optionsPadding: optionsPadding,
           showScrollToTopChevron: showScrollToTopChevron,
           showScrollToBottomChevron: showScrollToBottomChevron,
           scrollController: scrollController,
           filter: filter,
           onSearchChanged: onSearchChanged,
           searchDivider: searchDivider,
           searchInputLeading: searchInputLeading,
           searchPlaceholder: searchPlaceholder,
           searchPadding: searchPadding,
           search: search,
           clearSearchOnClose: clearSearchOnClose,
           popoverController: popoverController,
           header: header,
           footer: footer,
           closeOnSelect: closeOnSelect,
           allowDeselection: allowDeselection,
           controller: state.controller,
           ensureSelectedVisible: ensureSelectedVisible,
           searchFocusNode: searchFocusNode,
           onSearchSubmitted: onSearchSubmitted,
           onPressed: onPressed,
           groupId: groupId,
         );
       },
     );