formatForm method

List<AddressFormFieldInformation> formatForm(
  1. String country
)

Returns a 2D list of form fields

country is an ISO 3166-1 alpha-2 country code.

Implementation

List<AddressFormFieldInformation> formatForm(String country) {
  final fields = <AddressFormFieldInformation>[];

  final addressFormat = _getAddressFormat(country);
  for (final field in addressFormat.formFormat) {
    final labels = addressFormat.fieldLabels[field]!;
    final label = labels[_language] ?? labels[labels.keys.first]!;

    final descriptions = addressFormat.fieldDescriptions[field];
    final description =
        descriptions?[_language] ?? descriptions?[descriptions.keys.first];

    Map<String, String>? availableValues;
    if (field == AddressFormField.zone &&
        addressFormat.zoneNames.isNotEmpty) {
      availableValues = addressFormat.zoneNames.map((zoneCode, names) {
        final zoneName = names[_language] ?? names[names.keys.first]!;

        return MapEntry(zoneCode, zoneName);
      });
    }

    fields.add(
      AddressFormFieldInformation(
        _language,
        field,
        label: label,
        description: description,
        obligatory: addressFormat.obligatoryFormFields.contains(field),
        availableValues: availableValues,
      ),
    );
  }

  return fields;
}