import { contains } from './Generic.js';
-let userAgent = navigator.userAgent;
-let platform = navigator.platform;
+let isNode = (typeof navigator == 'undefined') ? true : false;
+let userAgent = (isNode) ? 'node' : navigator.userAgent;
+let platform = (isNode) ? 'node' : navigator.platform;
export let isFirefox = !!~userAgent.indexOf('Firefox');
export let isMSIE = !!~userAgent.indexOf('MSIE');
// Find the users platform. We use this to interpret the meta key
// and ISO third level shifts.
// http://stackoverflow.com/q/19877924/577598
-export let isMac = contains(platform, ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K']);
+export let isMac = contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);
export let isIpad = platform === 'iPad';
export let isIphone = platform === 'iPhone';
-export let isMSWindows = contains(platform, ['Windows', 'Win16', 'Win32', 'WinCE']);
+export let isMSWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);
* @module xterm/utils/Generic
*/
-export let contains = function(el, arr) {
- for (var i = 0; i < arr.length; i += 1) {
- if (el === arr[i]) {
- return true;
- }
- }
- return false;
+/**
+ * Return if the given array contains the given element
+ * @param {Array} array The array to search for the given element.
+ * @param {Object} el The element to look for into the array
+ */
+export let contains = function(arr, el) {
+ return arr.indexOf(el) >= 0;
};
import { EventEmitter } from './EventEmitter.js';
import { Viewport } from './Viewport.js';
import { rightClickHandler, pasteHandler, copyHandler } from './handlers/Clipboard.js';
-import { isFirefox, isMSIE, isMac, isIpad, isIphone, isMSWindows } from './utils/Browser';
+import * as Browser from './utils/Browser';
/**
* Terminal Emulation References:
return new Terminal(arguments[0], arguments[1], arguments[2]);
}
+ self.browser = Browser;
self.cancel = Terminal.cancel;
EventEmitter.call(this);
rightClickHandler.call(this, ev, term);
}
- if (isFirefox || isMSIE) {
+ if (term.browser.isFirefox || term.browser.isMSIE) {
on(this.element, 'mousedown', function (ev) {
if (ev.button == 2) {
rightClickHandlerWrapper(ev);
? ev.which - 1
: null;
- if (isMSIE) {
+ if (self.browser.isMSIE) {
button = button === 1 ? 0 : button === 4 ? 1 : button;
}
break;
// ^] - group sep
result.key = String.fromCharCode(29);
}
- } else if (!isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) {
+ } else if (!this.browser.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) {
// On Mac this is a third level shift. Use <Esc> instead.
if (ev.keyCode >= 65 && ev.keyCode <= 90) {
result.key = '\x1b' + String.fromCharCode(ev.keyCode + 32);
function isThirdLevelShift(term, ev) {
var thirdLevelKey =
- (isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||
- (isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);
+ (term.browser.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||
+ (term.browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);
if (ev.type == 'keypress') {
return thirdLevelKey;
describe('On Mac OS', function() {
beforeEach(function() {
- xterm.isMac = true;
+ xterm.browser.isMac = true;
});
it('should not interfere with the alt key on keyDown', function() {