@taiga-ui/event-plugins
Version:
This is a library for optimizing performance sensitive events and declarative preventDefault and stopPropagation
29 lines • 3.89 kB
JavaScript
import { Injectable } from '@angular/core';
import { AbstractEventPlugin } from './abstract.plugin';
import * as i0 from "@angular/core";
class OptionsEventPlugin extends AbstractEventPlugin {
constructor() {
super(...arguments);
this.modifier = 'capture.once.passive';
}
supports(event) {
return event.includes('.') && !this.unwrap(event).includes('.');
}
addEventListener(element, event, handler) {
const unwrap = this.unwrap(event);
const capture = event.includes('.capture');
element.addEventListener(unwrap, handler, {
capture,
once: event.includes('.once'),
passive: event.includes('.passive'),
});
return () => element.removeEventListener(unwrap, handler, { capture });
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsEventPlugin, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsEventPlugin }); }
}
export { OptionsEventPlugin };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsEventPlugin, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ldmVudC1wbHVnaW5zL3NyYy9wbHVnaW5zL29wdGlvbnMucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBRXRELE1BQ2Esa0JBQW1CLFNBQVEsbUJBQW1CO0lBRDNEOztRQUV1QixhQUFRLEdBQUcsc0JBQXNCLENBQUM7S0FzQnhEO0lBcEJtQixRQUFRLENBQUMsS0FBYTtRQUNsQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sZ0JBQWdCLENBQ25CLE9BQW9CLEVBQ3BCLEtBQWEsRUFDYixPQUFzQjtRQUV0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0MsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDdEMsT0FBTztZQUNQLElBQUksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUM3QixPQUFPLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7U0FDdEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDekUsQ0FBQzsrR0F0QlEsa0JBQWtCO21IQUFsQixrQkFBa0I7O1NBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBYnN0cmFjdEV2ZW50UGx1Z2lufSBmcm9tICcuL2Fic3RyYWN0LnBsdWdpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPcHRpb25zRXZlbnRQbHVnaW4gZXh0ZW5kcyBBYnN0cmFjdEV2ZW50UGx1Z2luIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kaWZpZXIgPSAnY2FwdHVyZS5vbmNlLnBhc3NpdmUnO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIHN1cHBvcnRzKGV2ZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmluY2x1ZGVzKCcuJykgJiYgIXRoaXMudW53cmFwKGV2ZW50KS5pbmNsdWRlcygnLicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICAgZXZlbnQ6IHN0cmluZyxcbiAgICAgICAgaGFuZGxlcjogRXZlbnRMaXN0ZW5lcixcbiAgICApOiBGdW5jdGlvbiB7XG4gICAgICAgIGNvbnN0IHVud3JhcCA9IHRoaXMudW53cmFwKGV2ZW50KTtcbiAgICAgICAgY29uc3QgY2FwdHVyZSA9IGV2ZW50LmluY2x1ZGVzKCcuY2FwdHVyZScpO1xuXG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih1bndyYXAsIGhhbmRsZXIsIHtcbiAgICAgICAgICAgIGNhcHR1cmUsXG4gICAgICAgICAgICBvbmNlOiBldmVudC5pbmNsdWRlcygnLm9uY2UnKSxcbiAgICAgICAgICAgIHBhc3NpdmU6IGV2ZW50LmluY2x1ZGVzKCcucGFzc2l2ZScpLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHVud3JhcCwgaGFuZGxlciwge2NhcHR1cmV9KTtcbiAgICB9XG59XG4iXX0=