@platform/ui.datagrid
Version:
Isolated tabular DataGrid.
23 lines (22 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var operators_1 = require("rxjs/operators");
var common_1 = require("../common");
var BindingMonitor = (function () {
function BindingMonitor(args) {
var grid = args.grid;
var keydown$ = grid.events$.pipe(operators_1.filter(function (e) { return e.type === 'GRID/keydown'; }), operators_1.filter(function (e) { return grid.isReady; }), operators_1.filter(function (e) { return !grid.isEditing; }), 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 ? common_1.Keyboard.matchEvent(binding.key, e) : false;
};
BindingMonitor.prototype.monitor = function (command, handler) {
var _this = this;
this.keydown$.pipe(operators_1.filter(function (e) { return _this.is(command, e); })).subscribe(function (e) { return handler(e); });
};
return BindingMonitor;
}());
exports.BindingMonitor = BindingMonitor;