normalized method

FdcDataSetSearchState normalized()

Returns a canonical search state with trimmed text and normalized field keys.

An empty search term normalizes to the default inactive state.

Implementation

FdcDataSetSearchState normalized() {
  final trimmed = text.trim();
  if (trimmed.isEmpty) {
    return const FdcDataSetSearchState();
  }
  return FdcDataSetSearchState(
    text: trimmed,
    mode: mode,
    caseSensitive: caseSensitive,
    fields: fields == null
        ? null
        : Set<String>.unmodifiable(
            fields!
                .map(FdcFieldName.normalize)
                .where((name) => name.isNotEmpty),
          ),
    fieldTextFormatters: fieldTextFormatters == null
        ? null
        : Map<String, FdcSearchFieldTextFormatter>.unmodifiable(
            <String, FdcSearchFieldTextFormatter>{
              for (final entry in fieldTextFormatters!.entries)
                if (FdcFieldName.normalize(entry.key).isNotEmpty)
                  FdcFieldName.normalize(entry.key): entry.value,
            },
          ),
    fieldFormatSettings: fieldFormatSettings == null
        ? null
        : Map<String, FdcFormatSettings>.unmodifiable(
            <String, FdcFormatSettings>{
              for (final entry in fieldFormatSettings!.entries)
                if (FdcFieldName.normalize(entry.key).isNotEmpty)
                  FdcFieldName.normalize(entry.key): entry.value,
            },
          ),
    formatSettings: formatSettings,
  );
}