UNPKG

@lit/reactive-element

Version:

A simple low level base class for creating fast, lightweight web components

46 lines 1.21 kB
/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ import { decorateProperty } from './base.js'; /** * Adds event listener options to a method used as an event listener in a * lit-html template. * * @param options An object that specifies event listener options as accepted by * `EventTarget#addEventListener` and `EventTarget#removeEventListener`. * * Current browsers support the `capture`, `passive`, and `once` options. See: * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters * * ```ts * class MyElement { * clicked = false; * * render() { * return html` * <div @click=${this._onClick}> * <button></button> * </div> * `; * } * * @eventOptions({capture: true}) * _onClick(e) { * this.clicked = true; * } * } * ``` * @category Decorator */ export function eventOptions(options) { return decorateProperty({ finisher: (ctor, name) => { Object.assign( // eslint-disable-next-line @typescript-eslint/no-explicit-any ctor.prototype[name], options); }, }); } //# sourceMappingURL=event-options.js.map