pluto_filtered_list 0.2.0 copy "pluto_filtered_list: ^0.2.0" to clipboard
pluto_filtered_list: ^0.2.0 copied to clipboard

A List where filters can be applied to the List and elements can be accessed or modified in that state.

PlutoFilteredList - v0.2.0 #

codecov


A List where filters can be applied to the List and elements can be accessed or modified in that state.


Pub.Dev #

Check out how to install from the official distribution site.


Issue #

Report any questions or errors.


Todo #

  • Not implemented yet.
    • removeRange, fillRange, replaceRange.

Done #

var list = FilteredList(initialList: [1, 2, 3, 4, 5]);
  • insert : If the filter is applied, the index at which the element is added is adjusted.
    list.setFilter((e) => e > 3); // [4, 5]
    list.insert(0, 35); // [35, 4, 5]
    
    list.setFilter(null); // [1, 2, 3, 35, 4, 5]
    list.insert(0, -1); // [-1, 1, 2, 3, 35, 4, 5]
    
  • removeAt : If the filter is applied, the index at which the element is removed is adjusted.
    list.setFilter((e) => e > 3); // [4, 5]
    list.removeAt(0); // [5]
    
    list.setFilter(null); // [1, 2, 3, 5]
    list.removeAt(0); // [2, 3, 5]
    
  • insertAll : If the filter is applied, the index at which the element is added is adjusted.
    list.setFilter((e) => e > 3); // [4, 5]
    list.insertAll(0, [35, 36, 37]); // [35, 36, 37, 4, 5]
    
    list.setFilter(null); // [1, 2, 3, 35, 36, 37, 4, 5]
    list.insertAll(0, [-1, -2, -3]); // [-1, -2, -3, 1, 2, 3, 35, 36, 37, 4, 5]
    
  • remove : If the filter has been applied, the element is removed from the range where the filter is applied.
    list.setFilter((e) => e > 3); // [4, 5]
    var removedThree = list.remove(3); // false
    var removedFour = list.remove(4); // true
      
    list.setFilter(null); // [1, 2, 3, 5]
    var removedThreeAgain = list.remove(3); // true
    
  • removeFromOriginal : Removes elements across the entire scope regardless of filter application.
    list.setFilter((e) => e > 3); // [4, 5]
    var removedThree = list.removeFromOriginal(3); // true
    var removedFour = list.removeFromOriginal(4); // true
      
    list.setFilter(null); // [1, 2, 5]
    var removedThreeAgain = list.removeFromOriginal(3); // false
    
  • removeWhere : If the filter has been applied, the element is removed from the range where the filter is applied.
  • removeWhereFromOriginal : Removes elements across the entire scope regardless of filter application.
  • retainWhere : If the filter has been applied, the element is retained from the range where the filter is applied.
  • retainWhereFromOriginal : Retains elements across the entire scope regardless of filter application.
  • clear : If the filter has been applied, the element is cleared from the range where the filter is applied.
  • clearFromOriginal : Clears elements across the entire scope.
  • removeLast : The last element is deleted while the filter is applied.
  • removeLastFromOriginal : Delete the last element from the entire list.
  • shuffle : Shuffles elements across the entire scope.

Example #

/// Create an empty list.
var filteredList = FilteredList<String>();

/// Contains the methods of List.
/// add, remove, clear, where, ...
filteredList.add('one');

print(filteredList); // ['one']

filteredList.addAll(['two', 'three', 'four', 'five']);

print(filteredList); // ['one', 'two', 'three', 'four', 'five']

/// Set the filter.
/// Implement a callback function that returns a bool type.
/// The example filters a string of length 4, as shown below.
filteredList.setFilter((element) => element.length == 4); // ['four', 'five']

/// Only elements of length 4 in the list were filtered out,
/// resulting in the length of the list being 2.
print(filteredList.length); // 2

print(filteredList[0]); // 'four'

print(filteredList[1]); // 'five'

/// You can turn off the filter by passing null to setFilter.
filteredList.setFilter(null); // ['one', 'two', 'three', 'four', 'five']

/// The filter is cleared, so the length of the original list is 5.
print(filteredList.length); // 5

print(filteredList[0]); // 'one'

print(filteredList[1]); // 'two'

Pluto series #

develop packages that make it easy to develop admin pages or CMS with Flutter.

15
likes
130
pub points
35%
popularity

Publisher

verified publisherweblaze.dev

A List where filters can be applied to the List and elements can be accessed or modified in that state.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

collection

More

Packages that depend on pluto_filtered_list