import { directive, EventPart } from 'lit-html'; export const stop = directive((handler, immediate = false) => (part) => { if (!(part instanceof EventPart)) { throw new Error('"stop" directive can only be used in event listeners'); } const { handleEvent, ...options } = handler; part.setValue({ handleEvent: function (event) { immediate ? event.stopImmediatePropagation() : event.stopPropagation(); (handleEvent || handler).call(this, event); }, ...options }); });