@@ -60,6 +60,7 @@ export interface MatChipEditedEvent extends MatChipEvent {
60
60
'[attr.aria-description]' : 'null' ,
61
61
'[attr.role]' : 'role' ,
62
62
'(focus)' : '_handleFocus()' ,
63
+ '(click)' : '_handleClick($event)' ,
63
64
'(dblclick)' : '_handleDoubleclick($event)' ,
64
65
} ,
65
66
providers : [
@@ -93,6 +94,7 @@ export class MatChipRow extends MatChip implements AfterViewInit {
93
94
@ContentChild ( MatChipEditInput ) contentEditInput ?: MatChipEditInput ;
94
95
95
96
_isEditing = false ;
97
+ _alreadyFocused = false ;
96
98
97
99
constructor ( ...args : unknown [ ] ) ;
98
100
@@ -104,6 +106,14 @@ export class MatChipRow extends MatChip implements AfterViewInit {
104
106
if ( this . _isEditing && ! this . _editStartPending ) {
105
107
this . _onEditFinish ( ) ;
106
108
}
109
+ this . _alreadyFocused = false ;
110
+ } ) ;
111
+ this . _onFocus . pipe ( takeUntil ( this . destroyed ) ) . subscribe ( ( ) => {
112
+ if ( ! this . _isEditing && ! this . disabled ) {
113
+ this . _ngZone . runOutsideAngular ( ( ) => {
114
+ setTimeout ( ( ) => ( this . _alreadyFocused = true ) , 100 ) ;
115
+ } ) ;
116
+ }
107
117
} ) ;
108
118
}
109
119
@@ -135,6 +145,12 @@ export class MatChipRow extends MatChip implements AfterViewInit {
135
145
}
136
146
}
137
147
148
+ _handleClick ( event : MouseEvent ) {
149
+ if ( ! this . disabled && this . editable && ! this . _isEditing && this . _alreadyFocused ) {
150
+ this . _startEditing ( event ) ;
151
+ }
152
+ }
153
+
138
154
_handleDoubleclick ( event : MouseEvent ) {
139
155
if ( ! this . disabled && this . editable ) {
140
156
this . _startEditing ( event ) ;
0 commit comments