Text

constructor(cellValueToString: (value: CellValue) -> String = { it.toString() }, filter: (value: String, filter: Filter.Text.State) -> Boolean = { value, filter -> if (filter.value.isEmpty()) true else { when (filter.type) { FilterType.Equal -> value.equals(filter.value, filter.ignoreCase) FilterType.NotEqual -> !value.equals(filter.value, filter.ignoreCase) FilterType.StartsWith -> value.startsWith(filter.value, filter.ignoreCase) FilterType.EndsWith -> value.endsWith(filter.value, filter.ignoreCase) FilterType.Contains -> value.contains(filter.value, filter.ignoreCase) FilterType.ContainsNot -> !value.contains(filter.value, filter.ignoreCase) // numeric => not possible! FilterType.LargerOrEqual, FilterType.Larger, FilterType.SmallerOrEqual, FilterType.Smaller, -> throw RuntimeException("Type not valid!") } } }, initial: String = "")