UNPKG

@platform/ui.datagrid

Version:

Isolated tabular DataGrid.

24 lines (23 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BindingMonitor = void 0; var operators_1 = require("rxjs/operators"); var react_1 = require("@platform/react"); var BindingMonitor = (function () { function BindingMonitor(args) { var grid = args.grid; var keydown$ = grid.events$.pipe((0, operators_1.filter)(function (e) { return e.type === 'GRID/keydown'; }), (0, operators_1.filter)(function (e) { return grid.isReady; }), (0, operators_1.filter)(function (e) { return !grid.isEditing; }), (0, operators_1.map)(function (e) { return e.payload; })); this.grid = grid; this.keydown$ = keydown$; } BindingMonitor.prototype.is = function (command, e) { var binding = this.grid.keyBindings.find(function (binding) { return binding.command === command; }); return binding ? react_1.Keyboard.matchEvent(binding.key, e) : false; }; BindingMonitor.prototype.monitor = function (command, handler) { var _this = this; this.keydown$.pipe((0, operators_1.filter)(function (e) { return _this.is(command, e); })).subscribe(function (e) { return handler(e); }); }; return BindingMonitor; }()); exports.BindingMonitor = BindingMonitor;