UNPKG

rkeys

Version:

A platform for creating tablet/HTML5 virtual-keyboard apps to send keystrokes to remote X11

43 lines (42 loc) 1.25 kB
// Generated by LiveScript 1.3.0 (function(){ var _, Co, Fc; _ = require('lodash'); Co = require('../command'); Fc = require('./filter-chain'); module.exports = function(e){ var scs, id, ref$, chain, rx, lresult$, i$, len$, cmd, r, j$, len1$, i, submatch, fn, results$ = []; e == null && (e = rkeyEvent); scs = Co.getSidechains(); for (id in scs) { ref$ = scs[id], chain = ref$.chain, rx = ref$.rx; lresult$ = []; if (rx.test(e.from)) { for (i$ = 0, len$ = chain.length; i$ < len$; ++i$) { ref$ = chain[i$], rx = ref$.rx, cmd = ref$.cmd; if (r = rx.exec(e.act)) { for (j$ = 0, len1$ = r.length; j$ < len1$; ++j$) { i = j$; submatch = r[j$]; fn = fn$; cmd = _.isArray(cmd) ? _.map(cmd, fn) : fn(cmd); } Fc((ref$ = clone$(e), ref$.command = cmd, ref$)); break; } } } results$.push(lresult$); } return results$; function fn$(it){ return it.replace(new RegExp("\\$" + i, 'g'), submatch); } }; function clone$(it){ function fun(){} fun.prototype = it; return new fun; } }).call(this);