// Package imports: import 'package:built_collection/built_collection.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; // Project imports: import 'package:invoiceninja_flutter/data/models/models.dart'; part 'list_ui_state.g.dart'; abstract class ListUIState implements Built { factory ListUIState(String sortField, {bool? sortAscending}) { return _$ListUIState._( filterClearedAt: 0, sortField: sortField, sortAscending: sortAscending ?? true, stateFilters: BuiltList([ EntityState.active, ]), statusFilters: BuiltList(), custom1Filters: BuiltList(), custom2Filters: BuiltList(), custom3Filters: BuiltList(), custom4Filters: BuiltList(), filter: null); } ListUIState._(); @override @memoized int get hashCode; int get tableHashCode => custom1Filters.hashCode ^ custom2Filters.hashCode ^ custom3Filters.hashCode ^ custom4Filters.hashCode ^ stateFilters.hashCode ^ statusFilters.hashCode ^ filterClearedAt.hashCode ^ filter.hashCode ^ sortAscending.hashCode ^ sortField.hashCode; String? get filter; int get filterClearedAt; String get sortField; bool get sortAscending; BuiltList get stateFilters; BuiltList get statusFilters; BuiltList? getCustomFilters(int fieldNumber) { switch (fieldNumber) { case 1: return custom1Filters; case 2: return custom2Filters; case 3: return custom3Filters; case 4: return custom4Filters; default: return null; } } BuiltList get custom1Filters; BuiltList get custom2Filters; BuiltList get custom3Filters; BuiltList get custom4Filters; bool get hasStateFilters => stateFilters.length != 1 || stateFilters.first != EntityState.active; bool get hasStatusFilters => statusFilters.isNotEmpty; bool get hasCustom1Filters => custom1Filters.isNotEmpty; bool get hasCustom2Filters => custom2Filters.isNotEmpty; bool get hasCustom3Filters => custom3Filters.isNotEmpty; bool get hasCustom4Filters => custom4Filters.isNotEmpty; BuiltList? get selectedIds; bool isInMultiselect() { return selectedIds != null; } bool isSelected(String id) { return selectedIds != null && selectedIds!.contains(id); } //factory EntityUIState([void updates(EntityUIStateBuilder b)]) = _$listUIState; static Serializer get serializer => _$listUIStateSerializer; }