@@ -26,7 +26,6 @@ export const PasswordFieldMixin = (superClass) =>
26
26
*/
27
27
revealButtonHidden : {
28
28
type : Boolean ,
29
- observer : '_revealButtonHiddenChanged' ,
30
29
value : false ,
31
30
} ,
32
31
@@ -38,7 +37,6 @@ export const PasswordFieldMixin = (superClass) =>
38
37
type : Boolean ,
39
38
value : false ,
40
39
reflectToAttribute : true ,
41
- observer : '_passwordVisibleChanged' ,
42
40
readOnly : true ,
43
41
} ,
44
42
@@ -64,10 +62,6 @@ export const PasswordFieldMixin = (superClass) =>
64
62
} ;
65
63
}
66
64
67
- static get observers ( ) {
68
- return [ '__i18nChanged(i18n)' ] ;
69
- }
70
-
71
65
/** @override */
72
66
static get delegateAttrs ( ) {
73
67
// Do not delegate autocapitalize as it should be always set to "off"
@@ -95,11 +89,6 @@ export const PasswordFieldMixin = (superClass) =>
95
89
] ;
96
90
}
97
91
98
- /** @protected */
99
- get _revealNode ( ) {
100
- return this . _revealButtonController && this . _revealButtonController . node ;
101
- }
102
-
103
92
/** @protected */
104
93
ready ( ) {
105
94
super . ready ( ) ;
@@ -108,24 +97,41 @@ export const PasswordFieldMixin = (superClass) =>
108
97
109
98
this . _revealButtonController = new SlotController ( this , 'reveal' , 'vaadin-password-field-button' , {
110
99
initializer : ( btn ) => {
111
- btn . disabled = this . disabled ;
100
+ this . _revealNode = btn ;
112
101
113
102
btn . addEventListener ( 'click' , this . __boundRevealButtonClick ) ;
114
103
btn . addEventListener ( 'mousedown' , this . __boundRevealButtonMouseDown ) ;
115
104
} ,
116
105
} ) ;
117
106
this . addController ( this . _revealButtonController ) ;
118
107
119
- this . __updateAriaLabel ( this . i18n ) ;
120
-
121
- this . _updateToggleState ( false ) ;
122
- this . _toggleRevealHidden ( this . revealButtonHidden ) ;
123
-
124
108
if ( this . inputElement ) {
125
109
this . inputElement . autocapitalize = 'off' ;
126
110
}
127
111
}
128
112
113
+ /** @protected */
114
+ updated ( props ) {
115
+ super . updated ( props ) ;
116
+
117
+ if ( props . has ( 'disabled' ) ) {
118
+ this . _revealNode . disabled = this . disabled ;
119
+ }
120
+
121
+ if ( props . has ( 'revealButtonHidden' ) ) {
122
+ this . _toggleRevealHidden ( this . revealButtonHidden ) ;
123
+ }
124
+
125
+ if ( props . has ( 'passwordVisible' ) ) {
126
+ this . _setType ( this . passwordVisible ? 'text' : 'password' ) ;
127
+ this . _revealNode . setAttribute ( 'aria-pressed' , this . passwordVisible ? 'true' : 'false' ) ;
128
+ }
129
+
130
+ if ( props . has ( 'i18n' ) && this . i18n && this . i18n . reveal ) {
131
+ this . _revealNode . setAttribute ( 'aria-label' , this . i18n . reveal ) ;
132
+ }
133
+ }
134
+
129
135
/**
130
136
* Override an event listener inherited from `InputControlMixin`
131
137
* to store the value at the moment of the native `change` event.
@@ -188,31 +194,9 @@ export const PasswordFieldMixin = (superClass) =>
188
194
}
189
195
}
190
196
191
- /** @private */
192
- __updateAriaLabel ( i18n ) {
193
- if ( i18n && i18n . reveal && this . _revealNode ) {
194
- this . _revealNode . setAttribute ( 'aria-label' , i18n . reveal ) ;
195
- }
196
- }
197
-
198
- /** @private */
199
- __i18nChanged ( i18n ) {
200
- this . __updateAriaLabel ( i18n ) ;
201
- }
202
-
203
- /** @private */
204
- _revealButtonHiddenChanged ( hidden ) {
205
- this . _toggleRevealHidden ( hidden ) ;
206
- }
207
-
208
- /** @private */
209
- _togglePasswordVisibility ( ) {
210
- this . _setPasswordVisible ( ! this . passwordVisible ) ;
211
- }
212
-
213
197
/** @private */
214
198
_onRevealButtonClick ( ) {
215
- this . _togglePasswordVisibility ( ) ;
199
+ this . _setPasswordVisible ( ! this . passwordVisible ) ;
216
200
}
217
201
218
202
/** @private */
@@ -239,33 +223,4 @@ export const PasswordFieldMixin = (superClass) =>
239
223
}
240
224
}
241
225
}
242
-
243
- /** @private */
244
- _updateToggleState ( passwordVisible ) {
245
- if ( this . _revealNode ) {
246
- this . _revealNode . setAttribute ( 'aria-pressed' , passwordVisible ? 'true' : 'false' ) ;
247
- }
248
- }
249
-
250
- /** @private */
251
- _passwordVisibleChanged ( passwordVisible ) {
252
- this . _setType ( passwordVisible ? 'text' : 'password' ) ;
253
-
254
- this . _updateToggleState ( passwordVisible ) ;
255
- }
256
-
257
- /**
258
- * Override method inherited from `DisabledMixin` to synchronize the reveal button
259
- * disabled state with the password field disabled state.
260
- * @param {boolean } disabled
261
- * @param {boolean } oldDisabled
262
- * @protected
263
- */
264
- _disabledChanged ( disabled , oldDisabled ) {
265
- super . _disabledChanged ( disabled , oldDisabled ) ;
266
-
267
- if ( this . _revealNode ) {
268
- this . _revealNode . disabled = disabled ;
269
- }
270
- }
271
226
} ;
0 commit comments