dist/compox.js
function (event) {
        //event = $.event.fix(event); // jQuery event normalization.
        var element = this;//event.target;
        // @ TextNode -> nodeType == 3
        element = (element.nodeType == 3) ? element.parentNode : element;

        if (opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields
            var target = element;//$(element);
            if (target.tagName == "INPUT" || target.tagName == "TEXTAREA") {
                return;
            }
        }
        var code = event.which,
            type = event.type,
            character = String.fromCharCode(code).toLowerCase(),
            special = that.special_keys[code],
            shift = event.shiftKey,
            ctrl = event.ctrlKey,
            alt = event.altKey,
            propagate = true, // default behaivour
            mapPoint = null;

        // in opera + safari, the event.target is unpredictable.
        // for example: 'keydown' might be associated with HtmlBodyElement
        // or the element where you last clicked with your mouse.
        if (opt.checkParent) {
//              while (!that.all[element] && element.parentNode){
            while (!element['hotkeys'] && element.parentNode) {
                element = element.parentNode;
            }
        }

//          var cbMap = that.all[element].events[type].callbackMap;
        var cbMap = element['hotkeys'].events[type].callbackMap;
        if (!shift && !ctrl && !alt) { // No Modifiers
            mapPoint = cbMap[special] || cbMap[character];
        }
        // deals with combinaitons (alt|ctrl|shift+anything)
        else {
            var modif = '';
            if (alt) modif += 'alt+';
            if (ctrl) modif += 'ctrl+';
            if (shift) modif += 'shift+';
            // modifiers + special keys or modifiers + characters or modifiers + shift characters
            mapPoint = cbMap[modif + special] || cbMap[modif + character] || cbMap[modif + that.shift_nums[character]];
        }
        if (mapPoint) {
            mapPoint.cb(event);
            if (!mapPoint.propagate) {
                event.stopPropagation();
                event.preventDefault();
                return false;
            }
        }
    }
function (event) {
        //event = $.event.fix(event); // jQuery event normalization.
        var element = this;//event.target;
        // @ TextNode -> nodeType == 3
        element = (element.nodeType == 3) ? element.parentNode : element;

        if (opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields
            var target = element;//$(element);
            if (target.tagName == "INPUT" || target.tagName == "TEXTAREA") {
                return;
            }
        }
        var code = event.which,
            type = event.type,
            character = String.fromCharCode(code).toLowerCase(),
            special = that.special_keys[code],
            shift = event.shiftKey,
            ctrl = event.ctrlKey,
            alt = event.altKey,
            propagate = true, // default behaivour
            mapPoint = null;

        // in opera + safari, the event.target is unpredictable.
        // for example: 'keydown' might be associated with HtmlBodyElement
        // or the element where you last clicked with your mouse.
        if (opt.checkParent) {
//              while (!that.all[element] && element.parentNode){
            while (!element['hotkeys'] && element.parentNode) {
                element = element.parentNode;
            }
        }

//          var cbMap = that.all[element].events[type].callbackMap;
        var cbMap = element['hotkeys'].events[type].callbackMap;
        if (!shift && !ctrl && !alt) { // No Modifiers
            mapPoint = cbMap[special] || cbMap[character];
        }
        // deals with combinaitons (alt|ctrl|shift+anything)
        else {
            var modif = '';
            if (alt) modif += 'alt+';
            if (ctrl) modif += 'ctrl+';
            if (shift) modif += 'shift+';
            // modifiers + special keys or modifiers + characters or modifiers + shift characters
            mapPoint = cbMap[modif + special] || cbMap[modif + character] || cbMap[modif + that.shift_nums[character]];
        }
        if (mapPoint) {
            mapPoint.cb(event);
            if (!mapPoint.propagate) {
                event.stopPropagation();
                event.preventDefault();
                return false;
            }
        }
    }
function ( event ) { //event = $.event.fix(event); // jQuery event normalization. var element = this ; //event.target; // @ TextNode -> nodeType == 3 element = ( element . nodeType == 3 ) ? element . parentNode : element ; if ( opt [ 'disableInInput' ] ) { // Disable shortcut keys in Input, Textarea fields var target = element ; //$(element); if ( target . tagName == "INPUT" || target . tagName == "TEXTAREA" ) { return ; } } var code = event . which , type = event . type , character = String . fromCharCode ( code ) . toLowerCase ( ) , special = that . special_keys [ code ] , shift = event . shiftKey , ctrl = event . ctrlKey , alt = event . altKey , propagate = true , // default behaivour mapPoint = null ; // in opera + safari, the event.target is unpredictable. // for example: 'keydown' might be associated with HtmlBodyElement // or the element where you last clicked with your mouse. if ( opt . checkParent ) { //              while (!that.all[element] && element.parentNode){ while ( ! element [ 'hotkeys' ] && element . parentNode ) { element = element . parentNode ; } } //          var cbMap = that.all[element].events[type].callbackMap; var cbMap = element [ 'hotkeys' ] . events [ type ] . callbackMap ; if ( ! shift && ! ctrl && ! alt ) { // No Modifiers mapPoint = cbMap [ special ] || cbMap [ character ] ; } // deals with combinaitons (alt|ctrl|shift+anything) else { var modif = '' ; if ( alt ) modif += 'alt+' ; if ( ctrl ) modif += 'ctrl+' ; if ( shift ) modif += 'shift+' ; // modifiers + special keys or modifiers + characters or modifiers + shift characters mapPoint = cbMap [ modif + special ] || cbMap [ modif + character ] || cbMap [ modif + that . shift_nums [ character ] ] ; } if ( mapPoint ) { mapPoint . cb ( event ) ; if ( ! mapPoint . propagate ) { event . stopPropagation ( ) ; event . preventDefault ( ) ; return false ; } } }
inspect if keystroke matches
inspect if keystroke matches