UNPKG

@taiga-ui/event-plugins

Version:

This is a library for optimizing performance sensitive events and declarative preventDefault and stopPropagation

28 lines 3.69 kB
import { Injectable } from '@angular/core'; import { AbstractEventPlugin } from './abstract.plugin'; import * as i0 from "@angular/core"; class ResizePlugin extends AbstractEventPlugin { constructor() { super(...arguments); this.modifier = 'resize'; } supports(event) { return event === 'resize'; } addEventListener(element, event, handler) { if (typeof ResizeObserver === 'undefined' || !(element instanceof Element)) { element.addEventListener(event, handler); return () => element.removeEventListener(event, handler); } const observer = new ResizeObserver(handler); observer.observe(element); return () => observer.disconnect(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResizePlugin, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResizePlugin }); } } export { ResizePlugin }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResizePlugin, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWV2ZW50LXBsdWdpbnMvc3JjL3BsdWdpbnMvcmVzaXplLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUV0RCxNQUNhLFlBQWEsU0FBUSxtQkFBbUI7SUFEckQ7O1FBRW9CLGFBQVEsR0FBRyxRQUFRLENBQUM7S0F3QnZDO0lBdEJtQixRQUFRLENBQUMsS0FBYTtRQUNsQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVNLGdCQUFnQixDQUNuQixPQUFvQixFQUNwQixLQUFhLEVBQ2IsT0FBK0I7UUFFL0IsSUFBSSxPQUFPLGNBQWMsS0FBSyxXQUFXLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxPQUFPLENBQUMsRUFBRTtZQUN4RSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQW1DLENBQUMsQ0FBQztZQUVyRSxPQUFPLEdBQUcsRUFBRSxDQUNSLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsT0FBbUMsQ0FBQyxDQUFDO1NBQy9FO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQixPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDOytHQXhCUSxZQUFZO21IQUFaLFlBQVk7O1NBQVosWUFBWTs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBYnN0cmFjdEV2ZW50UGx1Z2lufSBmcm9tICcuL2Fic3RyYWN0LnBsdWdpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXNpemVQbHVnaW4gZXh0ZW5kcyBBYnN0cmFjdEV2ZW50UGx1Z2luIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kaWZpZXIgPSAncmVzaXplJztcblxuICAgIHB1YmxpYyBvdmVycmlkZSBzdXBwb3J0cyhldmVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBldmVudCA9PT0gJ3Jlc2l6ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudDogc3RyaW5nLFxuICAgICAgICBoYW5kbGVyOiBSZXNpemVPYnNlcnZlckNhbGxiYWNrLFxuICAgICk6IEZ1bmN0aW9uIHtcbiAgICAgICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gJ3VuZGVmaW5lZCcgfHwgIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciBhcyB1bmtub3duIGFzIEV2ZW50TGlzdGVuZXIpO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT5cbiAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIgYXMgdW5rbm93biBhcyBFdmVudExpc3RlbmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGhhbmRsZXIpO1xuXG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG4iXX0=