| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_UI_AUTOFILL_CELLS_CVC_ITEM_H_ |
| #define IOS_CHROME_BROWSER_UI_AUTOFILL_CELLS_CVC_ITEM_H_ |
| |
| #import <UIKit/UIKit.h> |
| |
| #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" |
| #import "ios/third_party/material_components_ios/src/components/CollectionCells/src/MaterialCollectionCells.h" |
| |
| @protocol TextFieldStyling; |
| |
| // Item corresponding to a CVCCell. |
| @interface CVCItem : CollectionViewItem |
| |
| // The instructions text to display. |
| @property(nonatomic, copy) NSString* instructionsText; |
| |
| // The optioonal error message to display. |
| @property(nonatomic, copy) NSString* errorMessage; |
| |
| // The month text appearing in the |monthInput| of the cell, if |showDateInput| |
| // is true. |
| @property(nonatomic, copy) NSString* monthText; |
| |
| // The year text appearing in the |yearInput| of the cell, if |showDateInput| |
| // is true. |
| @property(nonatomic, copy) NSString* yearText; |
| |
| // The CVC text appearing in the |CVCInput| of the cell. |
| @property(nonatomic, copy) NSString* CVCText; |
| |
| // Whether the cell should show the date inputs. |
| @property(nonatomic, assign) BOOL showDateInput; |
| |
| // Whether the cell should show the "New Card?" button. |
| @property(nonatomic, assign) BOOL showNewCardButton; |
| |
| // Whether the date inputs contain erroneous data. |
| @property(nonatomic, assign) BOOL showDateInputError; |
| |
| // Whether the CVC input contains erroneous data. |
| @property(nonatomic, assign) BOOL showCVCInputError; |
| |
| // The resource ID of the CVC image to use. |
| @property(nonatomic, assign) int CVCImageResourceID; |
| |
| @end |
| |
| // The CVC cell includes a label with instructions, optional text fields that |
| // allow the user to enter a new expiration date, a text field where the user |
| // enters the CVC, and an image showing where the CVC appears on the card (which |
| // varies by card type). If there is an error message but a new expiration date |
| // is not requested, a "New card?" link will be shown that allows the user to |
| // show the date input fields. Below the inputs, the error messsage will be |
| // shown if supplied. |
| @interface CVCCell : MDCCollectionViewCell |
| |
| // The label displaying instructions. |
| @property(nonatomic, readonly, strong) UILabel* instructionsTextLabel; |
| |
| // The label displaying the optional error. |
| @property(nonatomic, readonly, strong) UILabel* errorLabel; |
| |
| // The text field for entering the month. |
| @property(nonatomic, readonly, strong) |
| UITextField<TextFieldStyling>* monthInput; |
| |
| // The text field for entering the year. |
| @property(nonatomic, readonly, strong) UITextField<TextFieldStyling>* yearInput; |
| |
| // The text field for entering the CVC. |
| @property(nonatomic, readonly, strong) UITextField<TextFieldStyling>* CVCInput; |
| |
| // The image view to display the CVC image with the |CVCResourceID|. |
| @property(nonatomic, readonly, strong) UIImageView* CVCImageView; |
| |
| // The "New Card?" button. |
| @property(nonatomic, readonly, strong) UIButton* buttonForNewCard; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_UI_AUTOFILL_CELLS_CVC_ITEM_H_ |