@platform/react
Version:
React refs and helpers.
29 lines (28 loc) • 1.45 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");
var 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.toKeypress = toKeypress;
exports.keyDown$ = (0, util_1.fromDocumentEvent)('keydown').pipe((0, operators_1.map)(function (e) { return (0, exports.toKeypress)(e, true); }), (0, operators_1.share)());
exports.keyUp$ = (0, util_1.fromDocumentEvent)('keyup').pipe((0, operators_1.map)(function (e) { return (0, exports.toKeypress)(e, false); }), (0, operators_1.share)());
exports.keyPress$ = exports.keyDown$.pipe((0, operators_1.mergeWith)(exports.keyUp$));