@taiga-ui/event-plugins
Version:
This is a library for optimizing performance sensitive events and declarative preventDefault and stopPropagation
28 lines • 3.69 kB
JavaScript
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=