UNPKG

@platform/ui.datagrid

Version:

Isolated tabular DataGrid.

23 lines (22 loc) 1.19 kB
"use strict"; 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;