#include "chrome/browser/ui/views/payments/payment_request_views_util.h"
#include <memory>
#include <utility>
#include <vector>
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/views/chrome_typography.h"
#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
#include "chrome/browser/ui/views/payments/payment_request_sheet_controller.h"
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/theme_resources.h"
#include "components/autofill/core/browser/autofill_data_util.h"
#include "components/autofill/core/browser/autofill_type.h"
#include "components/autofill/core/browser/data_model/autofill_profile.h"
#include "components/autofill/core/browser/data_model/credit_card.h"
#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/browser/geo/phone_number_i18n.h"
#include "components/payments/content/icon/icon_size.h"
#include "components/payments/core/payment_options_provider.h"
#include "components/payments/core/payment_request_data_util.h"
#include "components/payments/core/payments_profile_comparator.h"
#include "components/payments/core/strings_util.h"
#include "components/strings/grit/components_strings.h"
#include "components/vector_icons/vector_icons.h"
#include "third_party/blink/public/mojom/payments/payment_request.mojom.h"
#include "ui/base/default_style.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/color/color_id.h"
#include "ui/color/color_provider.h"
#include "ui/compositor/layer.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/font_list.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/native_theme/native_theme.h"
#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/bubble/bubble_frame_view.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/painter.h"
#include "ui/views/style/typography.h"
#include "ui/views/view.h"
namespace payments {
namespace {
class ThemeTrackingLabel : public views::Label { … };
BEGIN_METADATA(…)
class ChromeLogoImageView : public views::ImageView { … };
BEGIN_METADATA(…)
std::unique_ptr<views::View> GetBaseProfileLabel(
AddressStyleType type,
const std::u16string& s1,
const std::u16string& s2,
const std::u16string& s3,
std::u16string* accessible_content,
bool enabled = true) { … }
std::unique_ptr<views::View> GetShippingAddressLabel(
AddressStyleType type,
const std::string& locale,
const autofill::AutofillProfile& profile,
std::u16string* accessible_content,
bool enabled) { … }
std::unique_ptr<views::Label> GetLabelForMissingInformation(
const std::u16string& missing_info) { … }
class PaymentRequestRowBorderPainter : public views::Painter { … };
}
std::unique_ptr<views::ImageView> CreateAppIconView(
int icon_resource_id,
const SkBitmap* icon_bitmap,
const std::u16string& tooltip_text,
float opacity) { … }
std::unique_ptr<views::View> CreateProductLogoFooterView() { … }
std::unique_ptr<views::View> GetShippingAddressLabelWithMissingInfo(
AddressStyleType type,
const std::string& locale,
const autofill::AutofillProfile& profile,
const PaymentsProfileComparator& comp,
std::u16string* accessible_content,
bool enabled) { … }
std::unique_ptr<views::View> GetContactInfoLabel(
AddressStyleType type,
const std::string& locale,
const autofill::AutofillProfile& profile,
bool request_payer_name,
bool request_payer_email,
bool request_payer_phone,
const PaymentsProfileComparator& comp,
std::u16string* accessible_content) { … }
std::unique_ptr<views::Border> CreatePaymentRequestRowBorder(
SkColor color,
const gfx::Insets& insets) { … }
std::unique_ptr<views::Label> CreateBoldLabel(const std::u16string& text) { … }
std::unique_ptr<views::Label> CreateMediumLabel(const std::u16string& text) { … }
std::unique_ptr<views::Label> CreateHintLabel(
const std::u16string& text,
gfx::HorizontalAlignment alignment) { … }
std::unique_ptr<views::View> CreateShippingOptionLabel(
payments::mojom::PaymentShippingOption* shipping_option,
const std::u16string& formatted_amount,
bool emphasize_label,
std::u16string* accessible_content) { … }
std::unique_ptr<views::View> CreateWarningView(const std::u16string& message,
bool show_icon) { … }
}