UNPKG

@lit/reactive-element

Version:

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

48 lines (46 loc) 1.24 kB
/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ /** * 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 */ function eventOptions(options) { // eslint-disable-next-line @typescript-eslint/no-explicit-any return ((protoOrValue, nameOrContext) => { const method = typeof protoOrValue === 'function' ? protoOrValue : protoOrValue[nameOrContext]; Object.assign(method, options); }); } export { eventOptions }; //# sourceMappingURL=event-options.js.map