UNPKG

@foblex/drag-toolkit

Version:

A TypeScript library providing foundational classes and utilities for implementing drag-and-drop functionality in Angular applications, with support for both mouse and touch events, and designed to work with or without Angular’s NgZone (zoneless applicati

28 lines 3.7 kB
export class EventExtensions { static isPassiveEventListenerSupported() { if (EventExtensions.isSupported == null && typeof window !== 'undefined') { try { window.addEventListener('test', EventExtensions.emptyListener, { passive: true }); EventExtensions.isSupported = true; } catch (e) { EventExtensions.isSupported = false; } } return EventExtensions.isSupported; } static passiveEventListener(options) { return EventExtensions.isPassiveEventListenerSupported() ? options : !!options.capture; } static activeListener() { return EventExtensions.passiveEventListener({ passive: false }); } static passiveListener() { return EventExtensions.passiveEventListener({ passive: true }); } static emptyListener() { return () => { }; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZHJhZy10b29sa2l0L3NyYy9ldmVudC5leHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUFlO0lBSWxCLE1BQU0sQ0FBQywrQkFBK0I7UUFFNUMsSUFBSSxlQUFlLENBQUMsV0FBVyxJQUFJLElBQUksSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDeEUsSUFBSTtnQkFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEYsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDcEM7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixlQUFlLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUNyQztTQUNGO1FBRUQsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBZ0M7UUFDbEUsT0FBTyxlQUFlLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUN6RixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWM7UUFDMUIsT0FBTyxlQUFlLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWU7UUFDM0IsT0FBTyxlQUFlLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWE7UUFDekIsT0FBTyxHQUFHLEVBQUU7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXZlbnRFeHRlbnNpb25zIHtcblxuICBwcml2YXRlIHN0YXRpYyBpc1N1cHBvcnRlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIHN0YXRpYyBpc1Bhc3NpdmVFdmVudExpc3RlbmVyU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKEV2ZW50RXh0ZW5zaW9ucy5pc1N1cHBvcnRlZCA9PSBudWxsICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgIEV2ZW50RXh0ZW5zaW9ucy5pc1N1cHBvcnRlZCA9IHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIEV2ZW50RXh0ZW5zaW9ucy5pc1N1cHBvcnRlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBFdmVudEV4dGVuc2lvbnMuaXNTdXBwb3J0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwYXNzaXZlRXZlbnRMaXN0ZW5lcihvcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyk6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIHwgYm9vbGVhbiB7XG4gICAgcmV0dXJuIEV2ZW50RXh0ZW5zaW9ucy5pc1Bhc3NpdmVFdmVudExpc3RlbmVyU3VwcG9ydGVkKCkgPyBvcHRpb25zIDogISFvcHRpb25zLmNhcHR1cmU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFjdGl2ZUxpc3RlbmVyKCk6IGJvb2xlYW4gfCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyB7XG4gICAgcmV0dXJuIEV2ZW50RXh0ZW5zaW9ucy5wYXNzaXZlRXZlbnRMaXN0ZW5lcih7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXNzaXZlTGlzdGVuZXIoKTogYm9vbGVhbiB8IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zIHtcbiAgICByZXR1cm4gRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVFdmVudExpc3RlbmVyKHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZW1wdHlMaXN0ZW5lcigpOiBGdW5jdGlvbiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICB9O1xuICB9XG59XG4iXX0=