Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 442x 18x 18x 442x 442x 442x 442x 2652x 14x 14x 2652x 442x 442x 442x 442x 442x 442x 442x 442x | /** @import { AST } from '#compiler' */ /** @import { ComponentContext } from '../types' */ import * as b from '../../../../utils/builders.js'; import { build_event, build_event_handler } from './shared/events.js'; const modifiers = [ 'stopPropagation', 'stopImmediatePropagation', 'preventDefault', 'self', 'trusted', 'once' ]; /** * @param {AST.OnDirective} node * @param {ComponentContext} context */ export function OnDirective(node, context) { if (!node.expression) { context.state.analysis.needs_props = true; } let handler = build_event_handler(node.expression, node.metadata.expression, context); for (const modifier of modifiers) { if (node.modifiers.includes(modifier)) { handler = b.call('$.' + modifier, handler); } } const capture = node.modifiers.includes('capture'); const passive = node.modifiers.includes('passive') || (node.modifiers.includes('nonpassive') ? false : undefined); return build_event(node.name, context.state.node, handler, capture, passive); } |