I'm new to salesforce and development in general, so I'll be as clearer as I can be. I have to make a Lightning web Component that shows filters. The filters are created in apex. I made a class that creates example filters for, in this case, the Account object. There is a method that exports those filters to import them in the lwc:
public static QueryFilters getFilters(){
QueryFilters filters = new QueryFilters();
filters.add(new QueryFilters.StringFilter(new QueryFilters.Field(Account.Name)));
filters.add(new QueryFilters.InFilter(new QueryFilters.FieldOptions(Account.sobjectType, Account.Industry)));
filters.add(new QueryFilters.NumberFilter(new QueryFilters.Field(Account.NumberOfEmployees, 'Empleados desde'), QueryFilters.Operator.GE));
filters.add(new QueryFilters.NumberFilter(new QueryFilters.Field(Account.NumberOfEmployees, 'Empleados hasta'), QueryFilters.Operator.LE));
filters.add(new QueryFilters.FilterWithOperators(new QueryFilters.NumberFilter(new QueryFilters.Field(Account.NumberofLocations__c))));
filters.add(new QueryFilters.BooleanFilter(new QueryFilters.Field(Account.Tested__c)).selectize());
return filters;
}
@AuraEnabled
public static List<Map<String, Object>> getFiltersJson(){
return QueryFilters.export((List<QueryFilters.ExportableFilter>)getFilters().filters);
}
I have to iterate the list of filters in the html, but I don't know how to work with a List of Map<String, Object> in the javascript file. These are the html and js files as they are right now:
import { LightningElement, wire } from 'lwc';
import getFiltersJson from '@salesforce/apex/QueryFiltersEj.getFiltersJson';
export default class LwcQueryFilter extends LightningElement {}
<template>
<lightning-card title="Filtros" icon-name="standard:account">
<template iterator:it={filters}>
<lightning-input
onchange={getValue}
key={it.value.label}
if:true={it.value.isInput}
type={it.value.type}
label={it.value.label}>
</lightning-input>
<lightning-input
onchange={getValue}
key={it.value.label}
if:true={it.value.isBoolean}
type={it.value.type}
label={it.value.label}>
</lightning-input>
<c-lwc-multi-select
onchange={handleOnChange}
key={it.value.label}
if:true={it.value.isMultiSelect}
label={it.value.label}
options={it.value.options}>
</c-lwc-multi-select>
</template>
</lightning-card>
How do I transform the export that I import with the getFiltersJson, to be able to iterate it?