getOptions
Description
The function extracts filtering options for multiple fields at onceIt uses the getOptions helpers inside to collect values for a single field.
Usage
getOptionsMap(
data: any[],
config?: {
id: string,
predicate?: "month" | "year",
sort?: boolean | (a: any, b: any) => number,
}[]
): {[ key: string]: any};
Parameters
data
– (required) a data array to extract values fromconfig
- (optional) an array of field settings, each of which having:id
– (required) ID of the field to extract options frompredicate
– (optional) extracts month or year from date fieldssort
– (optional) a comparison function to sort the result. Dates and numbers are sorted by default in the ascending order; to cancel this, set thesort
parameter to false.
Without config
the options will be extracted according to data keys from the first data element.
Returns
An object where each key corresponds to field id and its value is an array of unique values for this field.
Example
The example shows how to use getOptionsMap
to provide options to the FilterBuilder widget based on the actual dataset.
<script>
import { getData } from "../data";
import { FilterBuilder, getOptionsMap } from "wx-svelte-filter";
const { fields, data } = getData();
/* data
[
{ first_name: "Alex", age: 26,start: new Date(2025, 0, 3) },
{ first_name: "Alex", age: 45, start: new Date(2025, 2, 13) },
{ first_name: "Agata", age: 35, start: new Date(2025, 2, 8) },
]
*/
/* getOptionsMap(data)
{
first_name: ["Alex", "Agata"],
age: [26, 35, 45],
start: [new Date(2025, 0, 3), new Date(2025, 2, 8), new Date(2025, 2, 13)]
}
*/
</script>
<FilterBuilder {fields} options={getOptionsMap(data)}/>