TF-2083 change condition widget to RuleFilterConditionWidget

(cherry picked from commit 6fde253f44d587f10745eb3688d703d03787225c)
This commit is contained in:
hieubt
2023-08-31 12:30:39 +07:00
committed by Dat Vu
parent b5d775c65f
commit d9aecd0458
3 changed files with 236 additions and 146 deletions
@@ -14,6 +14,7 @@ import 'package:model/model.dart';
import 'package:rule_filter/rule_filter/rule_action.dart'; import 'package:rule_filter/rule_filter/rule_action.dart';
import 'package:rule_filter/rule_filter/rule_append_in.dart'; import 'package:rule_filter/rule_filter/rule_append_in.dart';
import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition; import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition;
import 'package:rule_filter/rule_filter/rule_condition.dart';
import 'package:rule_filter/rule_filter/tmail_rule.dart'; import 'package:rule_filter/rule_filter/tmail_rule.dart';
import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart'; import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
@@ -55,6 +56,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
final emailRuleFilterActionSelected = Rxn<EmailRuleFilterAction>(); final emailRuleFilterActionSelected = Rxn<EmailRuleFilterAction>();
final mailboxSelected = Rxn<PresentationMailbox>(); final mailboxSelected = Rxn<PresentationMailbox>();
final actionType = CreatorActionType.create.obs; final actionType = CreatorActionType.create.obs;
final listRuleCondition = RxList<RuleCondition>();
final TextEditingController inputRuleNameController = TextEditingController(); final TextEditingController inputRuleNameController = TextEditingController();
final TextEditingController inputConditionValueController = TextEditingController(); final TextEditingController inputConditionValueController = TextEditingController();
@@ -145,6 +147,12 @@ class RulesFilterCreatorController extends BaseMailboxController {
case CreatorActionType.create: case CreatorActionType.create:
ruleConditionFieldSelected.value = rule_condition.Field.from; ruleConditionFieldSelected.value = rule_condition.Field.from;
ruleConditionComparatorSelected.value = rule_condition.Comparator.contains; ruleConditionComparatorSelected.value = rule_condition.Comparator.contains;
RuleCondition newRuleCondition = RuleCondition(
field: rule_condition.Field.from,
comparator: rule_condition.Comparator.contains,
value: ''
);
listRuleCondition.add(newRuleCondition);
emailRuleFilterActionSelected.value = EmailRuleFilterAction.moveMessage; emailRuleFilterActionSelected.value = EmailRuleFilterAction.moveMessage;
if (_emailAddress != null) { if (_emailAddress != null) {
_newRuleConditionValue = _emailAddress?.email; _newRuleConditionValue = _emailAddress?.email;
@@ -158,6 +166,12 @@ class RulesFilterCreatorController extends BaseMailboxController {
if (_currentTMailRule != null) { if (_currentTMailRule != null) {
ruleConditionFieldSelected.value = _currentTMailRule!.condition.field; ruleConditionFieldSelected.value = _currentTMailRule!.condition.field;
ruleConditionComparatorSelected.value = _currentTMailRule!.condition.comparator; ruleConditionComparatorSelected.value = _currentTMailRule!.condition.comparator;
RuleCondition currentRule = RuleCondition(
field: _currentTMailRule!.condition.field,
comparator: _currentTMailRule!.condition.comparator,
value: _currentTMailRule!.condition.value
);
listRuleCondition.add(currentRule);
emailRuleFilterActionSelected.value = EmailRuleFilterAction.moveMessage; emailRuleFilterActionSelected.value = EmailRuleFilterAction.moveMessage;
_newRuleConditionValue = _currentTMailRule!.condition.value; _newRuleConditionValue = _currentTMailRule!.condition.value;
_setValueInputField(inputConditionValueController, _newRuleConditionValue ?? ''); _setValueInputField(inputConditionValueController, _newRuleConditionValue ?? '');
@@ -213,12 +227,14 @@ class RulesFilterCreatorController extends BaseMailboxController {
); );
} }
void selectRuleConditionField(rule_condition.Field? newField) { void selectRuleConditionField(rule_condition.Field? newField, int? ruleConditionIndex) {
ruleConditionFieldSelected.value = newField; listRuleCondition[ruleConditionIndex!].field.obs.value = newField!;
listRuleCondition.refresh();
} }
void selectRuleConditionComparator(rule_condition.Comparator? newComparator) { void selectRuleConditionComparator(rule_condition.Comparator? newComparator, int? ruleConditionIndex) {
ruleConditionComparatorSelected.value = newComparator; listRuleCondition[ruleConditionIndex!].comparator.obs.value = newComparator!;
listRuleCondition.refresh();
} }
void selectEmailRuleFilterAction(EmailRuleFilterAction? newAction) { void selectEmailRuleFilterAction(EmailRuleFilterAction? newAction) {
@@ -5,6 +5,7 @@ import 'package:get/get.dart';
import 'package:model/model.dart'; import 'package:model/model.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition; import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition;
import 'package:rule_filter/rule_filter/rule_condition.dart';
import 'package:tmail_ui_user/features/base/widget/drop_down_button_widget.dart'; import 'package:tmail_ui_user/features/base/widget/drop_down_button_widget.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/extensions/rule_condition_extensions.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/extensions/rule_condition_extensions.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart';
@@ -13,10 +14,13 @@ import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_condition_comparator_bottom_sheet_action_tile_builder.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_condition_comparator_bottom_sheet_action_tile_builder.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_condition_field_bottom_sheet_action_tile_builder.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_condition_field_bottom_sheet_action_tile_builder.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_filter_button_field.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_filter_button_field.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_filter_condition_widget.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rules_filter_input_field_builder.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rules_filter_input_field_builder.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart';
import 'model/rule_filter_condition_type.dart';
class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> { class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
final _imagePaths = Get.find<ImagePaths>(); final _imagePaths = Get.find<ImagePaths>();
@@ -143,40 +147,62 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
fontSize: 16, fontSize: 16,
color: Colors.black)), color: Colors.black)),
const SizedBox(height: 24), const SizedBox(height: 24),
Container( // Container(
padding: const EdgeInsets.all(12), // padding: const EdgeInsets.all(12),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: AppColor.colorBackgroundFieldConditionRulesFilter, // color: AppColor.colorBackgroundFieldConditionRulesFilter,
borderRadius: BorderRadius.circular(12)), // borderRadius: BorderRadius.circular(12)),
child: Row( // child: Row(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ // children: [
Expanded(child: Obx(() => DropDownButtonWidget<rule_condition.Field>( // Expanded(child: Obx(() => DropDownButtonWidget<rule_condition.Field>(
items: rule_condition.Field.values, // items: rule_condition.Field.values,
itemSelected: controller.ruleConditionFieldSelected.value, // itemSelected: controller.ruleConditionFieldSelected.value,
dropdownMaxHeight: 250, // dropdownMaxHeight: 250,
onChanged: (newField) => // onChanged: (newField) =>
controller.selectRuleConditionField(newField), // controller.selectRuleConditionField(newField),
supportSelectionIcon: true))), // supportSelectionIcon: true))),
Container( // Container(
width: 220, // width: 220,
padding: const EdgeInsets.symmetric(horizontal: 12), // padding: const EdgeInsets.symmetric(horizontal: 12),
child: Obx(() => DropDownButtonWidget<rule_condition.Comparator>( // child: Obx(() => DropDownButtonWidget<rule_condition.Comparator>(
items: rule_condition.Comparator.values, // items: rule_condition.Comparator.values,
itemSelected: controller.ruleConditionComparatorSelected.value, // itemSelected: controller.ruleConditionComparatorSelected.value,
onChanged: (newComparator) => // onChanged: (newComparator) =>
controller.selectRuleConditionComparator(newComparator), // controller.selectRuleConditionComparator(newComparator),
supportSelectionIcon: true))), // supportSelectionIcon: true))),
Expanded(child: Obx(() => RulesFilterInputField( // Expanded(child: Obx(() => RulesFilterInputField(
hintText: AppLocalizations.of(context).conditionValueHintTextInput, // hintText: AppLocalizations.of(context).conditionValueHintTextInput,
errorText: controller.errorRuleConditionValue.value, // errorText: controller.errorRuleConditionValue.value,
editingController: controller.inputConditionValueController, // editingController: controller.inputConditionValueController,
focusNode: controller.inputRuleConditionFocusNode, // focusNode: controller.inputRuleConditionFocusNode,
onChangeAction: (value) => // onChangeAction: (value) =>
controller.updateConditionValue(context, value)))) // controller.updateConditionValue(context, value))))
] // ]
) // )
), // ),
Obx(() {
return ListView.builder(
shrinkWrap: true,
itemCount: controller.listRuleCondition.length,
itemBuilder: (context, index) {
return RuleFilterConditionWidget(
ruleFilterConditionType: RuleFilterConditionType.desktop,
ruleCondition: controller.listRuleCondition[index],
imagePaths: _imagePaths,
conditionValueErrorText: controller.errorRuleConditionValue.value,
conditionValueFocusNode: controller.inputRuleConditionFocusNode,
conditionValueEditingController: controller.inputConditionValueController,
tapRuleConditionFieldCallback: (value) =>
controller.selectRuleConditionField(value, index),
tapRuleConditionComparatorCallback: (value) =>
controller.selectRuleConditionComparator(value, index),
conditionValueOnChangeAction: (value) =>
controller.updateConditionValue(context, value),
);
}
);
}),
const SizedBox(height: 24), const SizedBox(height: 24),
Text(AppLocalizations.of(context).actionTitleRulesFilter, Text(AppLocalizations.of(context).actionTitleRulesFilter,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
@@ -302,40 +328,62 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
fontSize: 16, fontSize: 16,
color: Colors.black)), color: Colors.black)),
const SizedBox(height: 24), const SizedBox(height: 24),
Container( // Container(
padding: const EdgeInsets.all(12), // padding: const EdgeInsets.all(12),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: AppColor.colorBackgroundFieldConditionRulesFilter, // color: AppColor.colorBackgroundFieldConditionRulesFilter,
borderRadius: BorderRadius.circular(12)), // borderRadius: BorderRadius.circular(12)),
child: Row( // child: Row(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ // children: [
Expanded(child: Obx(() => DropDownButtonWidget<rule_condition.Field>( // Expanded(child: Obx(() => DropDownButtonWidget<rule_condition.Field>(
items: rule_condition.Field.values, // items: rule_condition.Field.values,
itemSelected: controller.ruleConditionFieldSelected.value, // itemSelected: controller.ruleConditionFieldSelected.value,
dropdownMaxHeight: 250, // dropdownMaxHeight: 250,
onChanged: (newField) => // onChanged: (newField) =>
controller.selectRuleConditionField(newField), // controller.selectRuleConditionField(newField),
supportSelectionIcon: true))), // supportSelectionIcon: true))),
Container( // Container(
width: 220, // width: 220,
padding: const EdgeInsets.symmetric(horizontal: 12), // padding: const EdgeInsets.symmetric(horizontal: 12),
child: Obx(() => DropDownButtonWidget<rule_condition.Comparator>( // child: Obx(() => DropDownButtonWidget<rule_condition.Comparator>(
items: rule_condition.Comparator.values, // items: rule_condition.Comparator.values,
itemSelected: controller.ruleConditionComparatorSelected.value, // itemSelected: controller.ruleConditionComparatorSelected.value,
onChanged: (newComparator) => // onChanged: (newComparator) =>
controller.selectRuleConditionComparator(newComparator), // controller.selectRuleConditionComparator(newComparator),
supportSelectionIcon: true))), // supportSelectionIcon: true))),
Expanded(child: Obx(() => RulesFilterInputField( // Expanded(child: Obx(() => RulesFilterInputField(
hintText: AppLocalizations.of(context).conditionValueHintTextInput, // hintText: AppLocalizations.of(context).conditionValueHintTextInput,
errorText: controller.errorRuleConditionValue.value, // errorText: controller.errorRuleConditionValue.value,
editingController: controller.inputConditionValueController, // editingController: controller.inputConditionValueController,
focusNode: controller.inputRuleConditionFocusNode, // focusNode: controller.inputRuleConditionFocusNode,
onChangeAction: (value) => // onChangeAction: (value) =>
controller.updateConditionValue(context, value)))) // controller.updateConditionValue(context, value))))
] // ]
) // )
), // ),
Obx(() {
return ListView.builder(
shrinkWrap: true,
itemCount: controller.listRuleCondition.length,
itemBuilder: (context, index) {
return RuleFilterConditionWidget(
ruleFilterConditionType: RuleFilterConditionType.tablet,
ruleCondition: controller.listRuleCondition[index],
imagePaths: _imagePaths,
conditionValueErrorText: controller.errorRuleConditionValue.value,
conditionValueFocusNode: controller.inputRuleConditionFocusNode,
conditionValueEditingController: controller.inputConditionValueController,
tapRuleConditionFieldCallback: (value) =>
controller.selectRuleConditionField(value, index),
tapRuleConditionComparatorCallback: (value) =>
controller.selectRuleConditionComparator(value, index),
conditionValueOnChangeAction: (value) =>
controller.updateConditionValue(context, value),
);
}
);
}),
const SizedBox(height: 24), const SizedBox(height: 24),
Text(AppLocalizations.of(context).actionTitleRulesFilter, Text(AppLocalizations.of(context).actionTitleRulesFilter,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
@@ -467,53 +515,75 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
fontSize: 16, fontSize: 16,
color: Colors.black)), color: Colors.black)),
const SizedBox(height: 24), const SizedBox(height: 24),
Container( // Container(
padding: const EdgeInsets.all(12), // padding: const EdgeInsets.all(12),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: AppColor.colorBackgroundFieldConditionRulesFilter, // color: AppColor.colorBackgroundFieldConditionRulesFilter,
borderRadius: BorderRadius.circular(12)), // borderRadius: BorderRadius.circular(12)),
child: Column( // child: Column(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ // children: [
Obx(() { // Obx(() {
return RuleFilterButtonField<rule_condition.Field>( // return RuleFilterButtonField<rule_condition.Field>(
value: controller.ruleConditionFieldSelected.value, // value: controller.ruleConditionFieldSelected.value,
tapActionCallback: (value) { // tapActionCallback: (value) {
KeyboardUtils.hideKeyboard(context); // KeyboardUtils.hideKeyboard(context);
controller.openContextMenuAction( // controller.openContextMenuAction(
context, // context,
_bottomSheetRuleConditionFieldActionTiles( // _bottomSheetRuleConditionFieldActionTiles(
context, // context,
controller.ruleConditionFieldSelected.value)); // controller.ruleConditionFieldSelected.value));
} // }
); // );
}), // }),
Padding( // Padding(
padding: const EdgeInsets.symmetric(vertical: 12), // padding: const EdgeInsets.symmetric(vertical: 12),
child: Obx(() { // child: Obx(() {
return RuleFilterButtonField<rule_condition.Comparator>( // return RuleFilterButtonField<rule_condition.Comparator>(
value: controller.ruleConditionComparatorSelected.value, // value: controller.ruleConditionComparatorSelected.value,
tapActionCallback: (value) { // tapActionCallback: (value) {
KeyboardUtils.hideKeyboard(context); // KeyboardUtils.hideKeyboard(context);
controller.openContextMenuAction( // controller.openContextMenuAction(
context, // context,
_bottomSheetRuleConditionComparatorActionTiles( // _bottomSheetRuleConditionComparatorActionTiles(
context, // context,
controller.ruleConditionComparatorSelected.value)); // controller.ruleConditionComparatorSelected.value));
} // }
); // );
}), // }),
), // ),
Obx(() => RulesFilterInputField( // Obx(() => RulesFilterInputField(
hintText: AppLocalizations.of(context).conditionValueHintTextInput, // hintText: AppLocalizations.of(context).conditionValueHintTextInput,
errorText: controller.errorRuleConditionValue.value, // errorText: controller.errorRuleConditionValue.value,
editingController: controller.inputConditionValueController, // editingController: controller.inputConditionValueController,
focusNode: controller.inputRuleConditionFocusNode, // focusNode: controller.inputRuleConditionFocusNode,
onChangeAction: (value) => // onChangeAction: (value) =>
controller.updateConditionValue(context, value))) // controller.updateConditionValue(context, value)))
] // ]
) // )
), // ),
Obx(() {
return ListView.builder(
shrinkWrap: true,
itemCount: controller.listRuleCondition.length,
itemBuilder: (context, index) {
return RuleFilterConditionWidget(
ruleFilterConditionType: RuleFilterConditionType.mobile,
ruleCondition: controller.listRuleCondition[index],
imagePaths: _imagePaths,
conditionValueErrorText: controller.errorRuleConditionValue.value,
conditionValueFocusNode: controller.inputRuleConditionFocusNode,
conditionValueEditingController: controller.inputConditionValueController,
tapRuleConditionFieldCallback: (value) =>
controller.selectRuleConditionField(value, index),
tapRuleConditionComparatorCallback: (value) =>
controller.selectRuleConditionComparator(value, index),
conditionValueOnChangeAction: (value) =>
controller.updateConditionValue(context, value),
);
}
);
}),
const Padding( const Padding(
padding: EdgeInsets.symmetric(vertical: 12), padding: EdgeInsets.symmetric(vertical: 12),
child: Divider( child: Divider(
@@ -616,18 +686,20 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
List<Widget> _bottomSheetRuleConditionFieldActionTiles( List<Widget> _bottomSheetRuleConditionFieldActionTiles(
BuildContext context, BuildContext context,
rule_condition.Field? fieldSelected rule_condition.Field? fieldSelected,
int? ruleConditionIndex,
) { ) {
return rule_condition.Field.values return rule_condition.Field.values
.map((field) => .map((field) =>
_buildRuleConditionFieldWidget(context, field, fieldSelected)) _buildRuleConditionFieldWidget(context, field, fieldSelected, ruleConditionIndex))
.toList(); .toList();
} }
Widget _buildRuleConditionFieldWidget( Widget _buildRuleConditionFieldWidget(
BuildContext context, BuildContext context,
rule_condition.Field field, rule_condition.Field field,
rule_condition.Field? fieldSelected rule_condition.Field? fieldSelected,
int? ruleConditionIndex,
) { ) {
return (RuleConditionFieldSheetActionTileBuilder( return (RuleConditionFieldSheetActionTileBuilder(
field.getTitle(context), field.getTitle(context),
@@ -641,7 +713,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
height: 20, height: 20,
fit: BoxFit.fill)) fit: BoxFit.fill))
..onActionClick((field) { ..onActionClick((field) {
controller.selectRuleConditionField(field); controller.selectRuleConditionField(field, ruleConditionIndex);
popBack(); popBack();
})) }))
.build(); .build();
@@ -649,18 +721,20 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
List<Widget> _bottomSheetRuleConditionComparatorActionTiles( List<Widget> _bottomSheetRuleConditionComparatorActionTiles(
BuildContext context, BuildContext context,
rule_condition.Comparator? comparatorSelected rule_condition.Comparator? comparatorSelected,
int? ruleConditionIndex,
) { ) {
return rule_condition.Comparator.values return rule_condition.Comparator.values
.map((comparator) => .map((comparator) =>
_buildRuleConditionComparatorWidget(context, comparator, comparatorSelected)) _buildRuleConditionComparatorWidget(context, comparator, comparatorSelected, ruleConditionIndex))
.toList(); .toList();
} }
Widget _buildRuleConditionComparatorWidget( Widget _buildRuleConditionComparatorWidget(
BuildContext context, BuildContext context,
rule_condition.Comparator comparator, rule_condition.Comparator comparator,
rule_condition.Comparator? comparatorSelected rule_condition.Comparator? comparatorSelected,
int? ruleConditionIndex,
) { ) {
return (RuleConditionComparatorSheetActionTileBuilder( return (RuleConditionComparatorSheetActionTileBuilder(
comparator.getTitle(context), comparator.getTitle(context),
@@ -674,7 +748,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
height: 20, height: 20,
fit: BoxFit.fill)) fit: BoxFit.fill))
..onActionClick((comparator) { ..onActionClick((comparator) {
controller.selectRuleConditionComparator(comparator); controller.selectRuleConditionComparator(comparator, ruleConditionIndex);
popBack(); popBack();
})) }))
.build(); .build();
@@ -41,25 +41,25 @@ class RuleFilterConditionWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColor.colorBackgroundFieldConditionRulesFilter, color: AppColor.colorBackgroundFieldConditionRulesFilter,
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(12),
), ),
child: _buildRuleFilterCondition( child: _buildRuleFilterCondition(
context, context,
ruleFilterConditionType, ruleFilterConditionType,
ruleCondition, ruleCondition,
tapRuleConditionFieldCallback, tapRuleConditionFieldCallback,
tapRuleConditionComparatorCallback, tapRuleConditionComparatorCallback,
conditionValueErrorText, conditionValueErrorText,
conditionValueEditingController, conditionValueEditingController,
conditionValueFocusNode, conditionValueFocusNode,
conditionValueOnChangeAction, conditionValueOnChangeAction,
onTapRemoveRuleFilterConditionCallback, onTapRemoveRuleFilterConditionCallback,
imagePaths, imagePaths,
) )
); );
} }
} }