UNPKG

@taiga-ui/event-plugins

Version:

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

24 lines 3.36 kB
export class TimedEventPlugin { supports(event) { return this.regExp.test(event); } getDelay(event) { const match = this.regExp.exec(event); if (!match?.groups) { throw new Error(`Invalid event: ${event}`); } const { time, units } = match.groups; switch (units) { case 'ms': return Number(time); case 's': return Number(time) * 1000; default: throw new Error(`Invalid event: ${event}`); } } unwrap(event) { return event.replace(this.regExp, ''); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWQtZXZlbnQucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZXZlbnQtcGx1Z2lucy9zcmMvcGx1Z2lucy90aW1lZC1ldmVudC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFnQixnQkFBZ0I7SUFXM0IsUUFBUSxDQUFDLEtBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQWE7UUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM5QztRQUVELE1BQU0sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUVuQyxRQUFRLEtBQUssRUFBRTtZQUNYLEtBQUssSUFBSTtnQkFDTCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixLQUFLLEdBQUc7Z0JBQ0osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQy9CO2dCQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbEQ7SUFDTCxDQUFDO0lBRVMsTUFBTSxDQUFDLEtBQWE7UUFDMUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge0V2ZW50TWFuYWdlcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB0eXBlIHtFdmVudE1hbmFnZXJQbHVnaW59IGZyb20gJy4uL3R5cGVzL2V2ZW50LW1hbmFnZXItcGx1Z2luJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRpbWVkRXZlbnRQbHVnaW4gaW1wbGVtZW50cyBFdmVudE1hbmFnZXJQbHVnaW4ge1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSByZWdFeHA6IFJlZ0V4cDtcblxuICAgIHB1YmxpYyBtYW5hZ2VyITogRXZlbnRNYW5hZ2VyO1xuXG4gICAgcHVibGljIGFic3RyYWN0IGFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudDogc3RyaW5nLFxuICAgICAgICBoYW5kbGVyOiBGdW5jdGlvbixcbiAgICApOiBGdW5jdGlvbjtcblxuICAgIHB1YmxpYyBzdXBwb3J0cyhldmVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ0V4cC50ZXN0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVsYXkoZXZlbnQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5yZWdFeHAuZXhlYyhldmVudCk7XG5cbiAgICAgICAgaWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXZlbnQ6ICR7ZXZlbnR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7dGltZSwgdW5pdHN9ID0gbWF0Y2guZ3JvdXBzO1xuXG4gICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgIGNhc2UgJ21zJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyKHRpbWUpO1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcih0aW1lKSAqIDEwMDA7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBldmVudDogJHtldmVudH1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB1bndyYXAoZXZlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBldmVudC5yZXBsYWNlKHRoaXMucmVnRXhwLCAnJyk7XG4gICAgfVxufVxuIl19