UNPKG

@tdb/util

Version:
45 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var constants = require("../../constants"); var IS_BROWSER = constants.IS_BROWSER; var fromEvent = function (source, event) { return source ? rxjs_1.fromEvent(source, event).pipe(operators_1.share()) : new rxjs_1.Subject().pipe(operators_1.share()); }; var fromDocumentEvent = function (event) { return fromEvent(IS_BROWSER ? document : undefined, event); }; var fromWindowEvent = function (event) { return fromEvent(IS_BROWSER ? window : undefined, event); }; exports.click$ = fromDocumentEvent('click'); exports.mouseDown$ = fromDocumentEvent('mousedown'); exports.mouseUp$ = fromDocumentEvent('mouseup'); exports.mouseMove$ = fromDocumentEvent('mousemove'); exports.hashChange$ = fromWindowEvent('hashchange'); exports.resize$ = fromWindowEvent('resize').pipe(operators_1.observeOn(rxjs_1.animationFrameScheduler), operators_1.share()); var toKeypress = function (e, isPressed) { var key = e.key, code = e.code, charCode = e.charCode, altKey = e.altKey, ctrlKey = e.ctrlKey, shiftKey = e.shiftKey, metaKey = e.metaKey, char = e.char; var isModifier = key === 'Meta' || key === 'Control' || key === 'Alt' || key === 'Shift'; var event = { isPressed: isPressed, key: key, code: code, charCode: charCode, char: char, altKey: altKey, ctrlKey: ctrlKey, shiftKey: shiftKey, metaKey: metaKey, isModifier: isModifier, preventDefault: function () { return e.preventDefault(); }, }; return event; }; exports.keyDown$ = fromDocumentEvent('keydown').pipe(operators_1.map(function (e) { return toKeypress(e, true); }), operators_1.share()); exports.keyUp$ = fromDocumentEvent('keyup').pipe(operators_1.map(function (e) { return toKeypress(e, false); }), operators_1.share()); exports.keyPress$ = exports.keyDown$.pipe(operators_1.merge(exports.keyUp$)); //# sourceMappingURL=events.js.map