#include "components/autofill/core/browser/autofill_address_util.h"
#include <iterator>
#include <memory>
#include <utility>
#include "autofill_address_util.h"
#include "base/check.h"
#include "base/memory/ptr_util.h"
#include "base/not_fatal_until.h"
#include "base/notreached.h"
#include "base/ranges/algorithm.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "components/autofill/core/browser/data_model/autofill_profile.h"
#include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/browser/geo/address_i18n.h"
#include "components/autofill/core/browser/geo/autofill_country.h"
#include "components/autofill/core/browser/ui/country_combobox_model.h"
#include "components/autofill/core/common/autofill_features.h"
#include "components/strings/grit/components_strings.h"
#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui.h"
#include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui_component.h"
#include "third_party/re2/src/re2/re2.h"
#include "ui/base/l10n/l10n_util.h"
AddressField;
Localization;
namespace autofill {
namespace {
AddressUiComponent;
constexpr char kAddressComponentsFallbackCountryCode[] = …;
std::vector<AutofillAddressUIComponent> GetAddressComponents(
const std::string& country_code,
const std::string& ui_language_code,
std::string* components_language_code) { … }
AutofillAddressUIComponent::LengthHint ConvertLengthHint(
AddressUiComponent::LengthHint length_hint) { … }
}
std::vector<AutofillAddressUIComponent> ConvertAddressUiComponents(
const std::vector<AddressUiComponent>& addressinput_components,
const AutofillCountry& country) { … }
void ExtendAddressComponents(
std::vector<AutofillAddressUIComponent>& components,
const AutofillCountry& country,
const Localization& localization,
bool include_literals) { … }
void GetAddressComponents(
const std::string& country_code,
const std::string& ui_language_code,
bool include_literals,
std::vector<std::vector<AutofillAddressUIComponent>>* address_components,
std::string* components_language_code) { … }
std::u16string GetEnvelopeStyleAddress(const AutofillProfile& profile,
const std::string& ui_language_code,
bool include_recipient,
bool include_country) { … }
std::u16string GetProfileDescription(const AutofillProfile& profile,
const std::string& ui_language_code,
bool include_address_and_contacts) { … }
std::vector<ProfileValueDifference> GetProfileDifferenceForUi(
const AutofillProfile& first_profile,
const AutofillProfile& second_profile,
const std::string& app_locale) { … }
std::u16string GetProfileSummaryForMigrationPrompt(
const AutofillProfile& profile,
const std::string& app_locale) { … }
}