File: credit_card_edit_dialog.html

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (159 lines) | stat: -rw-r--r-- 5,776 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
    <style include="cr-shared-style settings-shared md-select">
      cr-input {
        /* Larger cr-input margin (by reserving space for error display). */
        --cr-input-error-display: block;
        margin-bottom: 0;
        width: var(--cr-default-input-max-width);
      }

      .md-select + .md-select {
        margin-inline-start: 8px;
      }

      #numberInput {
        /* Add a larger gap between the card input and the 'Expiration date'
           text, as the default height for cr-input does not leave enough room
           for the error text when it is visible. */
        margin-bottom: 10px;
      }

      #month {
        width: 70px;
      }

      #cvcInput {
        width: 132px;
      }

      #cvcImage {
        margin-inline-start: 10px;
      }

      #saved-to-this-device-only-label {
        /* Overall space between input fields, including space between
           nicknameInput and saved-to-this-device text, between
           saved-to-this-device text and button. */
        margin-bottom: 10px;
        margin-top: 0;
      }

      #year {
        width: 100px;
      }

      /* For nickname input, cr-input-width is the same as other input fields */
      #nicknameInput {
        --cr-input-width: var(--cr-default-input-max-width);
        width: fit-content;
      }

      #charCount {
        font-size: var(--cr-form-field-label-font-size);
        line-height: var(--cr-form-field-label-line-height);
        padding-inline-start: 8px;
      }

      #nicknameInput:not(:focus-within) #charCount {
        display: none;
      }

      /* Same style as cr-input error except margin-top. */
      #expiredError {
        display: block;
        font-size: var(--cr-form-field-label-font-size);
        height: var(--cr-form-field-label-height);
        line-height: var(--cr-form-field-label-line-height);
        margin: 8px 0;
        visibility: hidden;
      }

      :host([expired_]) #expiredError {
        visibility: visible;
      }

      #expiredError,
      :host([expired_]) #expiration {
        color: var(--google-red-600);
      }

      @media (prefers-color-scheme: dark) {
        #expiredError,
        :host([expired_]) #expiration {
          color: var(--google-red-300);
        }
      }
    </style>
    <cr-dialog id="dialog" close-text="$i18n{close}">
      <div slot="title">[[title_]]</div>
      <div slot="body">
        <cr-input id="numberInput" label="$i18n{creditCardNumber}"
            on-blur="onNumberInputBlurred_"
            invalid="[[showErrorForCardNumber_(cardNumberValidationState_)]]"
            error-message="$i18n{creditCardNumberInvalid}"
            value="{{rawCardNumber_}}" autofocus>
        </cr-input>
        <!-- aria-hidden for creditCardExpiration label since
          creditCardExpirationMonth and creditCardExpirationYear provide
          sufficient labeling. -->
        <label id='expiration' class="cr-form-field-label" aria-hidden="true">
          $i18n{creditCardExpiration}
        </label>
        <select class="md-select" id="month" value="[[expirationMonth_]]"
            on-change="onMonthChange_"
            aria-label="$i18n{creditCardExpirationMonth}"
            aria-invalid$="[[getExpirationAriaInvalid_(expired_)]]">
          <template is="dom-repeat" items="[[monthList_]]">
            <option>[[item]]</option>
          </template>
        </select>
        <select class="md-select" id="year" value="[[expirationYear_]]"
            on-change="onYearChange_"
            aria-label="$i18n{creditCardExpirationYear}"
            aria-invalid$="[[getExpirationAriaInvalid_(expired_)]]">
          <template is="dom-repeat" items="[[yearList_]]">
            <option>[[item]]</option>
          </template>
        </select>
        <div id="expiredError">$i18n{creditCardExpired}</div>
        <template is="dom-if"
            if="[[checkIfCvcStorageIsAvailable_(
                  prefs.autofill.payment_cvc_storage.value,
                  cvcStorageAvailable_)]]">
          <cr-input id="cvcInput" label="$i18n{creditCardCvcInputTitle}"
              placeholder="$i18n{creditCardCvcInputPlaceholder}"
              value="{{cvc_}}">
            <img slot="suffix" id="cvcImage"
                src="[[getCvcImageSource_(sanitizedCardNumber_)]]"
                title="[[getCvcImageTooltip_(sanitizedCardNumber_)]]">
            </img>
          </cr-input>
        </template>
        <!-- Place cardholder name field and nickname field after CVC input.-->
        <cr-input id="nameInput" label="$i18n{creditCardName}"
            value="{{name_}}" spellcheck="false">
        </cr-input>
        <cr-input id="nicknameInput" label="$i18n{creditCardNickname}"
            value="{{nickname_}}" spellcheck="false" maxlength="25"
            on-input="validateNickname_"
            invalid="[[nicknameInvalid_]]"
            error-message="$i18n{creditCardNicknameInvalid}"
            aria-description="[[i18n('inputMaxLengthDescription', 25)]]">
            <div id="charCount" slot="suffix" aria-hidden="true">
              [[computeNicknameCharCount_(nickname_)]]/25
            </div>
        </cr-input>
        <div id="saved-to-this-device-only-label">
          $i18n{savedToThisDeviceOnly}
        </div>
      </div>
      <div slot="button-container">
        <cr-button id="cancelButton" class="cancel-button"
            on-click="onCancelButtonClick_">$i18n{cancel}</cr-button>
        <cr-button id="saveButton" class="action-button"
            on-click="onSaveButtonClick_"
            disabled="[[!saveEnabled_(nicknameInvalid_, cardNumberValidationState_,
                expired_, name_, sanitizedCardNumber_, nickname_)]]">
          $i18n{save}
        </cr-button>
      </div>
    </cr-dialog>