File tree 2 files changed +13
-2
lines changed
test/unit/modules/compiler
2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -31,8 +31,7 @@ const modifierCode: { [key: string]: string } = {
31
31
meta : genGuard ( `!$event.metaKey` ) ,
32
32
left : genGuard ( `'button' in $event && $event.button !== 0` ) ,
33
33
middle : genGuard ( `'button' in $event && $event.button !== 1` ) ,
34
- right : genGuard ( `'button' in $event && $event.button !== 2` ) ,
35
- bare : genGuard ( `$event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey` )
34
+ right : genGuard ( `'button' in $event && $event.button !== 2` )
36
35
}
37
36
38
37
export function genHandlers (
@@ -88,6 +87,14 @@ function genHandler (
88
87
if (keyCodes[key]) {
89
88
keys.push(key)
90
89
}
90
+ } else if (key === 'bare') {
91
+ const modifiers: ASTModifiers = (handler.modifiers: any)
92
+ genModifierCode += genGuard(
93
+ ['ctrl', 'shift', 'alt', 'meta']
94
+ .filter(keyModifier => !modifiers[keyModifier])
95
+ .map(keyModifier => ` $event . $ { keyModifier } Key `)
96
+ .join(' || ')
97
+ )
91
98
} else {
92
99
keys.push(key)
93
100
}
Original file line number Diff line number Diff line change @@ -302,6 +302,10 @@ describe('codegen', () => {
302
302
'<input @click.bare="onClick">' ,
303
303
`with(this){return _c('input',{on:{"click":function($event){if($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey)return null;onClick($event)}}})}`
304
304
)
305
+ assertCodegen (
306
+ '<input @click.ctrl.bare="onClick">' ,
307
+ `with(this){return _c('input',{on:{"click":function($event){if(!$event.ctrlKey)return null;if($event.shiftKey || $event.altKey || $event.metaKey)return null;onClick($event)}}})}`
308
+ )
305
309
} )
306
310
307
311
it ( 'generate events with multiple modifiers' , ( ) => {
You can’t perform that action at this time.
0 commit comments