@platform/react
Version:
React refs and helpers.
28 lines (27 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.keyPress$ = exports.keyUp$ = exports.keyDown$ = exports.toKeypress = void 0;
var operators_1 = require("rxjs/operators");
var util_1 = require("./util");
exports.toKeypress = function (e, isPressed) {
var key = e.key, code = e.code, altKey = e.altKey, ctrlKey = e.ctrlKey, shiftKey = e.shiftKey, metaKey = e.metaKey;
var isModifier = key === 'Meta' || key === 'Control' || key === 'Alt' || key === 'Shift';
var event = {
event: e,
isPressed: isPressed,
key: key,
code: code,
altKey: altKey,
ctrlKey: ctrlKey,
shiftKey: shiftKey,
metaKey: metaKey,
isModifier: isModifier,
preventDefault: function () { return e.preventDefault(); },
stopPropagation: function () { return e.stopPropagation(); },
stopImmediatePropagation: function () { return e.stopImmediatePropagation(); },
};
return event;
};
exports.keyDown$ = util_1.fromDocumentEvent('keydown').pipe(operators_1.map(function (e) { return exports.toKeypress(e, true); }), operators_1.share());
exports.keyUp$ = util_1.fromDocumentEvent('keyup').pipe(operators_1.map(function (e) { return exports.toKeypress(e, false); }), operators_1.share());
exports.keyPress$ = exports.keyDown$.pipe(operators_1.merge(exports.keyUp$));