mirror of https://github.com/sveltejs/svelte
parent
b3b95d4ee6
commit
da3a45c526
@ -1,36 +0,0 @@
|
|||||||
import EventHandler from '../compile/nodes/EventHandler';
|
|
||||||
import deindent from '../utils/deindent';
|
|
||||||
|
|
||||||
export default function getEventModifiers(handlerName: String) {
|
|
||||||
// Ignore first element because it's the event name, i.e. click
|
|
||||||
let modifiers = handlerName.split('|').slice(1);
|
|
||||||
|
|
||||||
let eventModifiers = modifiers.reduce((acc, m) => {
|
|
||||||
if (m === 'stopPropagation')
|
|
||||||
acc.bodyModifiers += 'event.stopPropagation();\n';
|
|
||||||
else if (m === 'preventDefault')
|
|
||||||
acc.bodyModifiers += 'event.preventDefault();\n';
|
|
||||||
else if (m === 'capture')
|
|
||||||
acc.optionModifiers[m] = true;
|
|
||||||
else if (m === 'once')
|
|
||||||
acc.optionModifiers[m] = true;
|
|
||||||
else if (m === 'passive')
|
|
||||||
acc.optionModifiers[m] = true;
|
|
||||||
|
|
||||||
return acc;
|
|
||||||
}, {
|
|
||||||
bodyModifiers: '',
|
|
||||||
optionModifiers: {
|
|
||||||
capture: false,
|
|
||||||
once: false,
|
|
||||||
passive: false,
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (eventModifiers.bodyModifiers !== '')
|
|
||||||
eventModifiers.bodyModifiers = deindent`
|
|
||||||
${eventModifiers.bodyModifiers}
|
|
||||||
`;
|
|
||||||
|
|
||||||
return eventModifiers;
|
|
||||||
}
|
|
Loading…
Reference in new issue