diff --git a/ChangeLog.md b/ChangeLog.md index 6e71973..b41aafa 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -18,6 +18,7 @@ Mostly client (browser) related changes in this release - Moved javascript events out of html into javascript - Changed asset packaging from grunt to Webpack to be inline with xterm.js direction - Moved logging and credentials buttons to menu system +- Removed non-minified options (if you need to disable minification, modify webpack scripts and 'npm run build') ### Fixed - Resolved loss of terminal foucs when interacting with option buttons (Logging, etc...) diff --git a/README.md b/README.md index c8cb6b7..358af23 100644 --- a/README.md +++ b/README.md @@ -86,8 +86,6 @@ docker run --name webssh2 -d -p 2222:2222 webssh2 * **terminal.tabStopWidth** - _integer_ - Tab stops at _n_ characters **Default:** 8. -* **useminified** - _boolean_ - Choose between ./public/client-full.htm (false/non-minified) or ./public/client-min.htm (true/minified js), defaults to false (non-minified version) - * **header.text** - _string_ - Specify header text, defaults to `My Header` but may also be set to `null`. When set to `null` no header bar will be displayed on the client. * **header.background** - _string_ - Header background, defaults to `green`. @@ -201,6 +199,4 @@ Clicking `Start logging` on the status bar will log all data to the client. A `D http://localhost:2222/ssh/host/192.168.1.1?port=2244&header=My%20Header&color=red # Tips -* If you want to add custom JavaScript to the browser client you can either modify `./src/client-(full|min).html` and add a **
@@ -21,6 +23,7 @@
+ diff --git a/public/webssh2.bundle.js b/public/webssh2.bundle.js index ed7522b..ed12c0d 100644 --- a/public/webssh2.bundle.js +++ b/public/webssh2.bundle.js @@ -1,8626 +1 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__node_modules_socket_io_client_dist_socket_io_js__ = __webpack_require__(1); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__node_modules_socket_io_client_dist_socket_io_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__node_modules_socket_io_client_dist_socket_io_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_xterm_dist_xterm__ = __webpack_require__(2); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_xterm_dist_xterm___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__node_modules_xterm_dist_xterm__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_xterm_dist_addons_fit_fit__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__node_modules_xterm_dist_addons_fit_fit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__node_modules_xterm_dist_addons_fit_fit__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__fortawesome_fontawesome__ = __webpack_require__(4); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__fortawesome_fontawesome_free_solid_faBars__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__fortawesome_fontawesome_free_solid_faBars___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__fortawesome_fontawesome_free_solid_faBars__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__fortawesome_fontawesome_free_solid_faClipboard__ = __webpack_require__(7); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__fortawesome_fontawesome_free_solid_faClipboard___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__fortawesome_fontawesome_free_solid_faClipboard__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__fortawesome_fontawesome_free_solid_faDownload__ = __webpack_require__(8); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__fortawesome_fontawesome_free_solid_faDownload___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__fortawesome_fontawesome_free_solid_faDownload__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__fortawesome_fontawesome_free_solid_faKey__ = __webpack_require__(9); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__fortawesome_fontawesome_free_solid_faKey___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__fortawesome_fontawesome_free_solid_faKey__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__fortawesome_fontawesome_free_solid_faCog__ = __webpack_require__(10); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__fortawesome_fontawesome_free_solid_faCog___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__fortawesome_fontawesome_free_solid_faCog__); - - - - - - - -// import faQuestion from '@fortawesome/fontawesome-free-solid/faQuestion' - - - - - -__WEBPACK_IMPORTED_MODULE_3__fortawesome_fontawesome__["a" /* default */].library.add(__WEBPACK_IMPORTED_MODULE_4__fortawesome_fontawesome_free_solid_faBars___default.a, __WEBPACK_IMPORTED_MODULE_5__fortawesome_fontawesome_free_solid_faClipboard___default.a, __WEBPACK_IMPORTED_MODULE_6__fortawesome_fontawesome_free_solid_faDownload___default.a, __WEBPACK_IMPORTED_MODULE_7__fortawesome_fontawesome_free_solid_faKey___default.a, __WEBPACK_IMPORTED_MODULE_8__fortawesome_fontawesome_free_solid_faCog___default.a) - -__WEBPACK_IMPORTED_MODULE_3__fortawesome_fontawesome__["a" /* default */].config.searchPseudoElements = true - -__WEBPACK_IMPORTED_MODULE_3__fortawesome_fontawesome__["a" /* default */].dom.i2svg() - -__webpack_require__(11) -__webpack_require__(12) - -__WEBPACK_IMPORTED_MODULE_1__node_modules_xterm_dist_xterm__["applyAddon"](__WEBPACK_IMPORTED_MODULE_2__node_modules_xterm_dist_addons_fit_fit__) - -/* global Blob */ - -var sessionLogEnable = false -var loggedData = false -var sessionLog, sessionFooter, logDate, currentDate, myFile, errorExists - -var downloadLogBtn = document.getElementById('downloadLogBtn') -var credentialsBtn = document.getElementById('credentialsBtn') -var logBtn = document.getElementById('logBtn') - -logBtn.addEventListener('click', toggleLog) - -logBtn.style.color = '#000' - -var terminalContainer = document.getElementById('terminal-container') -var socket, termid // eslint-disable-line -var term = new __WEBPACK_IMPORTED_MODULE_1__node_modules_xterm_dist_xterm__() -term.open(terminalContainer) -term.focus() -term.fit() - -window.addEventListener('resize', resizeScreen, false) - -function resizeScreen () { - term.fit() - socket.emit('resize', { cols: term.cols, rows: term.rows }) -} - -if (document.location.pathname) { - var parts = document.location.pathname.split('/') - var base = parts.slice(0, parts.length - 1).join('/') + '/' - var resource = base.substring(1) + 'socket.io' - socket = __WEBPACK_IMPORTED_MODULE_0__node_modules_socket_io_client_dist_socket_io_js__["connect"](null, { - resource: resource - }) -} else { - socket = __WEBPACK_IMPORTED_MODULE_0__node_modules_socket_io_client_dist_socket_io_js__["connect"]() -} - -socket.on('connect', function () { - socket.emit('geometry', term.cols, term.rows) - console.log('geometry cols: ' + term.cols + ' rows: ' + term.rows) -}) -socket.on('setTerminalOpts', function (data) { - console.log('terminalOpts: ' + JSON.stringify(data)) - term.setOption('cursorBlink', data.cursorBlink) - term.setOption('scrollback', data.scrollback) - term.setOption('tabStopWidth', data.tabStopWidth) -}) -term.on('data', function (data) { - socket.emit('data', data) -}) -socket.on('title', function (data) { - document.title = data -}).on('status', function (data) { - document.getElementById('status').innerHTML = data -}).on('ssherror', function (data) { - document.getElementById('status').innerHTML = data - document.getElementById('status').style.backgroundColor = 'red' - errorExists = true -}).on('headerBackground', function (data) { - document.getElementById('header').style.backgroundColor = data -}).on('header', function (data) { - document.getElementById('header').innerHTML = data -}).on('footer', function (data) { - sessionFooter = data - document.getElementById('footer').innerHTML = data -}).on('statusBackground', function (data) { - document.getElementById('status').style.backgroundColor = data -}).on('allowreplay', function (data) { - if (data === true) { - console.log('allowreplay: ' + data) - credentialsBtn.style.color = '#000' - credentialsBtn.addEventListener('click', replayCredentials) - } else { - console.log('allowreplay: ' + data) - credentialsBtn.style.color = '#666' - } -}).on('data', function (data) { - term.write(data) - if (sessionLogEnable) { - sessionLog = sessionLog + data - } -}).on('disconnect', function (err) { - if (!errorExists) { - document.getElementById('status').style.backgroundColor = 'red' - document.getElementById('status').innerHTML = - 'WEBSOCKET SERVER DISCONNECTED: ' + err - } - socket.io.reconnection(false) -}).on('error', function (err) { - if (!errorExists) { - document.getElementById('status').style.backgroundColor = 'red' - document.getElementById('status').innerHTML = 'ERROR: ' + err - } -}) - -// replay password to server, requires -function replayCredentials () { // eslint-disable-line - socket.emit('control', 'replayCredentials') - console.log('replaying credentials') - term.focus() - return false -} - -// Set variable to toggle log data from client/server to a varialble -// for later download -function toggleLog () { // eslint-disable-line - if (sessionLogEnable === true) { - sessionLogEnable = false - loggedData = true - logBtn.innerHTML = ' Start Log' - console.log('stopping log, ' + sessionLogEnable) - currentDate = new Date() - sessionLog = sessionLog + '\r\n\r\nLog End for ' + sessionFooter + ': ' + - currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' + - currentDate.getDate() + ' @ ' + currentDate.getHours() + ':' + - currentDate.getMinutes() + ':' + currentDate.getSeconds() + '\r\n' - logDate = currentDate - term.focus() - return false - } else { - sessionLogEnable = true - loggedData = true - logBtn.innerHTML = ' Stop Log' - downloadLogBtn.style.color = '#000' - downloadLogBtn.addEventListener('click', downloadLog) - console.log('starting log, ' + sessionLogEnable) - currentDate = new Date() - sessionLog = 'Log Start for ' + sessionFooter + ': ' + - currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' + - currentDate.getDate() + ' @ ' + currentDate.getHours() + ':' + - currentDate.getMinutes() + ':' + currentDate.getSeconds() + '\r\n\r\n' - logDate = currentDate - term.focus() - return false - } -} - -// cross browser method to "download" an element to the local system -// used for our client-side logging feature -function downloadLog () { // eslint-disable-line - if (loggedData === true) { - myFile = 'WebSSH2-' + logDate.getFullYear() + (logDate.getMonth() + 1) + - logDate.getDate() + '_' + logDate.getHours() + logDate.getMinutes() + - logDate.getSeconds() + '.log' - // regex should eliminate escape sequences from being logged. - var blob = new Blob([sessionLog.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')], { - type: 'text/plain' - }) - if (window.navigator.msSaveOrOpenBlob) { - window.navigator.msSaveBlob(blob, myFile) - } else { - var elem = window.document.createElement('a') - elem.href = window.URL.createObjectURL(blob) - elem.download = myFile - document.body.appendChild(elem) - elem.click() - document.body.removeChild(elem) - } - } - term.focus() -} - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -!function(t,e){ true?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():t.io=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t,e){"object"===("undefined"==typeof t?"undefined":o(t))&&(e=t,t=void 0),e=e||{};var n,r=i(t),s=r.source,u=r.id,h=r.path,f=p[u]&&h in p[u].nsps,l=e.forceNew||e["force new connection"]||!1===e.multiplex||f;return l?(c("ignoring socket cache for %s",s),n=a(s,e)):(p[u]||(c("new io instance for %s",s),p[u]=a(s,e)),n=p[u]),r.query&&!e.query&&(e.query=r.query),n.socket(r.path,e)}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(1),s=n(7),a=n(13),c=n(3)("socket.io-client");t.exports=e=r;var p=e.managers={};e.protocol=s.protocol,e.connect=r,e.Manager=n(13),e.Socket=n(37)},function(t,e,n){(function(e){"use strict";function r(t,n){var r=t;n=n||e.location,null==t&&(t=n.protocol+"//"+n.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?n.protocol+t:n.host+t),/^(https?|wss?):\/\//.test(t)||(i("protocol-less url %s",t),t="undefined"!=typeof n?n.protocol+"//"+t:"https://"+t),i("parse %s",t),r=o(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var s=r.host.indexOf(":")!==-1,a=s?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}var o=n(2),i=n(3)("socket.io-client:url");t.exports=r}).call(e,function(){return this}())},function(t,e){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];t.exports=function(t){var e=t,o=t.indexOf("["),i=t.indexOf("]");o!=-1&&i!=-1&&(t=t.substring(0,o)+t.substring(o,i).replace(/:/g,";")+t.substring(i,t.length));for(var s=n.exec(t||""),a={},c=14;c--;)a[r[c]]=s[c]||"";return o!=-1&&i!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a}},function(t,e,n){(function(r){function o(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function i(t){var n=this.useColors;if(t[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+t[0]+(n?"%c ":" ")+"+"+e.humanize(this.diff),n){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,function(t){"%%"!==t&&(o++,"%c"===t&&(i=o))}),t.splice(i,0,r)}}function s(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(n){}}function c(){var t;try{t=e.storage.debug}catch(n){}return!t&&"undefined"!=typeof r&&"env"in r&&(t=r.env.DEBUG),t}function p(){try{return window.localStorage}catch(t){}}e=t.exports=n(5),e.log=s,e.formatArgs=i,e.save=a,e.load=c,e.useColors=o,e.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:p(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},e.enable(c())}).call(e,n(4))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(h===clearTimeout)return clearTimeout(t);if((h===r||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(t);try{return h(t)}catch(e){try{return h.call(null,t)}catch(e){return h.call(this,t)}}}function s(){y&&l&&(y=!1,l.length?d=l.concat(d):m=-1,d.length&&a())}function a(){if(!y){var t=o(s);y=!0;for(var e=d.length;e;){for(l=d,d=[];++m1)for(var n=1;n100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*u;case"days":case"day":case"d":return n*p;case"hours":case"hour":case"hrs":case"hr":case"h":return n*c;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function r(t){return t>=p?Math.round(t/p)+"d":t>=c?Math.round(t/c)+"h":t>=a?Math.round(t/a)+"m":t>=s?Math.round(t/s)+"s":t+"ms"}function o(t){return i(t,p,"day")||i(t,c,"hour")||i(t,a,"minute")||i(t,s,"second")||t+" ms"}function i(t,e,n){if(!(t0)return n(t);if("number"===i&&isNaN(t)===!1)return e["long"]?o(t):r(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},function(t,e,n){function r(){}function o(t){var n=""+t.type;return e.BINARY_EVENT!==t.type&&e.BINARY_ACK!==t.type||(n+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(n+=t.nsp+","),null!=t.id&&(n+=t.id),null!=t.data&&(n+=JSON.stringify(t.data)),h("encoded %j as %s",t,n),n}function i(t,e){function n(t){var n=d.deconstructPacket(t),r=o(n.packet),i=n.buffers;i.unshift(r),e(i)}d.removeBlobs(t,n)}function s(){this.reconstructor=null}function a(t){var n=0,r={type:Number(t.charAt(0))};if(null==e.types[r.type])return u();if(e.BINARY_EVENT===r.type||e.BINARY_ACK===r.type){for(var o="";"-"!==t.charAt(++n)&&(o+=t.charAt(n),n!=t.length););if(o!=Number(o)||"-"!==t.charAt(n))throw new Error("Illegal attachments");r.attachments=Number(o)}if("/"===t.charAt(n+1))for(r.nsp="";++n;){var i=t.charAt(n);if(","===i)break;if(r.nsp+=i,n===t.length)break}else r.nsp="/";var s=t.charAt(n+1);if(""!==s&&Number(s)==s){for(r.id="";++n;){var i=t.charAt(n);if(null==i||Number(i)!=i){--n;break}if(r.id+=t.charAt(n),n===t.length)break}r.id=Number(r.id)}return t.charAt(++n)&&(r=c(r,t.substr(n))),h("decoded %s as %j",t,r),r}function c(t,e){try{t.data=JSON.parse(e)}catch(n){return u()}return t}function p(t){this.reconPack=t,this.buffers=[]}function u(){return{type:e.ERROR,data:"parser error"}}var h=n(3)("socket.io-parser"),f=n(8),l=n(9),d=n(11),y=n(12);e.protocol=4,e.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],e.CONNECT=0,e.DISCONNECT=1,e.EVENT=2,e.ACK=3,e.ERROR=4,e.BINARY_EVENT=5,e.BINARY_ACK=6,e.Encoder=r,e.Decoder=s,r.prototype.encode=function(t,n){if(t.type!==e.EVENT&&t.type!==e.ACK||!l(t.data)||(t.type=t.type===e.EVENT?e.BINARY_EVENT:e.BINARY_ACK),h("encoding packet %j",t),e.BINARY_EVENT===t.type||e.BINARY_ACK===t.type)i(t,n);else{var r=o(t);n([r])}},f(s.prototype),s.prototype.add=function(t){var n;if("string"==typeof t)n=a(t),e.BINARY_EVENT===n.type||e.BINARY_ACK===n.type?(this.reconstructor=new p(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!y(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,this.emit("decoded",n))}},s.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},p.prototype.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var e=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null},p.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(t,e,n){function r(t){if(t)return o(t)}function o(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},r.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var r,o=0;o0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},r.prototype.cleanup=function(){h("cleanup");for(var t=this.subs.length,e=0;e=this._reconnectionAttempts)h("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var e=this.backoff.duration();h("will wait %dms before reconnect attempt",e),this.reconnecting=!0;var n=setTimeout(function(){t.skipReconnect||(h("attempting reconnect"),t.emitAll("reconnect_attempt",t.backoff.attempts),t.emitAll("reconnecting",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(h("reconnect attempt error"),t.reconnecting=!1,t.reconnect(),t.emitAll("reconnect_error",e.data)):(h("reconnect success"),t.onreconnect())}))},e);this.subs.push({destroy:function(){clearTimeout(n)}})}},r.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",t)}},function(t,e,n){t.exports=n(15),t.exports.parser=n(22)},function(t,e,n){(function(e){function r(t,n){if(!(this instanceof r))return new r(t,n);n=n||{},t&&"object"==typeof t&&(n=t,t=null),t?(t=u(t),n.hostname=t.host,n.secure="https"===t.protocol||"wss"===t.protocol,n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=u(n.host).host),this.secure=null!=n.secure?n.secure:e.location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.agent=n.agent||!1,this.hostname=n.hostname||(e.location?location.hostname:"localhost"),this.port=n.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},"string"==typeof this.query&&(this.query=h.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||"t",this.timestampRequests=n.timestampRequests,this.transports=n.transports||["polling","websocket"],this.transportOptions=n.transportOptions||{},this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized||n.rejectUnauthorized,this.forceNode=!!n.forceNode;var o="object"==typeof e&&e;o.global===o&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function o(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var i=n(16),s=n(8),a=n(3)("engine.io-client:socket"),c=n(36),p=n(22),u=n(2),h=n(30);t.exports=r,r.priorWebsocketSuccess=!1,s(r.prototype),r.protocol=p.protocol,r.Socket=r,r.Transport=n(21),r.transports=n(16),r.parser=n(22),r.prototype.createTransport=function(t){a('creating transport "%s"',t);var e=o(this.query);e.EIO=p.protocol,e.transport=t;var n=this.transportOptions[t]||{};this.id&&(e.sid=this.id);var r=new i[t]({query:e,socket:this,agent:n.agent||this.agent,hostname:n.hostname||this.hostname,port:n.port||this.port,secure:n.secure||this.secure,path:n.path||this.path,forceJSONP:n.forceJSONP||this.forceJSONP,jsonp:n.jsonp||this.jsonp,forceBase64:n.forceBase64||this.forceBase64,enablesXDR:n.enablesXDR||this.enablesXDR,timestampRequests:n.timestampRequests||this.timestampRequests,timestampParam:n.timestampParam||this.timestampParam,policyPort:n.policyPort||this.policyPort,pfx:n.pfx||this.pfx,key:n.key||this.key,passphrase:n.passphrase||this.passphrase,cert:n.cert||this.cert,ca:n.ca||this.ca,ciphers:n.ciphers||this.ciphers,rejectUnauthorized:n.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:n.perMessageDeflate||this.perMessageDeflate,extraHeaders:n.extraHeaders||this.extraHeaders,forceNode:n.forceNode||this.forceNode,localAddress:n.localAddress||this.localAddress,requestTimeout:n.requestTimeout||this.requestTimeout,protocols:n.protocols||void 0});return r},r.prototype.open=function(){var t;if(this.rememberUpgrade&&r.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)t="websocket";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit("error","No transports available")},0)}t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(n){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},r.prototype.setTransport=function(t){a("setting transport %s",t.name);var e=this;this.transport&&(a("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=t,t.on("drain",function(){e.onDrain()}).on("packet",function(t){e.onPacket(t)}).on("error",function(t){e.onError(t)}).on("close",function(){e.onClose("transport close")})},r.prototype.probe=function(t){function e(){if(f.onlyBinaryUpgrades){var e=!this.supportsBinary&&f.transport.supportsBinary;h=h||e}h||(a('probe transport "%s" opened',t),u.send([{type:"ping",data:"probe"}]),u.once("packet",function(e){if(!h)if("pong"===e.type&&"probe"===e.data){if(a('probe transport "%s" pong',t),f.upgrading=!0,f.emit("upgrading",u),!u)return;r.priorWebsocketSuccess="websocket"===u.name,a('pausing current transport "%s"',f.transport.name),f.transport.pause(function(){h||"closed"!==f.readyState&&(a("changing transport and sending upgrade packet"),p(),f.setTransport(u),u.send([{type:"upgrade"}]),f.emit("upgrade",u),u=null,f.upgrading=!1,f.flush())})}else{a('probe transport "%s" failed',t);var n=new Error("probe error");n.transport=u.name,f.emit("upgradeError",n)}}))}function n(){h||(h=!0,p(),u.close(),u=null)}function o(e){var r=new Error("probe error: "+e);r.transport=u.name,n(),a('probe transport "%s" failed because of error: %s',t,e),f.emit("upgradeError",r)}function i(){o("transport closed")}function s(){o("socket closed")}function c(t){u&&t.name!==u.name&&(a('"%s" works - aborting "%s"',t.name,u.name),n())}function p(){u.removeListener("open",e),u.removeListener("error",o),u.removeListener("close",i),f.removeListener("close",s),f.removeListener("upgrading",c)}a('probing transport "%s"',t);var u=this.createTransport(t,{probe:1}),h=!1,f=this;r.priorWebsocketSuccess=!1,u.once("open",e),u.once("error",o),u.once("close",i),this.once("close",s),this.once("upgrading",c),u.open()},r.prototype.onOpen=function(){if(a("socket open"),this.readyState="open",r.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){a("starting upgrade probes");for(var t=0,e=this.upgrades.length;t1?{type:b[o],data:t.substring(1)}:{type:b[o]}:w}var i=new Uint8Array(t),o=i[0],s=f(t,1);return k&&"blob"===n&&(s=new k([s])),{type:b[o],data:s}},e.decodeBase64Packet=function(t,e){var n=b[t.charAt(0)];if(!p)return{type:n,data:{base64:!0,data:t.substr(1)}};var r=p.decode(t.substr(1));return"blob"===e&&k&&(r=new k([r])),{type:n,data:r}},e.encodePayload=function(t,n,r){function o(t){return t.length+":"+t}function i(t,r){e.encodePacket(t,!!s&&n,!1,function(t){r(null,o(t))})}"function"==typeof n&&(r=n,n=null);var s=h(t);return n&&s?k&&!g?e.encodePayloadAsBlob(t,r):e.encodePayloadAsArrayBuffer(t,r):t.length?void c(t,i,function(t,e){return r(e.join(""))}):r("0:")},e.decodePayload=function(t,n,r){if("string"!=typeof t)return e.decodePayloadAsBinary(t,n,r);"function"==typeof n&&(r=n,n=null);var o;if(""===t)return r(w,0,1);for(var i,s,a="",c=0,p=t.length;c0;){for(var s=new Uint8Array(o),a=0===s[0],c="",p=1;255!==s[p];p++){if(c.length>310)return r(w,0,1);c+=s[p]}o=f(o,2+c.length),c=parseInt(c);var u=f(o,0,c);if(a)try{u=String.fromCharCode.apply(null,new Uint8Array(u))}catch(h){var l=new Uint8Array(u);u="";for(var p=0;pr&&(n=r),e>=r||e>=n||0===r)return new ArrayBuffer(0);for(var o=new Uint8Array(t),i=new Uint8Array(n-e),s=e,a=0;s=55296&&e<=56319&&o65535&&(e-=65536,o+=w(e>>>10&1023|55296),e=56320|1023&e),o+=w(e);return o}function c(t,e){if(t>=55296&&t<=57343){if(e)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function p(t,e){return w(t>>e&63|128)}function u(t,e){if(0==(4294967168&t))return w(t);var n="";return 0==(4294965248&t)?n=w(t>>6&31|192):0==(4294901760&t)?(c(t,e)||(t=65533),n=w(t>>12&15|224),n+=p(t,6)):0==(4292870144&t)&&(n=w(t>>18&7|240),n+=p(t,12),n+=p(t,6)),n+=w(63&t|128)}function h(t,e){e=e||{};for(var n,r=!1!==e.strict,o=s(t),i=o.length,a=-1,c="";++a=v)throw Error("Invalid byte index");var t=255&g[b];if(b++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function l(t){var e,n,r,o,i;if(b>v)throw Error("Invalid byte index");if(b==v)return!1;if(e=255&g[b],b++,0==(128&e))return e;if(192==(224&e)){if(n=f(),i=(31&e)<<6|n,i>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if(n=f(),r=f(),i=(15&e)<<12|n<<6|r,i>=2048)return c(i,t)?i:65533;throw Error("Invalid continuation byte")}if(240==(248&e)&&(n=f(),r=f(),o=f(),i=(7&e)<<18|n<<12|r<<6|o,i>=65536&&i<=1114111))return i;throw Error("Invalid UTF-8 detected")}function d(t,e){e=e||{};var n=!1!==e.strict;g=s(t),v=g.length,b=0;for(var r,o=[];(r=l(n))!==!1;)o.push(r);return a(o)}var y="object"==typeof e&&e,m=("object"==typeof t&&t&&t.exports==y&&t,"object"==typeof o&&o);m.global!==m&&m.window!==m||(i=m);var g,v,b,w=String.fromCharCode,k={version:"2.1.2",encode:h,decode:d};r=function(){return k}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))}(this)}).call(e,n(27)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){!function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),r=0;r>2],i+=t[(3&r[n])<<4|r[n+1]>>4],i+=t[(15&r[n+1])<<2|r[n+2]>>6],i+=t[63&r[n+2]];return o%3===2?i=i.substring(0,i.length-1)+"=":o%3===1&&(i=i.substring(0,i.length-2)+"=="),i},e.decode=function(t){var e,r,o,i,s,a=.75*t.length,c=t.length,p=0;"="===t[t.length-1]&&(a--,"="===t[t.length-2]&&a--);var u=new ArrayBuffer(a),h=new Uint8Array(u);for(e=0;e>4,h[p++]=(15&o)<<4|i>>2,h[p++]=(3&i)<<6|63&s;return u}}()},function(t,e){(function(e){function n(t){for(var e=0;e0);return e}function r(t){var e=0;for(u=0;u';i=document.createElement(e)}catch(t){i=document.createElement("iframe"),i.name=o.iframeId,i.src="javascript:0"}i.id=o.iframeId,o.form.appendChild(i),o.iframe=i}var o=this;if(!this.form){var i,s=document.createElement("form"),a=document.createElement("textarea"),u=this.iframeId="eio_iframe_"+this.index;s.className="socketio",s.style.position="absolute",s.style.top="-1000px",s.style.left="-1000px",s.target=u,s.method="POST",s.setAttribute("accept-charset","utf-8"),a.name="d",s.appendChild(a),document.body.appendChild(s),this.form=s,this.area=a}this.form.action=this.uri(),r(),t=t.replace(p,"\\\n"),this.area.value=t.replace(c,"\\n");try{this.form.submit()}catch(h){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===o.iframe.readyState&&n()}:this.iframe.onload=n}}).call(e,function(){return this}())},function(t,e,n){(function(e){function r(t){var e=t&&t.forceBase64;e&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=h&&!t.forceNode,this.protocols=t.protocols,this.usingBrowserWebSocket||(l=o),i.call(this,t)}var o,i=n(21),s=n(22),a=n(30),c=n(31),p=n(32),u=n(3)("engine.io-client:websocket"),h=e.WebSocket||e.MozWebSocket;if("undefined"==typeof window)try{o=n(35)}catch(f){}var l=h;l||"undefined"!=typeof window||(l=o),t.exports=r,c(r,i),r.prototype.name="websocket",r.prototype.supportsBinary=!0,r.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=this.protocols,n={agent:this.agent,perMessageDeflate:this.perMessageDeflate};n.pfx=this.pfx,n.key=this.key,n.passphrase=this.passphrase,n.cert=this.cert,n.ca=this.ca,n.ciphers=this.ciphers,n.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(n.headers=this.extraHeaders),this.localAddress&&(n.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?e?new l(t,e):new l(t):new l(t,e,n)}catch(r){return this.emit("error",r)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},r.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError("websocket error",e)}},r.prototype.write=function(t){function n(){r.emit("flush"),setTimeout(function(){r.writable=!0,r.emit("drain")},0)}var r=this;this.writable=!1;for(var o=t.length,i=0,a=o;i0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=n,n.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-n:t+n}return 0|Math.min(t,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(t){this.ms=t},n.prototype.setMax=function(t){this.max=t},n.prototype.setJitter=function(t){this.jitter=t}}])}); -//# sourceMappingURL=socket.io.js.map - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var require;var require;(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Terminal = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o this._terminal.rows; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Buffer.prototype, "isCursorInViewport", { - get: function () { - var absoluteY = this.ybase + this.y; - var relativeY = absoluteY - this.ydisp; - return (relativeY >= 0 && relativeY < this._terminal.rows); - }, - enumerable: true, - configurable: true - }); - Buffer.prototype._getCorrectBufferLength = function (rows) { - if (!this._hasScrollback) { - return rows; - } - var correctBufferLength = rows + this._terminal.options.scrollback; - return correctBufferLength > exports.MAX_BUFFER_SIZE ? exports.MAX_BUFFER_SIZE : correctBufferLength; - }; - Buffer.prototype.fillViewportRows = function () { - if (this._lines.length === 0) { - var i = this._terminal.rows; - while (i--) { - this.lines.push(this._terminal.blankLine()); - } - } - }; - Buffer.prototype.clear = function () { - this.ydisp = 0; - this.ybase = 0; - this.y = 0; - this.x = 0; - this._lines = new CircularList_1.CircularList(this._getCorrectBufferLength(this._terminal.rows)); - this.scrollTop = 0; - this.scrollBottom = this._terminal.rows - 1; - this.setupTabStops(); - }; - Buffer.prototype.resize = function (newCols, newRows) { - var newMaxLength = this._getCorrectBufferLength(newRows); - if (newMaxLength > this._lines.maxLength) { - this._lines.maxLength = newMaxLength; - } - if (this._lines.length > 0) { - if (this._terminal.cols < newCols) { - var ch = [this._terminal.defAttr, ' ', 1, 32]; - for (var i = 0; i < this._lines.length; i++) { - if (this._lines.get(i) === undefined) { - this._lines.set(i, this._terminal.blankLine(undefined, undefined, newCols)); - } - while (this._lines.get(i).length < newCols) { - this._lines.get(i).push(ch); - } - } - } - var addToY = 0; - if (this._terminal.rows < newRows) { - for (var y = this._terminal.rows; y < newRows; y++) { - if (this._lines.length < newRows + this.ybase) { - if (this.ybase > 0 && this._lines.length <= this.ybase + this.y + addToY + 1) { - this.ybase--; - addToY++; - if (this.ydisp > 0) { - this.ydisp--; - } - } - else { - this._lines.push(this._terminal.blankLine(undefined, undefined, newCols)); - } - } - } - } - else { - for (var y = this._terminal.rows; y > newRows; y--) { - if (this._lines.length > newRows + this.ybase) { - if (this._lines.length > this.ybase + this.y + 1) { - this._lines.pop(); - } - else { - this.ybase++; - this.ydisp++; - } - } - } - } - if (newMaxLength < this._lines.maxLength) { - var amountToTrim = this._lines.length - newMaxLength; - if (amountToTrim > 0) { - this._lines.trimStart(amountToTrim); - this.ybase = Math.max(this.ybase - amountToTrim, 0); - this.ydisp = Math.max(this.ydisp - amountToTrim, 0); - } - this._lines.maxLength = newMaxLength; - } - if (this.y >= newRows) { - this.y = newRows - 1; - } - if (addToY) { - this.y += addToY; - } - if (this.x >= newCols) { - this.x = newCols - 1; - } - this.scrollTop = 0; - } - this.scrollBottom = newRows - 1; - }; - Buffer.prototype.translateBufferLineToString = function (lineIndex, trimRight, startCol, endCol) { - if (startCol === void 0) { startCol = 0; } - if (endCol === void 0) { endCol = null; } - var lineString = ''; - var line = this.lines.get(lineIndex); - if (!line) { - return ''; - } - var startIndex = startCol; - endCol = endCol || line.length; - var endIndex = endCol; - for (var i = 0; i < line.length; i++) { - var char = line[i]; - lineString += char[exports.CHAR_DATA_CHAR_INDEX]; - if (char[exports.CHAR_DATA_WIDTH_INDEX] === 0) { - if (startCol >= i) { - startIndex--; - } - if (endCol >= i) { - endIndex--; - } - } - else { - if (char[exports.CHAR_DATA_CHAR_INDEX].length > 1) { - if (startCol > i) { - startIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1; - } - if (endCol > i) { - endIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1; - } - } - } - } - if (trimRight) { - var rightWhitespaceIndex = lineString.search(/\s+$/); - if (rightWhitespaceIndex !== -1) { - endIndex = Math.min(endIndex, rightWhitespaceIndex); - } - if (endIndex <= startIndex) { - return ''; - } - } - return lineString.substring(startIndex, endIndex); - }; - Buffer.prototype.setupTabStops = function (i) { - if (i != null) { - if (!this.tabs[i]) { - i = this.prevStop(i); - } - } - else { - this.tabs = {}; - i = 0; - } - for (; i < this._terminal.cols; i += this._terminal.options.tabStopWidth) { - this.tabs[i] = true; - } - }; - Buffer.prototype.prevStop = function (x) { - if (x == null) { - x = this.x; - } - while (!this.tabs[--x] && x > 0) - ; - return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x; - }; - Buffer.prototype.nextStop = function (x) { - if (x == null) { - x = this.x; - } - while (!this.tabs[++x] && x < this._terminal.cols) - ; - return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x; - }; - return Buffer; -}()); -exports.Buffer = Buffer; - - - -},{"./utils/CircularList":30}],2:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var Buffer_1 = require("./Buffer"); -var EventEmitter_1 = require("./EventEmitter"); -var BufferSet = (function (_super) { - __extends(BufferSet, _super); - function BufferSet(_terminal) { - var _this = _super.call(this) || this; - _this._terminal = _terminal; - _this._normal = new Buffer_1.Buffer(_this._terminal, true); - _this._normal.fillViewportRows(); - _this._alt = new Buffer_1.Buffer(_this._terminal, false); - _this._activeBuffer = _this._normal; - _this.setupTabStops(); - return _this; - } - Object.defineProperty(BufferSet.prototype, "alt", { - get: function () { - return this._alt; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(BufferSet.prototype, "active", { - get: function () { - return this._activeBuffer; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(BufferSet.prototype, "normal", { - get: function () { - return this._normal; - }, - enumerable: true, - configurable: true - }); - BufferSet.prototype.activateNormalBuffer = function () { - this._alt.clear(); - this._activeBuffer = this._normal; - this.emit('activate', this._normal); - }; - BufferSet.prototype.activateAltBuffer = function () { - this._alt.fillViewportRows(); - this._activeBuffer = this._alt; - this.emit('activate', this._alt); - }; - BufferSet.prototype.resize = function (newCols, newRows) { - this._normal.resize(newCols, newRows); - this._alt.resize(newCols, newRows); - }; - BufferSet.prototype.setupTabStops = function (i) { - this._normal.setupTabStops(i); - this._alt.setupTabStops(i); - }; - return BufferSet; -}(EventEmitter_1.EventEmitter)); -exports.BufferSet = BufferSet; - - - -},{"./Buffer":1,"./EventEmitter":7}],3:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.wcwidth = (function (opts) { - var COMBINING_BMP = [ - [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489], - [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2], - [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603], - [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670], - [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED], - [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A], - [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902], - [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D], - [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981], - [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD], - [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C], - [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D], - [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], - [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], - [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C], - [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D], - [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0], - [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48], - [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC], - [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], - [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D], - [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6], - [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], - [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC], - [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35], - [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E], - [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97], - [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030], - [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039], - [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F], - [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753], - [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD], - [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD], - [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922], - [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B], - [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34], - [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42], - [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF], - [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063], - [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F], - [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B], - [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F], - [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB], - ]; - var COMBINING_HIGH = [ - [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F], - [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169], - [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD], - [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F], - [0xE0100, 0xE01EF] - ]; - function bisearch(ucs, data) { - var min = 0; - var max = data.length - 1; - var mid; - if (ucs < data[0][0] || ucs > data[max][1]) - return false; - while (max >= min) { - mid = (min + max) >> 1; - if (ucs > data[mid][1]) - min = mid + 1; - else if (ucs < data[mid][0]) - max = mid - 1; - else - return true; - } - return false; - } - function wcwidthBMP(ucs) { - if (ucs === 0) - return opts.nul; - if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) - return opts.control; - if (bisearch(ucs, COMBINING_BMP)) - return 0; - if (isWideBMP(ucs)) { - return 2; - } - return 1; - } - function isWideBMP(ucs) { - return (ucs >= 0x1100 && (ucs <= 0x115f || - ucs === 0x2329 || - ucs === 0x232a || - (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs !== 0x303f) || - (ucs >= 0xac00 && ucs <= 0xd7a3) || - (ucs >= 0xf900 && ucs <= 0xfaff) || - (ucs >= 0xfe10 && ucs <= 0xfe19) || - (ucs >= 0xfe30 && ucs <= 0xfe6f) || - (ucs >= 0xff00 && ucs <= 0xff60) || - (ucs >= 0xffe0 && ucs <= 0xffe6))); - } - function wcwidthHigh(ucs) { - if (bisearch(ucs, COMBINING_HIGH)) - return 0; - if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) { - return 2; - } - return 1; - } - var control = opts.control | 0; - var table = null; - function init_table() { - var CODEPOINTS = 65536; - var BITWIDTH = 2; - var ITEMSIZE = 32; - var CONTAINERSIZE = CODEPOINTS * BITWIDTH / ITEMSIZE; - var CODEPOINTS_PER_ITEM = ITEMSIZE / BITWIDTH; - table = (typeof Uint32Array === 'undefined') - ? new Array(CONTAINERSIZE) - : new Uint32Array(CONTAINERSIZE); - for (var i = 0; i < CONTAINERSIZE; ++i) { - var num = 0; - var pos = CODEPOINTS_PER_ITEM; - while (pos--) - num = (num << 2) | wcwidthBMP(CODEPOINTS_PER_ITEM * i + pos); - table[i] = num; - } - return table; - } - return function (num) { - num = num | 0; - if (num < 32) - return control | 0; - if (num < 127) - return 1; - var t = table || init_table(); - if (num < 65536) - return t[num >> 4] >> ((num & 15) << 1) & 3; - return wcwidthHigh(num); - }; -})({ nul: 0, control: 0 }); - - - -},{}],4:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.CHARSETS = {}; -exports.DEFAULT_CHARSET = exports.CHARSETS['B']; -exports.CHARSETS['0'] = { - '`': '\u25c6', - 'a': '\u2592', - 'b': '\u0009', - 'c': '\u000c', - 'd': '\u000d', - 'e': '\u000a', - 'f': '\u00b0', - 'g': '\u00b1', - 'h': '\u2424', - 'i': '\u000b', - 'j': '\u2518', - 'k': '\u2510', - 'l': '\u250c', - 'm': '\u2514', - 'n': '\u253c', - 'o': '\u23ba', - 'p': '\u23bb', - 'q': '\u2500', - 'r': '\u23bc', - 's': '\u23bd', - 't': '\u251c', - 'u': '\u2524', - 'v': '\u2534', - 'w': '\u252c', - 'x': '\u2502', - 'y': '\u2264', - 'z': '\u2265', - '{': '\u03c0', - '|': '\u2260', - '}': '\u00a3', - '~': '\u00b7' -}; -exports.CHARSETS['A'] = { - '#': '£' -}; -exports.CHARSETS['B'] = null; -exports.CHARSETS['4'] = { - '#': '£', - '@': '¾', - '[': 'ij', - '\\': '½', - ']': '|', - '{': '¨', - '|': 'f', - '}': '¼', - '~': '´' -}; -exports.CHARSETS['C'] = - exports.CHARSETS['5'] = { - '[': 'Ä', - '\\': 'Ö', - ']': 'Å', - '^': 'Ü', - '`': 'é', - '{': 'ä', - '|': 'ö', - '}': 'å', - '~': 'ü' - }; -exports.CHARSETS['R'] = { - '#': '£', - '@': 'à', - '[': '°', - '\\': 'ç', - ']': '§', - '{': 'é', - '|': 'ù', - '}': 'è', - '~': '¨' -}; -exports.CHARSETS['Q'] = { - '@': 'à', - '[': 'â', - '\\': 'ç', - ']': 'ê', - '^': 'î', - '`': 'ô', - '{': 'é', - '|': 'ù', - '}': 'è', - '~': 'û' -}; -exports.CHARSETS['K'] = { - '@': '§', - '[': 'Ä', - '\\': 'Ö', - ']': 'Ü', - '{': 'ä', - '|': 'ö', - '}': 'ü', - '~': 'ß' -}; -exports.CHARSETS['Y'] = { - '#': '£', - '@': '§', - '[': '°', - '\\': 'ç', - ']': 'é', - '`': 'ù', - '{': 'à', - '|': 'ò', - '}': 'è', - '~': 'ì' -}; -exports.CHARSETS['E'] = - exports.CHARSETS['6'] = { - '@': 'Ä', - '[': 'Æ', - '\\': 'Ø', - ']': 'Å', - '^': 'Ü', - '`': 'ä', - '{': 'æ', - '|': 'ø', - '}': 'å', - '~': 'ü' - }; -exports.CHARSETS['Z'] = { - '#': '£', - '@': '§', - '[': '¡', - '\\': 'Ñ', - ']': '¿', - '{': '°', - '|': 'ñ', - '}': 'ç' -}; -exports.CHARSETS['H'] = - exports.CHARSETS['7'] = { - '@': 'É', - '[': 'Ä', - '\\': 'Ö', - ']': 'Å', - '^': 'Ü', - '`': 'é', - '{': 'ä', - '|': 'ö', - '}': 'å', - '~': 'ü' - }; -exports.CHARSETS['='] = { - '#': 'ù', - '@': 'à', - '[': 'é', - '\\': 'ç', - ']': 'ê', - '^': 'î', - '_': 'è', - '`': 'ô', - '{': 'ä', - '|': 'ö', - '}': 'ü', - '~': 'û' -}; - - - -},{}],5:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var CompositionHelper = (function () { - function CompositionHelper(textarea, compositionView, terminal) { - this.textarea = textarea; - this.compositionView = compositionView; - this.terminal = terminal; - this.isComposing = false; - this.isSendingComposition = false; - this.compositionPosition = { start: null, end: null }; - } - CompositionHelper.prototype.compositionstart = function () { - this.isComposing = true; - this.compositionPosition.start = this.textarea.value.length; - this.compositionView.textContent = ''; - this.compositionView.classList.add('active'); - }; - CompositionHelper.prototype.compositionupdate = function (ev) { - var _this = this; - this.compositionView.textContent = ev.data; - this.updateCompositionElements(); - setTimeout(function () { - _this.compositionPosition.end = _this.textarea.value.length; - }, 0); - }; - CompositionHelper.prototype.compositionend = function () { - this.finalizeComposition(true); - }; - CompositionHelper.prototype.keydown = function (ev) { - if (this.isComposing || this.isSendingComposition) { - if (ev.keyCode === 229) { - return false; - } - else if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) { - return false; - } - else { - this.finalizeComposition(false); - } - } - if (ev.keyCode === 229) { - this.handleAnyTextareaChanges(); - return false; - } - return true; - }; - CompositionHelper.prototype.finalizeComposition = function (waitForPropogation) { - var _this = this; - this.compositionView.classList.remove('active'); - this.isComposing = false; - this.clearTextareaPosition(); - if (!waitForPropogation) { - this.isSendingComposition = false; - var input = this.textarea.value.substring(this.compositionPosition.start, this.compositionPosition.end); - this.terminal.handler(input); - } - else { - var currentCompositionPosition_1 = { - start: this.compositionPosition.start, - end: this.compositionPosition.end, - }; - this.isSendingComposition = true; - setTimeout(function () { - if (_this.isSendingComposition) { - _this.isSendingComposition = false; - var input = void 0; - if (_this.isComposing) { - input = _this.textarea.value.substring(currentCompositionPosition_1.start, currentCompositionPosition_1.end); - } - else { - input = _this.textarea.value.substring(currentCompositionPosition_1.start); - } - _this.terminal.handler(input); - } - }, 0); - } - }; - CompositionHelper.prototype.handleAnyTextareaChanges = function () { - var _this = this; - var oldValue = this.textarea.value; - setTimeout(function () { - if (!_this.isComposing) { - var newValue = _this.textarea.value; - var diff = newValue.replace(oldValue, ''); - if (diff.length > 0) { - _this.terminal.handler(diff); - } - } - }, 0); - }; - CompositionHelper.prototype.updateCompositionElements = function (dontRecurse) { - var _this = this; - if (!this.isComposing) { - return; - } - if (this.terminal.buffer.isCursorInViewport) { - var cellHeight = Math.ceil(this.terminal.charMeasure.height * this.terminal.options.lineHeight); - var cursorTop = this.terminal.buffer.y * cellHeight; - var cursorLeft = this.terminal.buffer.x * this.terminal.charMeasure.width; - this.compositionView.style.left = cursorLeft + 'px'; - this.compositionView.style.top = cursorTop + 'px'; - this.compositionView.style.height = cellHeight + 'px'; - this.compositionView.style.lineHeight = cellHeight + 'px'; - var compositionViewBounds = this.compositionView.getBoundingClientRect(); - this.textarea.style.left = cursorLeft + 'px'; - this.textarea.style.top = cursorTop + 'px'; - this.textarea.style.width = compositionViewBounds.width + 'px'; - this.textarea.style.height = compositionViewBounds.height + 'px'; - this.textarea.style.lineHeight = compositionViewBounds.height + 'px'; - } - if (!dontRecurse) { - setTimeout(function () { return _this.updateCompositionElements(true); }, 0); - } - }; - ; - CompositionHelper.prototype.clearTextareaPosition = function () { - this.textarea.style.left = ''; - this.textarea.style.top = ''; - }; - ; - return CompositionHelper; -}()); -exports.CompositionHelper = CompositionHelper; - - - -},{}],6:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var C0; -(function (C0) { - C0.NUL = '\x00'; - C0.SOH = '\x01'; - C0.STX = '\x02'; - C0.ETX = '\x03'; - C0.EOT = '\x04'; - C0.ENQ = '\x05'; - C0.ACK = '\x06'; - C0.BEL = '\x07'; - C0.BS = '\x08'; - C0.HT = '\x09'; - C0.LF = '\x0a'; - C0.VT = '\x0b'; - C0.FF = '\x0c'; - C0.CR = '\x0d'; - C0.SO = '\x0e'; - C0.SI = '\x0f'; - C0.DLE = '\x10'; - C0.DC1 = '\x11'; - C0.DC2 = '\x12'; - C0.DC3 = '\x13'; - C0.DC4 = '\x14'; - C0.NAK = '\x15'; - C0.SYN = '\x16'; - C0.ETB = '\x17'; - C0.CAN = '\x18'; - C0.EM = '\x19'; - C0.SUB = '\x1a'; - C0.ESC = '\x1b'; - C0.FS = '\x1c'; - C0.GS = '\x1d'; - C0.RS = '\x1e'; - C0.US = '\x1f'; - C0.SP = '\x20'; - C0.DEL = '\x7f'; -})(C0 = exports.C0 || (exports.C0 = {})); -; - - - -},{}],7:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var EventEmitter = (function () { - function EventEmitter() { - this._events = this._events || {}; - } - EventEmitter.prototype.on = function (type, listener) { - this._events[type] = this._events[type] || []; - this._events[type].push(listener); - }; - EventEmitter.prototype.off = function (type, listener) { - if (!this._events[type]) { - return; - } - var obj = this._events[type]; - var i = obj.length; - while (i--) { - if (obj[i] === listener || obj[i].listener === listener) { - obj.splice(i, 1); - return; - } - } - }; - EventEmitter.prototype.removeAllListeners = function (type) { - if (this._events[type]) { - delete this._events[type]; - } - }; - EventEmitter.prototype.once = function (type, listener) { - function on() { - var args = Array.prototype.slice.call(arguments); - this.off(type, on); - listener.apply(this, args); - } - on.listener = listener; - this.on(type, on); - }; - EventEmitter.prototype.emit = function (type) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (!this._events[type]) { - return; - } - var obj = this._events[type]; - for (var i = 0; i < obj.length; i++) { - obj[i].apply(this, args); - } - }; - EventEmitter.prototype.listeners = function (type) { - return this._events[type] || []; - }; - EventEmitter.prototype.destroy = function () { - this._events = {}; - }; - return EventEmitter; -}()); -exports.EventEmitter = EventEmitter; - - - -},{}],8:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var EscapeSequences_1 = require("./EscapeSequences"); -var Charsets_1 = require("./Charsets"); -var Buffer_1 = require("./Buffer"); -var Types_1 = require("./renderer/Types"); -var CharWidth_1 = require("./CharWidth"); -var InputHandler = (function () { - function InputHandler(_terminal) { - this._terminal = _terminal; - } - InputHandler.prototype.addChar = function (char, code) { - if (char >= ' ') { - var ch_width = CharWidth_1.wcwidth(code); - if (this._terminal.charset && this._terminal.charset[char]) { - char = this._terminal.charset[char]; - } - var row = this._terminal.buffer.y + this._terminal.buffer.ybase; - if (!ch_width && this._terminal.buffer.x) { - if (this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1]) { - if (!this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1][Buffer_1.CHAR_DATA_WIDTH_INDEX]) { - if (this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 2]) { - this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 2][Buffer_1.CHAR_DATA_CHAR_INDEX] += char; - this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 2][3] = char.charCodeAt(0); - } - } - else { - this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1][Buffer_1.CHAR_DATA_CHAR_INDEX] += char; - this._terminal.buffer.lines.get(row)[this._terminal.buffer.x - 1][3] = char.charCodeAt(0); - } - this._terminal.updateRange(this._terminal.buffer.y); - } - return; - } - if (this._terminal.buffer.x + ch_width - 1 >= this._terminal.cols) { - if (this._terminal.wraparoundMode) { - this._terminal.buffer.x = 0; - this._terminal.buffer.y++; - if (this._terminal.buffer.y > this._terminal.buffer.scrollBottom) { - this._terminal.buffer.y--; - this._terminal.scroll(true); - } - else { - this._terminal.buffer.lines.get(this._terminal.buffer.y).isWrapped = true; - } - } - else { - if (ch_width === 2) - return; - } - } - row = this._terminal.buffer.y + this._terminal.buffer.ybase; - if (this._terminal.insertMode) { - for (var moves = 0; moves < ch_width; ++moves) { - var removed = this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).pop(); - if (removed[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0 - && this._terminal.buffer.lines.get(row)[this._terminal.cols - 2] - && this._terminal.buffer.lines.get(row)[this._terminal.cols - 2][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) { - this._terminal.buffer.lines.get(row)[this._terminal.cols - 2] = [this._terminal.curAttr, ' ', 1, ' '.charCodeAt(0)]; - } - this._terminal.buffer.lines.get(row).splice(this._terminal.buffer.x, 0, [this._terminal.curAttr, ' ', 1, ' '.charCodeAt(0)]); - } - } - this._terminal.buffer.lines.get(row)[this._terminal.buffer.x] = [this._terminal.curAttr, char, ch_width, char.charCodeAt(0)]; - this._terminal.buffer.x++; - this._terminal.updateRange(this._terminal.buffer.y); - if (ch_width === 2) { - this._terminal.buffer.lines.get(row)[this._terminal.buffer.x] = [this._terminal.curAttr, '', 0, undefined]; - this._terminal.buffer.x++; - } - } - }; - InputHandler.prototype.bell = function () { - this._terminal.bell(); - }; - InputHandler.prototype.lineFeed = function () { - if (this._terminal.convertEol) { - this._terminal.buffer.x = 0; - } - this._terminal.buffer.y++; - if (this._terminal.buffer.y > this._terminal.buffer.scrollBottom) { - this._terminal.buffer.y--; - this._terminal.scroll(); - } - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x--; - } - this._terminal.emit('linefeed'); - }; - InputHandler.prototype.carriageReturn = function () { - this._terminal.buffer.x = 0; - }; - InputHandler.prototype.backspace = function () { - if (this._terminal.buffer.x > 0) { - this._terminal.buffer.x--; - } - }; - InputHandler.prototype.tab = function () { - this._terminal.buffer.x = this._terminal.buffer.nextStop(); - }; - InputHandler.prototype.shiftOut = function () { - this._terminal.setgLevel(1); - }; - InputHandler.prototype.shiftIn = function () { - this._terminal.setgLevel(0); - }; - InputHandler.prototype.insertChars = function (params) { - var param = params[0]; - if (param < 1) - param = 1; - var row = this._terminal.buffer.y + this._terminal.buffer.ybase; - var j = this._terminal.buffer.x; - var ch = [this._terminal.eraseAttr(), ' ', 1, 32]; - while (param-- && j < this._terminal.cols) { - this._terminal.buffer.lines.get(row).splice(j++, 0, ch); - this._terminal.buffer.lines.get(row).pop(); - } - }; - InputHandler.prototype.cursorUp = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.y -= param; - if (this._terminal.buffer.y < 0) { - this._terminal.buffer.y = 0; - } - }; - InputHandler.prototype.cursorDown = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.y += param; - if (this._terminal.buffer.y >= this._terminal.rows) { - this._terminal.buffer.y = this._terminal.rows - 1; - } - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x--; - } - }; - InputHandler.prototype.cursorForward = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.x += param; - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x = this._terminal.cols - 1; - } - }; - InputHandler.prototype.cursorBackward = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x--; - } - this._terminal.buffer.x -= param; - if (this._terminal.buffer.x < 0) { - this._terminal.buffer.x = 0; - } - }; - InputHandler.prototype.cursorNextLine = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.y += param; - if (this._terminal.buffer.y >= this._terminal.rows) { - this._terminal.buffer.y = this._terminal.rows - 1; - } - this._terminal.buffer.x = 0; - }; - InputHandler.prototype.cursorPrecedingLine = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.y -= param; - if (this._terminal.buffer.y < 0) { - this._terminal.buffer.y = 0; - } - this._terminal.buffer.x = 0; - }; - InputHandler.prototype.cursorCharAbsolute = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.x = param - 1; - }; - InputHandler.prototype.cursorPosition = function (params) { - var col; - var row = params[0] - 1; - if (params.length >= 2) { - col = params[1] - 1; - } - else { - col = 0; - } - if (row < 0) { - row = 0; - } - else if (row >= this._terminal.rows) { - row = this._terminal.rows - 1; - } - if (col < 0) { - col = 0; - } - else if (col >= this._terminal.cols) { - col = this._terminal.cols - 1; - } - this._terminal.buffer.x = col; - this._terminal.buffer.y = row; - }; - InputHandler.prototype.cursorForwardTab = function (params) { - var param = params[0] || 1; - while (param--) { - this._terminal.buffer.x = this._terminal.buffer.nextStop(); - } - }; - InputHandler.prototype.eraseInDisplay = function (params) { - var j; - switch (params[0]) { - case 0: - this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y); - j = this._terminal.buffer.y + 1; - for (; j < this._terminal.rows; j++) { - this._terminal.eraseLine(j); - } - break; - case 1: - this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y); - j = this._terminal.buffer.y; - while (j--) { - this._terminal.eraseLine(j); - } - break; - case 2: - j = this._terminal.rows; - while (j--) - this._terminal.eraseLine(j); - break; - case 3: - var scrollBackSize = this._terminal.buffer.lines.length - this._terminal.rows; - if (scrollBackSize > 0) { - this._terminal.buffer.lines.trimStart(scrollBackSize); - this._terminal.buffer.ybase = Math.max(this._terminal.buffer.ybase - scrollBackSize, 0); - this._terminal.buffer.ydisp = Math.max(this._terminal.buffer.ydisp - scrollBackSize, 0); - this._terminal.emit('scroll', 0); - } - break; - } - }; - InputHandler.prototype.eraseInLine = function (params) { - switch (params[0]) { - case 0: - this._terminal.eraseRight(this._terminal.buffer.x, this._terminal.buffer.y); - break; - case 1: - this._terminal.eraseLeft(this._terminal.buffer.x, this._terminal.buffer.y); - break; - case 2: - this._terminal.eraseLine(this._terminal.buffer.y); - break; - } - }; - InputHandler.prototype.insertLines = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - var row = this._terminal.buffer.y + this._terminal.buffer.ybase; - var scrollBottomRowsOffset = this._terminal.rows - 1 - this._terminal.buffer.scrollBottom; - var scrollBottomAbsolute = this._terminal.rows - 1 + this._terminal.buffer.ybase - scrollBottomRowsOffset + 1; - while (param--) { - this._terminal.buffer.lines.splice(scrollBottomAbsolute - 1, 1); - this._terminal.buffer.lines.splice(row, 0, this._terminal.blankLine(true)); - } - this._terminal.updateRange(this._terminal.buffer.y); - this._terminal.updateRange(this._terminal.buffer.scrollBottom); - }; - InputHandler.prototype.deleteLines = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - var row = this._terminal.buffer.y + this._terminal.buffer.ybase; - var j; - j = this._terminal.rows - 1 - this._terminal.buffer.scrollBottom; - j = this._terminal.rows - 1 + this._terminal.buffer.ybase - j; - while (param--) { - this._terminal.buffer.lines.splice(row, 1); - this._terminal.buffer.lines.splice(j, 0, this._terminal.blankLine(true)); - } - this._terminal.updateRange(this._terminal.buffer.y); - this._terminal.updateRange(this._terminal.buffer.scrollBottom); - }; - InputHandler.prototype.deleteChars = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - var row = this._terminal.buffer.y + this._terminal.buffer.ybase; - var ch = [this._terminal.eraseAttr(), ' ', 1, 32]; - while (param--) { - this._terminal.buffer.lines.get(row).splice(this._terminal.buffer.x, 1); - this._terminal.buffer.lines.get(row).push(ch); - } - this._terminal.updateRange(this._terminal.buffer.y); - }; - InputHandler.prototype.scrollUp = function (params) { - var param = params[0] || 1; - while (param--) { - this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollTop, 1); - this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollBottom, 0, this._terminal.blankLine()); - } - this._terminal.updateRange(this._terminal.buffer.scrollTop); - this._terminal.updateRange(this._terminal.buffer.scrollBottom); - }; - InputHandler.prototype.scrollDown = function (params) { - var param = params[0] || 1; - while (param--) { - this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollBottom, 1); - this._terminal.buffer.lines.splice(this._terminal.buffer.ybase + this._terminal.buffer.scrollTop, 0, this._terminal.blankLine()); - } - this._terminal.updateRange(this._terminal.buffer.scrollTop); - this._terminal.updateRange(this._terminal.buffer.scrollBottom); - }; - InputHandler.prototype.eraseChars = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - var row = this._terminal.buffer.y + this._terminal.buffer.ybase; - var j = this._terminal.buffer.x; - var ch = [this._terminal.eraseAttr(), ' ', 1, 32]; - while (param-- && j < this._terminal.cols) { - this._terminal.buffer.lines.get(row)[j++] = ch; - } - }; - InputHandler.prototype.cursorBackwardTab = function (params) { - var param = params[0] || 1; - while (param--) { - this._terminal.buffer.x = this._terminal.buffer.prevStop(); - } - }; - InputHandler.prototype.charPosAbsolute = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.x = param - 1; - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x = this._terminal.cols - 1; - } - }; - InputHandler.prototype.HPositionRelative = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.x += param; - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x = this._terminal.cols - 1; - } - }; - InputHandler.prototype.repeatPrecedingCharacter = function (params) { - var param = params[0] || 1; - var line = this._terminal.buffer.lines.get(this._terminal.buffer.ybase + this._terminal.buffer.y); - var ch = line[this._terminal.buffer.x - 1] || [this._terminal.defAttr, ' ', 1, 32]; - while (param--) { - line[this._terminal.buffer.x++] = ch; - } - }; - InputHandler.prototype.sendDeviceAttributes = function (params) { - if (params[0] > 0) { - return; - } - if (!this._terminal.prefix) { - if (this._terminal.is('xterm') || this._terminal.is('rxvt-unicode') || this._terminal.is('screen')) { - this._terminal.send(EscapeSequences_1.C0.ESC + '[?1;2c'); - } - else if (this._terminal.is('linux')) { - this._terminal.send(EscapeSequences_1.C0.ESC + '[?6c'); - } - } - else if (this._terminal.prefix === '>') { - if (this._terminal.is('xterm')) { - this._terminal.send(EscapeSequences_1.C0.ESC + '[>0;276;0c'); - } - else if (this._terminal.is('rxvt-unicode')) { - this._terminal.send(EscapeSequences_1.C0.ESC + '[>85;95;0c'); - } - else if (this._terminal.is('linux')) { - this._terminal.send(params[0] + 'c'); - } - else if (this._terminal.is('screen')) { - this._terminal.send(EscapeSequences_1.C0.ESC + '[>83;40003;0c'); - } - } - }; - InputHandler.prototype.linePosAbsolute = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.y = param - 1; - if (this._terminal.buffer.y >= this._terminal.rows) { - this._terminal.buffer.y = this._terminal.rows - 1; - } - }; - InputHandler.prototype.VPositionRelative = function (params) { - var param = params[0]; - if (param < 1) { - param = 1; - } - this._terminal.buffer.y += param; - if (this._terminal.buffer.y >= this._terminal.rows) { - this._terminal.buffer.y = this._terminal.rows - 1; - } - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x--; - } - }; - InputHandler.prototype.HVPosition = function (params) { - if (params[0] < 1) - params[0] = 1; - if (params[1] < 1) - params[1] = 1; - this._terminal.buffer.y = params[0] - 1; - if (this._terminal.buffer.y >= this._terminal.rows) { - this._terminal.buffer.y = this._terminal.rows - 1; - } - this._terminal.buffer.x = params[1] - 1; - if (this._terminal.buffer.x >= this._terminal.cols) { - this._terminal.buffer.x = this._terminal.cols - 1; - } - }; - InputHandler.prototype.tabClear = function (params) { - var param = params[0]; - if (param <= 0) { - delete this._terminal.buffer.tabs[this._terminal.buffer.x]; - } - else if (param === 3) { - this._terminal.buffer.tabs = {}; - } - }; - InputHandler.prototype.setMode = function (params) { - if (params.length > 1) { - for (var i = 0; i < params.length; i++) { - this.setMode([params[i]]); - } - return; - } - if (!this._terminal.prefix) { - switch (params[0]) { - case 4: - this._terminal.insertMode = true; - break; - case 20: - break; - } - } - else if (this._terminal.prefix === '?') { - switch (params[0]) { - case 1: - this._terminal.applicationCursor = true; - break; - case 2: - this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET); - this._terminal.setgCharset(1, Charsets_1.DEFAULT_CHARSET); - this._terminal.setgCharset(2, Charsets_1.DEFAULT_CHARSET); - this._terminal.setgCharset(3, Charsets_1.DEFAULT_CHARSET); - break; - case 3: - this._terminal.savedCols = this._terminal.cols; - this._terminal.resize(132, this._terminal.rows); - break; - case 6: - this._terminal.originMode = true; - break; - case 7: - this._terminal.wraparoundMode = true; - break; - case 12: - break; - case 66: - this._terminal.log('Serial port requested application keypad.'); - this._terminal.applicationKeypad = true; - this._terminal.viewport.syncScrollArea(); - break; - case 9: - case 1000: - case 1002: - case 1003: - this._terminal.x10Mouse = params[0] === 9; - this._terminal.vt200Mouse = params[0] === 1000; - this._terminal.normalMouse = params[0] > 1000; - this._terminal.mouseEvents = true; - this._terminal.element.classList.add('enable-mouse-events'); - this._terminal.selectionManager.disable(); - this._terminal.log('Binding to mouse events.'); - break; - case 1004: - this._terminal.sendFocus = true; - break; - case 1005: - this._terminal.utfMouse = true; - break; - case 1006: - this._terminal.sgrMouse = true; - break; - case 1015: - this._terminal.urxvtMouse = true; - break; - case 25: - this._terminal.cursorHidden = false; - break; - case 1049: - case 47: - case 1047: - this._terminal.buffers.activateAltBuffer(); - this._terminal.selectionManager.setBuffer(this._terminal.buffer); - this._terminal.viewport.syncScrollArea(); - this._terminal.showCursor(); - break; - case 2004: - this._terminal.bracketedPasteMode = true; - break; - } - } - }; - InputHandler.prototype.resetMode = function (params) { - if (params.length > 1) { - for (var i = 0; i < params.length; i++) { - this.resetMode([params[i]]); - } - return; - } - if (!this._terminal.prefix) { - switch (params[0]) { - case 4: - this._terminal.insertMode = false; - break; - case 20: - break; - } - } - else if (this._terminal.prefix === '?') { - switch (params[0]) { - case 1: - this._terminal.applicationCursor = false; - break; - case 3: - if (this._terminal.cols === 132 && this._terminal.savedCols) { - this._terminal.resize(this._terminal.savedCols, this._terminal.rows); - } - delete this._terminal.savedCols; - break; - case 6: - this._terminal.originMode = false; - break; - case 7: - this._terminal.wraparoundMode = false; - break; - case 12: - break; - case 66: - this._terminal.log('Switching back to normal keypad.'); - this._terminal.applicationKeypad = false; - this._terminal.viewport.syncScrollArea(); - break; - case 9: - case 1000: - case 1002: - case 1003: - this._terminal.x10Mouse = false; - this._terminal.vt200Mouse = false; - this._terminal.normalMouse = false; - this._terminal.mouseEvents = false; - this._terminal.element.classList.remove('enable-mouse-events'); - this._terminal.selectionManager.enable(); - break; - case 1004: - this._terminal.sendFocus = false; - break; - case 1005: - this._terminal.utfMouse = false; - break; - case 1006: - this._terminal.sgrMouse = false; - break; - case 1015: - this._terminal.urxvtMouse = false; - break; - case 25: - this._terminal.cursorHidden = true; - break; - case 1049: - case 47: - case 1047: - this._terminal.buffers.activateNormalBuffer(); - this._terminal.selectionManager.setBuffer(this._terminal.buffer); - this._terminal.refresh(0, this._terminal.rows - 1); - this._terminal.viewport.syncScrollArea(); - this._terminal.showCursor(); - break; - case 2004: - this._terminal.bracketedPasteMode = false; - break; - } - } - }; - InputHandler.prototype.charAttributes = function (params) { - if (params.length === 1 && params[0] === 0) { - this._terminal.curAttr = this._terminal.defAttr; - return; - } - var l = params.length; - var flags = this._terminal.curAttr >> 18; - var fg = (this._terminal.curAttr >> 9) & 0x1ff; - var bg = this._terminal.curAttr & 0x1ff; - var p; - for (var i = 0; i < l; i++) { - p = params[i]; - if (p >= 30 && p <= 37) { - fg = p - 30; - } - else if (p >= 40 && p <= 47) { - bg = p - 40; - } - else if (p >= 90 && p <= 97) { - p += 8; - fg = p - 90; - } - else if (p >= 100 && p <= 107) { - p += 8; - bg = p - 100; - } - else if (p === 0) { - flags = this._terminal.defAttr >> 18; - fg = (this._terminal.defAttr >> 9) & 0x1ff; - bg = this._terminal.defAttr & 0x1ff; - } - else if (p === 1) { - flags |= Types_1.FLAGS.BOLD; - } - else if (p === 4) { - flags |= Types_1.FLAGS.UNDERLINE; - } - else if (p === 5) { - flags |= Types_1.FLAGS.BLINK; - } - else if (p === 7) { - flags |= Types_1.FLAGS.INVERSE; - } - else if (p === 8) { - flags |= Types_1.FLAGS.INVISIBLE; - } - else if (p === 2) { - flags |= Types_1.FLAGS.DIM; - } - else if (p === 22) { - flags &= ~Types_1.FLAGS.BOLD; - flags &= ~Types_1.FLAGS.DIM; - } - else if (p === 24) { - flags &= ~Types_1.FLAGS.UNDERLINE; - } - else if (p === 25) { - flags &= ~Types_1.FLAGS.BLINK; - } - else if (p === 27) { - flags &= ~Types_1.FLAGS.INVERSE; - } - else if (p === 28) { - flags &= ~Types_1.FLAGS.INVISIBLE; - } - else if (p === 39) { - fg = (this._terminal.defAttr >> 9) & 0x1ff; - } - else if (p === 49) { - bg = this._terminal.defAttr & 0x1ff; - } - else if (p === 38) { - if (params[i + 1] === 2) { - i += 2; - fg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff); - if (fg === -1) - fg = 0x1ff; - i += 2; - } - else if (params[i + 1] === 5) { - i += 2; - p = params[i] & 0xff; - fg = p; - } - } - else if (p === 48) { - if (params[i + 1] === 2) { - i += 2; - bg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff); - if (bg === -1) - bg = 0x1ff; - i += 2; - } - else if (params[i + 1] === 5) { - i += 2; - p = params[i] & 0xff; - bg = p; - } - } - else if (p === 100) { - fg = (this._terminal.defAttr >> 9) & 0x1ff; - bg = this._terminal.defAttr & 0x1ff; - } - else { - this._terminal.error('Unknown SGR attribute: %d.', p); - } - } - this._terminal.curAttr = (flags << 18) | (fg << 9) | bg; - }; - InputHandler.prototype.deviceStatus = function (params) { - if (!this._terminal.prefix) { - switch (params[0]) { - case 5: - this._terminal.send(EscapeSequences_1.C0.ESC + '[0n'); - break; - case 6: - this._terminal.send(EscapeSequences_1.C0.ESC + '[' - + (this._terminal.buffer.y + 1) - + ';' - + (this._terminal.buffer.x + 1) - + 'R'); - break; - } - } - else if (this._terminal.prefix === '?') { - switch (params[0]) { - case 6: - this._terminal.send(EscapeSequences_1.C0.ESC + '[?' - + (this._terminal.buffer.y + 1) - + ';' - + (this._terminal.buffer.x + 1) - + 'R'); - break; - case 15: - break; - case 25: - break; - case 26: - break; - case 53: - break; - } - } - }; - InputHandler.prototype.softReset = function (params) { - this._terminal.cursorHidden = false; - this._terminal.insertMode = false; - this._terminal.originMode = false; - this._terminal.wraparoundMode = true; - this._terminal.applicationKeypad = false; - this._terminal.viewport.syncScrollArea(); - this._terminal.applicationCursor = false; - this._terminal.buffer.scrollTop = 0; - this._terminal.buffer.scrollBottom = this._terminal.rows - 1; - this._terminal.curAttr = this._terminal.defAttr; - this._terminal.buffer.x = this._terminal.buffer.y = 0; - this._terminal.charset = null; - this._terminal.glevel = 0; - this._terminal.charsets = [null]; - }; - InputHandler.prototype.setCursorStyle = function (params) { - var param = params[0] < 1 ? 1 : params[0]; - switch (param) { - case 1: - case 2: - this._terminal.setOption('cursorStyle', 'block'); - break; - case 3: - case 4: - this._terminal.setOption('cursorStyle', 'underline'); - break; - case 5: - case 6: - this._terminal.setOption('cursorStyle', 'bar'); - break; - } - var isBlinking = param % 2 === 1; - this._terminal.setOption('cursorBlink', isBlinking); - }; - InputHandler.prototype.setScrollRegion = function (params) { - if (this._terminal.prefix) - return; - this._terminal.buffer.scrollTop = (params[0] || 1) - 1; - this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1; - this._terminal.buffer.x = 0; - this._terminal.buffer.y = 0; - }; - InputHandler.prototype.saveCursor = function (params) { - this._terminal.buffer.savedX = this._terminal.buffer.x; - this._terminal.buffer.savedY = this._terminal.buffer.y; - }; - InputHandler.prototype.restoreCursor = function (params) { - this._terminal.buffer.x = this._terminal.buffer.savedX || 0; - this._terminal.buffer.y = this._terminal.buffer.savedY || 0; - }; - return InputHandler; -}()); -exports.InputHandler = InputHandler; - - - -},{"./Buffer":1,"./CharWidth":3,"./Charsets":4,"./EscapeSequences":6,"./renderer/Types":27}],9:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var Types_1 = require("./Types"); -var MouseZoneManager_1 = require("./input/MouseZoneManager"); -var EventEmitter_1 = require("./EventEmitter"); -var protocolClause = '(https?:\\/\\/)'; -var domainCharacterSet = '[\\da-z\\.-]+'; -var negatedDomainCharacterSet = '[^\\da-z\\.-]+'; -var domainBodyClause = '(' + domainCharacterSet + ')'; -var tldClause = '([a-z\\.]{2,6})'; -var ipClause = '((\\d{1,3}\\.){3}\\d{1,3})'; -var localHostClause = '(localhost)'; -var portClause = '(:\\d{1,5})'; -var hostClause = '((' + domainBodyClause + '\\.' + tldClause + ')|' + ipClause + '|' + localHostClause + ')' + portClause + '?'; -var pathClause = '(\\/[\\/\\w\\.\\-%~]*)*'; -var queryStringHashFragmentCharacterSet = '[0-9\\w\\[\\]\\(\\)\\/\\?\\!#@$%&\'*+,:;~\\=\\.\\-]*'; -var queryStringClause = '(\\?' + queryStringHashFragmentCharacterSet + ')?'; -var hashFragmentClause = '(#' + queryStringHashFragmentCharacterSet + ')?'; -var negatedPathCharacterSet = '[^\\/\\w\\.\\-%]+'; -var bodyClause = hostClause + pathClause + queryStringClause + hashFragmentClause; -var start = '(?:^|' + negatedDomainCharacterSet + ')('; -var end = ')($|' + negatedPathCharacterSet + ')'; -var strictUrlRegex = new RegExp(start + protocolClause + bodyClause + end); -var HYPERTEXT_LINK_MATCHER_ID = 0; -var Linkifier = (function (_super) { - __extends(Linkifier, _super); - function Linkifier(_terminal) { - var _this = _super.call(this) || this; - _this._terminal = _terminal; - _this._linkMatchers = []; - _this._nextLinkMatcherId = HYPERTEXT_LINK_MATCHER_ID; - _this._rowsToLinkify = { - start: null, - end: null - }; - _this.registerLinkMatcher(strictUrlRegex, null, { matchIndex: 1 }); - return _this; - } - Linkifier.prototype.attachToDom = function (mouseZoneManager) { - this._mouseZoneManager = mouseZoneManager; - }; - Linkifier.prototype.linkifyRows = function (start, end) { - var _this = this; - if (!this._mouseZoneManager) { - return; - } - if (!this._rowsToLinkify.start) { - this._rowsToLinkify.start = start; - this._rowsToLinkify.end = end; - } - else { - this._rowsToLinkify.start = this._rowsToLinkify.start < start ? this._rowsToLinkify.start : start; - this._rowsToLinkify.end = this._rowsToLinkify.end > end ? this._rowsToLinkify.end : end; - } - this._mouseZoneManager.clearAll(start, end); - if (this._rowsTimeoutId) { - clearTimeout(this._rowsTimeoutId); - } - this._rowsTimeoutId = setTimeout(function () { return _this._linkifyRows(); }, Linkifier.TIME_BEFORE_LINKIFY); - }; - Linkifier.prototype._linkifyRows = function () { - this._rowsTimeoutId = null; - for (var i = this._rowsToLinkify.start; i <= this._rowsToLinkify.end; i++) { - this._linkifyRow(i); - } - this._rowsToLinkify.start = null; - this._rowsToLinkify.end = null; - }; - Linkifier.prototype.setHypertextLinkHandler = function (handler) { - this._linkMatchers[HYPERTEXT_LINK_MATCHER_ID].handler = handler; - }; - Linkifier.prototype.setHypertextValidationCallback = function (callback) { - this._linkMatchers[HYPERTEXT_LINK_MATCHER_ID].validationCallback = callback; - }; - Linkifier.prototype.registerLinkMatcher = function (regex, handler, options) { - if (options === void 0) { options = {}; } - if (this._nextLinkMatcherId !== HYPERTEXT_LINK_MATCHER_ID && !handler) { - throw new Error('handler must be defined'); - } - var matcher = { - id: this._nextLinkMatcherId++, - regex: regex, - handler: handler, - matchIndex: options.matchIndex, - validationCallback: options.validationCallback, - hoverTooltipCallback: options.tooltipCallback, - hoverLeaveCallback: options.leaveCallback, - priority: options.priority || 0 - }; - this._addLinkMatcherToList(matcher); - return matcher.id; - }; - Linkifier.prototype._addLinkMatcherToList = function (matcher) { - if (this._linkMatchers.length === 0) { - this._linkMatchers.push(matcher); - return; - } - for (var i = this._linkMatchers.length - 1; i >= 0; i--) { - if (matcher.priority <= this._linkMatchers[i].priority) { - this._linkMatchers.splice(i + 1, 0, matcher); - return; - } - } - this._linkMatchers.splice(0, 0, matcher); - }; - Linkifier.prototype.deregisterLinkMatcher = function (matcherId) { - for (var i = 1; i < this._linkMatchers.length; i++) { - if (this._linkMatchers[i].id === matcherId) { - this._linkMatchers.splice(i, 1); - return true; - } - } - return false; - }; - Linkifier.prototype._linkifyRow = function (rowIndex) { - var absoluteRowIndex = this._terminal.buffer.ydisp + rowIndex; - if (absoluteRowIndex >= this._terminal.buffer.lines.length) { - return; - } - var text = this._terminal.buffer.translateBufferLineToString(absoluteRowIndex, false); - for (var i = 0; i < this._linkMatchers.length; i++) { - this._doLinkifyRow(rowIndex, text, this._linkMatchers[i]); - } - }; - Linkifier.prototype._doLinkifyRow = function (rowIndex, text, matcher, offset) { - var _this = this; - if (offset === void 0) { offset = 0; } - var result = []; - var isHttpLinkMatcher = matcher.id === HYPERTEXT_LINK_MATCHER_ID; - var match = text.match(matcher.regex); - if (!match || match.length === 0) { - return; - } - var uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex]; - var index = text.indexOf(uri); - if (matcher.validationCallback) { - matcher.validationCallback(uri, function (isValid) { - if (_this._rowsTimeoutId) { - return; - } - if (isValid) { - _this._addLink(offset + index, rowIndex, uri, matcher); - } - }); - } - else { - this._addLink(offset + index, rowIndex, uri, matcher); - } - var remainingStartIndex = index + uri.length; - var remainingText = text.substr(remainingStartIndex); - if (remainingText.length > 0) { - this._doLinkifyRow(rowIndex, remainingText, matcher, offset + remainingStartIndex); - } - }; - Linkifier.prototype._addLink = function (x, y, uri, matcher) { - var _this = this; - this._mouseZoneManager.add(new MouseZoneManager_1.MouseZone(x + 1, x + 1 + uri.length, y + 1, function (e) { - if (matcher.handler) { - return matcher.handler(e, uri); - } - window.open(uri, '_blank'); - }, function (e) { - _this.emit(Types_1.LinkHoverEventTypes.HOVER, { x: x, y: y, length: uri.length }); - _this._terminal.element.style.cursor = 'pointer'; - }, function (e) { - _this.emit(Types_1.LinkHoverEventTypes.TOOLTIP, { x: x, y: y, length: uri.length }); - if (matcher.hoverTooltipCallback) { - matcher.hoverTooltipCallback(e, uri); - } - }, function () { - _this.emit(Types_1.LinkHoverEventTypes.LEAVE, { x: x, y: y, length: uri.length }); - _this._terminal.element.style.cursor = ''; - if (matcher.hoverLeaveCallback) { - matcher.hoverLeaveCallback(); - } - })); - }; - Linkifier.TIME_BEFORE_LINKIFY = 200; - return Linkifier; -}(EventEmitter_1.EventEmitter)); -exports.Linkifier = Linkifier; - - - -},{"./EventEmitter":7,"./Types":14,"./input/MouseZoneManager":17}],10:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var EscapeSequences_1 = require("./EscapeSequences"); -var Charsets_1 = require("./Charsets"); -var normalStateHandler = {}; -normalStateHandler[EscapeSequences_1.C0.BEL] = function (parser, handler) { return handler.bell(); }; -normalStateHandler[EscapeSequences_1.C0.LF] = function (parser, handler) { return handler.lineFeed(); }; -normalStateHandler[EscapeSequences_1.C0.VT] = normalStateHandler[EscapeSequences_1.C0.LF]; -normalStateHandler[EscapeSequences_1.C0.FF] = normalStateHandler[EscapeSequences_1.C0.LF]; -normalStateHandler[EscapeSequences_1.C0.CR] = function (parser, handler) { return handler.carriageReturn(); }; -normalStateHandler[EscapeSequences_1.C0.BS] = function (parser, handler) { return handler.backspace(); }; -normalStateHandler[EscapeSequences_1.C0.HT] = function (parser, handler) { return handler.tab(); }; -normalStateHandler[EscapeSequences_1.C0.SO] = function (parser, handler) { return handler.shiftOut(); }; -normalStateHandler[EscapeSequences_1.C0.SI] = function (parser, handler) { return handler.shiftIn(); }; -normalStateHandler[EscapeSequences_1.C0.ESC] = function (parser, handler) { return parser.setState(ParserState.ESCAPED); }; -var escapedStateHandler = {}; -escapedStateHandler['['] = function (parser, terminal) { - terminal.params = []; - terminal.currentParam = 0; - parser.setState(ParserState.CSI_PARAM); -}; -escapedStateHandler[']'] = function (parser, terminal) { - terminal.params = []; - terminal.currentParam = 0; - parser.setState(ParserState.OSC); -}; -escapedStateHandler['P'] = function (parser, terminal) { - terminal.params = []; - terminal.currentParam = 0; - parser.setState(ParserState.DCS); -}; -escapedStateHandler['_'] = function (parser, terminal) { - parser.setState(ParserState.IGNORE); -}; -escapedStateHandler['^'] = function (parser, terminal) { - parser.setState(ParserState.IGNORE); -}; -escapedStateHandler['c'] = function (parser, terminal) { - terminal.reset(); -}; -escapedStateHandler['E'] = function (parser, terminal) { - terminal.buffer.x = 0; - terminal.index(); - parser.setState(ParserState.NORMAL); -}; -escapedStateHandler['D'] = function (parser, terminal) { - terminal.index(); - parser.setState(ParserState.NORMAL); -}; -escapedStateHandler['M'] = function (parser, terminal) { - terminal.reverseIndex(); - parser.setState(ParserState.NORMAL); -}; -escapedStateHandler['%'] = function (parser, terminal) { - terminal.setgLevel(0); - terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET); - parser.setState(ParserState.NORMAL); - parser.skipNextChar(); -}; -escapedStateHandler[EscapeSequences_1.C0.CAN] = function (parser) { return parser.setState(ParserState.NORMAL); }; -var csiParamStateHandler = {}; -csiParamStateHandler['?'] = function (parser) { return parser.setPrefix('?'); }; -csiParamStateHandler['>'] = function (parser) { return parser.setPrefix('>'); }; -csiParamStateHandler['!'] = function (parser) { return parser.setPrefix('!'); }; -csiParamStateHandler['0'] = function (parser) { return parser.setParam(parser.getParam() * 10); }; -csiParamStateHandler['1'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 1); }; -csiParamStateHandler['2'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 2); }; -csiParamStateHandler['3'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 3); }; -csiParamStateHandler['4'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 4); }; -csiParamStateHandler['5'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 5); }; -csiParamStateHandler['6'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 6); }; -csiParamStateHandler['7'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 7); }; -csiParamStateHandler['8'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 8); }; -csiParamStateHandler['9'] = function (parser) { return parser.setParam(parser.getParam() * 10 + 9); }; -csiParamStateHandler['$'] = function (parser) { return parser.setPostfix('$'); }; -csiParamStateHandler['"'] = function (parser) { return parser.setPostfix('"'); }; -csiParamStateHandler[' '] = function (parser) { return parser.setPostfix(' '); }; -csiParamStateHandler['\''] = function (parser) { return parser.setPostfix('\''); }; -csiParamStateHandler[';'] = function (parser) { return parser.finalizeParam(); }; -csiParamStateHandler[EscapeSequences_1.C0.CAN] = function (parser) { return parser.setState(ParserState.NORMAL); }; -var csiStateHandler = {}; -csiStateHandler['@'] = function (handler, params, prefix) { return handler.insertChars(params); }; -csiStateHandler['A'] = function (handler, params, prefix) { return handler.cursorUp(params); }; -csiStateHandler['B'] = function (handler, params, prefix) { return handler.cursorDown(params); }; -csiStateHandler['C'] = function (handler, params, prefix) { return handler.cursorForward(params); }; -csiStateHandler['D'] = function (handler, params, prefix) { return handler.cursorBackward(params); }; -csiStateHandler['E'] = function (handler, params, prefix) { return handler.cursorNextLine(params); }; -csiStateHandler['F'] = function (handler, params, prefix) { return handler.cursorPrecedingLine(params); }; -csiStateHandler['G'] = function (handler, params, prefix) { return handler.cursorCharAbsolute(params); }; -csiStateHandler['H'] = function (handler, params, prefix) { return handler.cursorPosition(params); }; -csiStateHandler['I'] = function (handler, params, prefix) { return handler.cursorForwardTab(params); }; -csiStateHandler['J'] = function (handler, params, prefix) { return handler.eraseInDisplay(params); }; -csiStateHandler['K'] = function (handler, params, prefix) { return handler.eraseInLine(params); }; -csiStateHandler['L'] = function (handler, params, prefix) { return handler.insertLines(params); }; -csiStateHandler['M'] = function (handler, params, prefix) { return handler.deleteLines(params); }; -csiStateHandler['P'] = function (handler, params, prefix) { return handler.deleteChars(params); }; -csiStateHandler['S'] = function (handler, params, prefix) { return handler.scrollUp(params); }; -csiStateHandler['T'] = function (handler, params, prefix) { - if (params.length < 2 && !prefix) { - handler.scrollDown(params); - } -}; -csiStateHandler['X'] = function (handler, params, prefix) { return handler.eraseChars(params); }; -csiStateHandler['Z'] = function (handler, params, prefix) { return handler.cursorBackwardTab(params); }; -csiStateHandler['`'] = function (handler, params, prefix) { return handler.charPosAbsolute(params); }; -csiStateHandler['a'] = function (handler, params, prefix) { return handler.HPositionRelative(params); }; -csiStateHandler['b'] = function (handler, params, prefix) { return handler.repeatPrecedingCharacter(params); }; -csiStateHandler['c'] = function (handler, params, prefix) { return handler.sendDeviceAttributes(params); }; -csiStateHandler['d'] = function (handler, params, prefix) { return handler.linePosAbsolute(params); }; -csiStateHandler['e'] = function (handler, params, prefix) { return handler.VPositionRelative(params); }; -csiStateHandler['f'] = function (handler, params, prefix) { return handler.HVPosition(params); }; -csiStateHandler['g'] = function (handler, params, prefix) { return handler.tabClear(params); }; -csiStateHandler['h'] = function (handler, params, prefix) { return handler.setMode(params); }; -csiStateHandler['l'] = function (handler, params, prefix) { return handler.resetMode(params); }; -csiStateHandler['m'] = function (handler, params, prefix) { return handler.charAttributes(params); }; -csiStateHandler['n'] = function (handler, params, prefix) { return handler.deviceStatus(params); }; -csiStateHandler['p'] = function (handler, params, prefix) { - switch (prefix) { - case '!': - handler.softReset(params); - break; - } -}; -csiStateHandler['q'] = function (handler, params, prefix, postfix) { - if (postfix === ' ') { - handler.setCursorStyle(params); - } -}; -csiStateHandler['r'] = function (handler, params) { return handler.setScrollRegion(params); }; -csiStateHandler['s'] = function (handler, params) { return handler.saveCursor(params); }; -csiStateHandler['u'] = function (handler, params) { return handler.restoreCursor(params); }; -csiStateHandler[EscapeSequences_1.C0.CAN] = function (handler, params, prefix, postfix, parser) { return parser.setState(ParserState.NORMAL); }; -var ParserState; -(function (ParserState) { - ParserState[ParserState["NORMAL"] = 0] = "NORMAL"; - ParserState[ParserState["ESCAPED"] = 1] = "ESCAPED"; - ParserState[ParserState["CSI_PARAM"] = 2] = "CSI_PARAM"; - ParserState[ParserState["CSI"] = 3] = "CSI"; - ParserState[ParserState["OSC"] = 4] = "OSC"; - ParserState[ParserState["CHARSET"] = 5] = "CHARSET"; - ParserState[ParserState["DCS"] = 6] = "DCS"; - ParserState[ParserState["IGNORE"] = 7] = "IGNORE"; -})(ParserState = exports.ParserState || (exports.ParserState = {})); -var Parser = (function () { - function Parser(_inputHandler, _terminal) { - this._inputHandler = _inputHandler; - this._terminal = _terminal; - this._state = ParserState.NORMAL; - } - Parser.prototype.parse = function (data) { - var l = data.length; - var j; - var cs; - var ch; - var code; - var low; - var cursorStartX = this._terminal.buffer.x; - var cursorStartY = this._terminal.buffer.y; - if (this._terminal.debug) { - this._terminal.log('data: ' + data); - } - this._position = 0; - if (this._terminal.surrogate_high) { - data = this._terminal.surrogate_high + data; - this._terminal.surrogate_high = ''; - } - for (; this._position < l; this._position++) { - ch = data[this._position]; - code = data.charCodeAt(this._position); - if (0xD800 <= code && code <= 0xDBFF) { - low = data.charCodeAt(this._position + 1); - if (isNaN(low)) { - this._terminal.surrogate_high = ch; - continue; - } - code = ((code - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; - ch += data.charAt(this._position + 1); - } - if (0xDC00 <= code && code <= 0xDFFF) - continue; - switch (this._state) { - case ParserState.NORMAL: - if (ch in normalStateHandler) { - normalStateHandler[ch](this, this._inputHandler); - } - else { - this._inputHandler.addChar(ch, code); - } - break; - case ParserState.ESCAPED: - if (ch in escapedStateHandler) { - escapedStateHandler[ch](this, this._terminal); - break; - } - switch (ch) { - case '(': - case ')': - case '*': - case '+': - case '-': - case '.': - switch (ch) { - case '(': - this._terminal.gcharset = 0; - break; - case ')': - this._terminal.gcharset = 1; - break; - case '*': - this._terminal.gcharset = 2; - break; - case '+': - this._terminal.gcharset = 3; - break; - case '-': - this._terminal.gcharset = 1; - break; - case '.': - this._terminal.gcharset = 2; - break; - } - this._state = ParserState.CHARSET; - break; - case '/': - this._terminal.gcharset = 3; - this._state = ParserState.CHARSET; - this._position--; - break; - case 'N': - break; - case 'O': - break; - case 'n': - this._terminal.setgLevel(2); - break; - case 'o': - this._terminal.setgLevel(3); - break; - case '|': - this._terminal.setgLevel(3); - break; - case '}': - this._terminal.setgLevel(2); - break; - case '~': - this._terminal.setgLevel(1); - break; - case '7': - this._inputHandler.saveCursor(); - this._state = ParserState.NORMAL; - break; - case '8': - this._inputHandler.restoreCursor(); - this._state = ParserState.NORMAL; - break; - case '#': - this._state = ParserState.NORMAL; - this._position++; - break; - case 'H': - this._terminal.tabSet(); - this._state = ParserState.NORMAL; - break; - case '=': - this._terminal.log('Serial port requested application keypad.'); - this._terminal.applicationKeypad = true; - if (this._terminal.viewport) { - this._terminal.viewport.syncScrollArea(); - } - this._state = ParserState.NORMAL; - break; - case '>': - this._terminal.log('Switching back to normal keypad.'); - this._terminal.applicationKeypad = false; - if (this._terminal.viewport) { - this._terminal.viewport.syncScrollArea(); - } - this._state = ParserState.NORMAL; - break; - default: - this._state = ParserState.NORMAL; - this._terminal.error('Unknown ESC control: %s.', ch); - break; - } - break; - case ParserState.CHARSET: - if (ch in Charsets_1.CHARSETS) { - cs = Charsets_1.CHARSETS[ch]; - if (ch === '/') { - this.skipNextChar(); - } - } - else { - cs = Charsets_1.DEFAULT_CHARSET; - } - this._terminal.setgCharset(this._terminal.gcharset, cs); - this._terminal.gcharset = null; - this._state = ParserState.NORMAL; - break; - case ParserState.OSC: - if (ch === EscapeSequences_1.C0.ESC || ch === EscapeSequences_1.C0.BEL) { - if (ch === EscapeSequences_1.C0.ESC) - this._position++; - this._terminal.params.push(this._terminal.currentParam); - switch (this._terminal.params[0]) { - case 0: - case 1: - case 2: - if (this._terminal.params[1]) { - this._terminal.title = this._terminal.params[1]; - this._terminal.handleTitle(this._terminal.title); - } - break; - case 3: - break; - case 4: - case 5: - break; - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - break; - case 46: - break; - case 50: - break; - case 51: - break; - case 52: - break; - case 104: - case 105: - case 110: - case 111: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - break; - } - this._terminal.params = []; - this._terminal.currentParam = 0; - this._state = ParserState.NORMAL; - } - else { - if (!this._terminal.params.length) { - if (ch >= '0' && ch <= '9') { - this._terminal.currentParam = - this._terminal.currentParam * 10 + ch.charCodeAt(0) - 48; - } - else if (ch === ';') { - this._terminal.params.push(this._terminal.currentParam); - this._terminal.currentParam = ''; - } - } - else { - this._terminal.currentParam += ch; - } - } - break; - case ParserState.CSI_PARAM: - if (ch in csiParamStateHandler) { - csiParamStateHandler[ch](this); - break; - } - this.finalizeParam(); - this._state = ParserState.CSI; - case ParserState.CSI: - if (ch in csiStateHandler) { - if (this._terminal.debug) { - this._terminal.log("CSI " + (this._terminal.prefix ? this._terminal.prefix : '') + " " + (this._terminal.params ? this._terminal.params.join(';') : '') + " " + (this._terminal.postfix ? this._terminal.postfix : '') + " " + ch); - } - csiStateHandler[ch](this._inputHandler, this._terminal.params, this._terminal.prefix, this._terminal.postfix, this); - } - else { - this._terminal.error('Unknown CSI code: %s.', ch); - } - this._state = ParserState.NORMAL; - this._terminal.prefix = ''; - this._terminal.postfix = ''; - break; - case ParserState.DCS: - if (ch === EscapeSequences_1.C0.ESC || ch === EscapeSequences_1.C0.BEL) { - if (ch === EscapeSequences_1.C0.ESC) - this._position++; - var pt = void 0; - var valid = void 0; - switch (this._terminal.prefix) { - case '': - break; - case '$q': - pt = this._terminal.currentParam; - valid = false; - switch (pt) { - case '"q': - pt = '0"q'; - break; - case '"p': - pt = '61"p'; - break; - case 'r': - pt = '' - + (this._terminal.buffer.scrollTop + 1) - + ';' - + (this._terminal.buffer.scrollBottom + 1) - + 'r'; - break; - case 'm': - pt = '0m'; - break; - default: - this._terminal.error('Unknown DCS Pt: %s.', pt); - pt = ''; - break; - } - this._terminal.send(EscapeSequences_1.C0.ESC + 'P' + +valid + '$r' + pt + EscapeSequences_1.C0.ESC + '\\'); - break; - case '+p': - break; - case '+q': - pt = this._terminal.currentParam; - valid = false; - this._terminal.send(EscapeSequences_1.C0.ESC + 'P' + +valid + '+r' + pt + EscapeSequences_1.C0.ESC + '\\'); - break; - default: - this._terminal.error('Unknown DCS prefix: %s.', this._terminal.prefix); - break; - } - this._terminal.currentParam = 0; - this._terminal.prefix = ''; - this._state = ParserState.NORMAL; - } - else if (!this._terminal.currentParam) { - if (!this._terminal.prefix && ch !== '$' && ch !== '+') { - this._terminal.currentParam = ch; - } - else if (this._terminal.prefix.length === 2) { - this._terminal.currentParam = ch; - } - else { - this._terminal.prefix += ch; - } - } - else { - this._terminal.currentParam += ch; - } - break; - case ParserState.IGNORE: - if (ch === EscapeSequences_1.C0.ESC || ch === EscapeSequences_1.C0.BEL) { - if (ch === EscapeSequences_1.C0.ESC) - this._position++; - this._state = ParserState.NORMAL; - } - break; - } - } - if (this._terminal.buffer.x !== cursorStartX || this._terminal.buffer.y !== cursorStartY) { - this._terminal.emit('cursormove'); - } - return this._state; - }; - Parser.prototype.setState = function (state) { - this._state = state; - }; - Parser.prototype.setPrefix = function (prefix) { - this._terminal.prefix = prefix; - }; - Parser.prototype.setPostfix = function (postfix) { - this._terminal.postfix = postfix; - }; - Parser.prototype.setParam = function (param) { - this._terminal.currentParam = param; - }; - Parser.prototype.getParam = function () { - return this._terminal.currentParam; - }; - Parser.prototype.finalizeParam = function () { - this._terminal.params.push(this._terminal.currentParam); - this._terminal.currentParam = 0; - }; - Parser.prototype.skipNextChar = function () { - this._position++; - }; - return Parser; -}()); -exports.Parser = Parser; - - - -},{"./Charsets":4,"./EscapeSequences":6}],11:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var MouseHelper_1 = require("./utils/MouseHelper"); -var Browser = require("./utils/Browser"); -var EventEmitter_1 = require("./EventEmitter"); -var SelectionModel_1 = require("./SelectionModel"); -var Buffer_1 = require("./Buffer"); -var DRAG_SCROLL_MAX_THRESHOLD = 50; -var DRAG_SCROLL_MAX_SPEED = 15; -var DRAG_SCROLL_INTERVAL = 50; -var WORD_SEPARATORS = ' ()[]{}\'"'; -var NON_BREAKING_SPACE_CHAR = String.fromCharCode(160); -var ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g'); -var SelectionMode; -(function (SelectionMode) { - SelectionMode[SelectionMode["NORMAL"] = 0] = "NORMAL"; - SelectionMode[SelectionMode["WORD"] = 1] = "WORD"; - SelectionMode[SelectionMode["LINE"] = 2] = "LINE"; -})(SelectionMode || (SelectionMode = {})); -var SelectionManager = (function (_super) { - __extends(SelectionManager, _super); - function SelectionManager(_terminal, _buffer, _charMeasure) { - var _this = _super.call(this) || this; - _this._terminal = _terminal; - _this._buffer = _buffer; - _this._charMeasure = _charMeasure; - _this._enabled = true; - _this._initListeners(); - _this.enable(); - _this._model = new SelectionModel_1.SelectionModel(_terminal); - _this._activeSelectionMode = SelectionMode.NORMAL; - return _this; - } - SelectionManager.prototype._initListeners = function () { - var _this = this; - this._mouseMoveListener = function (event) { return _this._onMouseMove(event); }; - this._mouseUpListener = function (event) { return _this._onMouseUp(event); }; - this._buffer.lines.on('trim', function (amount) { return _this._onTrim(amount); }); - }; - SelectionManager.prototype.disable = function () { - this.clearSelection(); - this._enabled = false; - }; - SelectionManager.prototype.enable = function () { - this._enabled = true; - }; - SelectionManager.prototype.setBuffer = function (buffer) { - this._buffer = buffer; - this.clearSelection(); - }; - Object.defineProperty(SelectionManager.prototype, "selectionStart", { - get: function () { return this._model.finalSelectionStart; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SelectionManager.prototype, "selectionEnd", { - get: function () { return this._model.finalSelectionEnd; }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SelectionManager.prototype, "hasSelection", { - get: function () { - var start = this._model.finalSelectionStart; - var end = this._model.finalSelectionEnd; - if (!start || !end) { - return false; - } - return start[0] !== end[0] || start[1] !== end[1]; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SelectionManager.prototype, "selectionText", { - get: function () { - var start = this._model.finalSelectionStart; - var end = this._model.finalSelectionEnd; - if (!start || !end) { - return ''; - } - var startRowEndCol = start[1] === end[1] ? end[0] : null; - var result = []; - result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol)); - for (var i = start[1] + 1; i <= end[1] - 1; i++) { - var bufferLine = this._buffer.lines.get(i); - var lineText = this._buffer.translateBufferLineToString(i, true); - if (bufferLine.isWrapped) { - result[result.length - 1] += lineText; - } - else { - result.push(lineText); - } - } - if (start[1] !== end[1]) { - var bufferLine = this._buffer.lines.get(end[1]); - var lineText = this._buffer.translateBufferLineToString(end[1], true, 0, end[0]); - if (bufferLine.isWrapped) { - result[result.length - 1] += lineText; - } - else { - result.push(lineText); - } - } - var formattedResult = result.map(function (line) { - return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' '); - }).join(Browser.isMSWindows ? '\r\n' : '\n'); - return formattedResult; - }, - enumerable: true, - configurable: true - }); - SelectionManager.prototype.clearSelection = function () { - this._model.clearSelection(); - this._removeMouseDownListeners(); - this.refresh(); - }; - SelectionManager.prototype.refresh = function (isNewSelection) { - var _this = this; - if (!this._refreshAnimationFrame) { - this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); }); - } - if (Browser.isLinux && isNewSelection) { - var selectionText = this.selectionText; - if (selectionText.length) { - this.emit('newselection', this.selectionText); - } - } - }; - SelectionManager.prototype._refresh = function () { - this._refreshAnimationFrame = null; - this.emit('refresh', { start: this._model.finalSelectionStart, end: this._model.finalSelectionEnd }); - }; - SelectionManager.prototype.selectAll = function () { - this._model.isSelectAllActive = true; - this.refresh(); - this._terminal.emit('selection'); - }; - SelectionManager.prototype._onTrim = function (amount) { - var needsRefresh = this._model.onTrim(amount); - if (needsRefresh) { - this.refresh(); - } - }; - SelectionManager.prototype._getMouseBufferCoords = function (event) { - var coords = this._terminal.mouseHelper.getCoords(event, this._terminal.element, this._charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows, true); - if (!coords) { - return null; - } - coords[0]--; - coords[1]--; - coords[1] += this._terminal.buffer.ydisp; - return coords; - }; - SelectionManager.prototype._getMouseEventScrollAmount = function (event) { - var offset = MouseHelper_1.MouseHelper.getCoordsRelativeToElement(event, this._terminal.element)[1]; - var terminalHeight = this._terminal.rows * Math.ceil(this._charMeasure.height * this._terminal.options.lineHeight); - if (offset >= 0 && offset <= terminalHeight) { - return 0; - } - if (offset > terminalHeight) { - offset -= terminalHeight; - } - offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD); - offset /= DRAG_SCROLL_MAX_THRESHOLD; - return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1)); - }; - SelectionManager.prototype.shouldForceSelection = function (event) { - return Browser.isMac ? event.altKey : event.shiftKey; - }; - SelectionManager.prototype.onMouseDown = function (event) { - if (event.button === 2 && this.hasSelection) { - return; - } - if (event.button !== 0) { - return; - } - if (!this._enabled) { - if (!this.shouldForceSelection(event)) { - return; - } - event.stopPropagation(); - } - event.preventDefault(); - this._dragScrollAmount = 0; - if (this._enabled && event.shiftKey) { - this._onIncrementalClick(event); - } - else { - if (event.detail === 1) { - this._onSingleClick(event); - } - else if (event.detail === 2) { - this._onDoubleClick(event); - } - else if (event.detail === 3) { - this._onTripleClick(event); - } - } - this._addMouseDownListeners(); - this.refresh(true); - }; - SelectionManager.prototype._addMouseDownListeners = function () { - var _this = this; - this._terminal.element.ownerDocument.addEventListener('mousemove', this._mouseMoveListener); - this._terminal.element.ownerDocument.addEventListener('mouseup', this._mouseUpListener); - this._dragScrollIntervalTimer = setInterval(function () { return _this._dragScroll(); }, DRAG_SCROLL_INTERVAL); - }; - SelectionManager.prototype._removeMouseDownListeners = function () { - this._terminal.element.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener); - this._terminal.element.ownerDocument.removeEventListener('mouseup', this._mouseUpListener); - clearInterval(this._dragScrollIntervalTimer); - this._dragScrollIntervalTimer = null; - }; - SelectionManager.prototype._onIncrementalClick = function (event) { - if (this._model.selectionStart) { - this._model.selectionEnd = this._getMouseBufferCoords(event); - } - }; - SelectionManager.prototype._onSingleClick = function (event) { - this._model.selectionStartLength = 0; - this._model.isSelectAllActive = false; - this._activeSelectionMode = SelectionMode.NORMAL; - this._model.selectionStart = this._getMouseBufferCoords(event); - if (!this._model.selectionStart) { - return; - } - this._model.selectionEnd = null; - var line = this._buffer.lines.get(this._model.selectionStart[1]); - if (!line) { - return; - } - if (line.length >= this._model.selectionStart[0]) { - return; - } - var char = line[this._model.selectionStart[0]]; - if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) { - this._model.selectionStart[0]++; - } - }; - SelectionManager.prototype._onDoubleClick = function (event) { - var coords = this._getMouseBufferCoords(event); - if (coords) { - this._activeSelectionMode = SelectionMode.WORD; - this._selectWordAt(coords); - } - }; - SelectionManager.prototype._onTripleClick = function (event) { - var coords = this._getMouseBufferCoords(event); - if (coords) { - this._activeSelectionMode = SelectionMode.LINE; - this._selectLineAt(coords[1]); - } - }; - SelectionManager.prototype._onMouseMove = function (event) { - event.stopImmediatePropagation(); - var previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null; - this._model.selectionEnd = this._getMouseBufferCoords(event); - if (!this._model.selectionEnd) { - this.refresh(true); - return; - } - if (this._activeSelectionMode === SelectionMode.LINE) { - if (this._model.selectionEnd[1] < this._model.selectionStart[1]) { - this._model.selectionEnd[0] = 0; - } - else { - this._model.selectionEnd[0] = this._terminal.cols; - } - } - else if (this._activeSelectionMode === SelectionMode.WORD) { - this._selectToWordAt(this._model.selectionEnd); - } - this._dragScrollAmount = this._getMouseEventScrollAmount(event); - if (this._dragScrollAmount > 0) { - this._model.selectionEnd[0] = this._terminal.cols; - } - else if (this._dragScrollAmount < 0) { - this._model.selectionEnd[0] = 0; - } - if (this._model.selectionEnd[1] < this._buffer.lines.length) { - var char = this._buffer.lines.get(this._model.selectionEnd[1])[this._model.selectionEnd[0]]; - if (char && char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) { - this._model.selectionEnd[0]++; - } - } - if (!previousSelectionEnd || - previousSelectionEnd[0] !== this._model.selectionEnd[0] || - previousSelectionEnd[1] !== this._model.selectionEnd[1]) { - this.refresh(true); - } - }; - SelectionManager.prototype._dragScroll = function () { - if (this._dragScrollAmount) { - this._terminal.scrollLines(this._dragScrollAmount, false); - if (this._dragScrollAmount > 0) { - this._model.selectionEnd = [this._terminal.cols - 1, this._terminal.buffer.ydisp + this._terminal.rows]; - } - else { - this._model.selectionEnd = [0, this._terminal.buffer.ydisp]; - } - this.refresh(); - } - }; - SelectionManager.prototype._onMouseUp = function (event) { - this._removeMouseDownListeners(); - if (this.hasSelection) - this._terminal.emit('selection'); - }; - SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) { - var charIndex = coords[0]; - for (var i = 0; coords[0] >= i; i++) { - var char = bufferLine[i]; - if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) { - charIndex--; - } - else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1 && coords[0] !== i) { - charIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - } - } - return charIndex; - }; - SelectionManager.prototype.setSelection = function (col, row, length) { - this._model.clearSelection(); - this._removeMouseDownListeners(); - this._model.selectionStart = [col, row]; - this._model.selectionStartLength = length; - this.refresh(); - }; - SelectionManager.prototype._getWordAt = function (coords) { - var bufferLine = this._buffer.lines.get(coords[1]); - if (!bufferLine) { - return null; - } - var line = this._buffer.translateBufferLineToString(coords[1], false); - var startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords); - var endIndex = startIndex; - var charOffset = coords[0] - startIndex; - var leftWideCharCount = 0; - var rightWideCharCount = 0; - var leftLongCharOffset = 0; - var rightLongCharOffset = 0; - if (line.charAt(startIndex) === ' ') { - while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') { - startIndex--; - } - while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') { - endIndex++; - } - } - else { - var startCol = coords[0]; - var endCol = coords[0]; - if (bufferLine[startCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) { - leftWideCharCount++; - startCol--; - } - if (bufferLine[endCol][Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) { - rightWideCharCount++; - endCol++; - } - if (bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) { - rightLongCharOffset += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - endIndex += bufferLine[endCol][Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - } - while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine[startCol - 1])) { - var char = bufferLine[startCol - 1]; - if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) { - leftWideCharCount++; - startCol--; - } - else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) { - leftLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - startIndex -= char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - } - startIndex--; - startCol--; - } - while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine[endCol + 1])) { - var char = bufferLine[endCol + 1]; - if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) { - rightWideCharCount++; - endCol++; - } - else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) { - rightLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - endIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1; - } - endIndex++; - endCol++; - } - } - endIndex++; - var start = startIndex - + charOffset - - leftWideCharCount - + leftLongCharOffset; - var length = Math.min(this._terminal.cols, endIndex - - startIndex - + leftWideCharCount - + rightWideCharCount - - leftLongCharOffset - - rightLongCharOffset); - return { start: start, length: length }; - }; - SelectionManager.prototype._selectWordAt = function (coords) { - var wordPosition = this._getWordAt(coords); - if (wordPosition) { - this._model.selectionStart = [wordPosition.start, coords[1]]; - this._model.selectionStartLength = wordPosition.length; - } - }; - SelectionManager.prototype._selectToWordAt = function (coords) { - var wordPosition = this._getWordAt(coords); - if (wordPosition) { - this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : (wordPosition.start + wordPosition.length), coords[1]]; - } - }; - SelectionManager.prototype._isCharWordSeparator = function (charData) { - if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) { - return false; - } - return WORD_SEPARATORS.indexOf(charData[Buffer_1.CHAR_DATA_CHAR_INDEX]) >= 0; - }; - SelectionManager.prototype._selectLineAt = function (line) { - this._model.selectionStart = [0, line]; - this._model.selectionStartLength = this._terminal.cols; - }; - return SelectionManager; -}(EventEmitter_1.EventEmitter)); -exports.SelectionManager = SelectionManager; - - - -},{"./Buffer":1,"./EventEmitter":7,"./SelectionModel":12,"./utils/Browser":28,"./utils/MouseHelper":32}],12:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var SelectionModel = (function () { - function SelectionModel(_terminal) { - this._terminal = _terminal; - this.clearSelection(); - } - SelectionModel.prototype.clearSelection = function () { - this.selectionStart = null; - this.selectionEnd = null; - this.isSelectAllActive = false; - this.selectionStartLength = 0; - }; - Object.defineProperty(SelectionModel.prototype, "finalSelectionStart", { - get: function () { - if (this.isSelectAllActive) { - return [0, 0]; - } - if (!this.selectionEnd || !this.selectionStart) { - return this.selectionStart; - } - return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SelectionModel.prototype, "finalSelectionEnd", { - get: function () { - if (this.isSelectAllActive) { - return [this._terminal.cols, this._terminal.buffer.ybase + this._terminal.rows - 1]; - } - if (!this.selectionStart) { - return null; - } - if (!this.selectionEnd || this.areSelectionValuesReversed()) { - return [this.selectionStart[0] + this.selectionStartLength, this.selectionStart[1]]; - } - if (this.selectionStartLength) { - if (this.selectionEnd[1] === this.selectionStart[1]) { - return [Math.max(this.selectionStart[0] + this.selectionStartLength, this.selectionEnd[0]), this.selectionEnd[1]]; - } - } - return this.selectionEnd; - }, - enumerable: true, - configurable: true - }); - SelectionModel.prototype.areSelectionValuesReversed = function () { - var start = this.selectionStart; - var end = this.selectionEnd; - if (!start || !end) { - return false; - } - return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]); - }; - SelectionModel.prototype.onTrim = function (amount) { - if (this.selectionStart) { - this.selectionStart[1] -= amount; - } - if (this.selectionEnd) { - this.selectionEnd[1] -= amount; - } - if (this.selectionEnd && this.selectionEnd[1] < 0) { - this.clearSelection(); - return true; - } - if (this.selectionStart && this.selectionStart[1] < 0) { - this.selectionStart[1] = 0; - } - return false; - }; - return SelectionModel; -}()); -exports.SelectionModel = SelectionModel; - - - -},{}],13:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var BufferSet_1 = require("./BufferSet"); -var Buffer_1 = require("./Buffer"); -var CompositionHelper_1 = require("./CompositionHelper"); -var EventEmitter_1 = require("./EventEmitter"); -var Viewport_1 = require("./Viewport"); -var Clipboard_1 = require("./handlers/Clipboard"); -var EscapeSequences_1 = require("./EscapeSequences"); -var InputHandler_1 = require("./InputHandler"); -var Parser_1 = require("./Parser"); -var Renderer_1 = require("./renderer/Renderer"); -var Linkifier_1 = require("./Linkifier"); -var SelectionManager_1 = require("./SelectionManager"); -var CharMeasure_1 = require("./utils/CharMeasure"); -var Browser = require("./utils/Browser"); -var MouseHelper_1 = require("./utils/MouseHelper"); -var Sounds_1 = require("./utils/Sounds"); -var ColorManager_1 = require("./renderer/ColorManager"); -var MouseZoneManager_1 = require("./input/MouseZoneManager"); -var CharAtlas_1 = require("./renderer/CharAtlas"); -var document = (typeof window !== 'undefined') ? window.document : null; -var WRITE_BUFFER_PAUSE_THRESHOLD = 5; -var WRITE_BATCH_SIZE = 300; -var DEFAULT_OPTIONS = { - cols: 80, - rows: 24, - convertEol: false, - termName: 'xterm', - cursorBlink: false, - cursorStyle: 'block', - bellSound: Sounds_1.BellSound, - bellStyle: 'none', - enableBold: true, - fontFamily: 'courier-new, courier, monospace', - fontSize: 15, - lineHeight: 1.0, - letterSpacing: 0, - scrollback: 1000, - screenKeys: false, - debug: false, - cancelEvents: false, - disableStdin: false, - useFlowControl: false, - tabStopWidth: 8, - theme: null -}; -var Terminal = (function (_super) { - __extends(Terminal, _super); - function Terminal(options) { - if (options === void 0) { options = {}; } - var _this = _super.call(this) || this; - _this.browser = Browser; - _this.options = options; - _this.setup(); - return _this; - } - Terminal.prototype.setup = function () { - var _this = this; - Object.keys(DEFAULT_OPTIONS).forEach(function (key) { - if (_this.options[key] == null) { - _this.options[key] = DEFAULT_OPTIONS[key]; - } - _this[key] = _this.options[key]; - }); - this.parent = document ? document.body : null; - this.cols = this.options.cols; - this.rows = this.options.rows; - if (this.options.handler) { - this.on('data', this.options.handler); - } - this.cursorState = 0; - this.cursorHidden = false; - this.sendDataQueue = ''; - this.customKeyEventHandler = null; - this.applicationKeypad = false; - this.applicationCursor = false; - this.originMode = false; - this.insertMode = false; - this.wraparoundMode = true; - this.bracketedPasteMode = false; - this.charset = null; - this.gcharset = null; - this.glevel = 0; - this.charsets = [null]; - this.readable = true; - this.writable = true; - this.defAttr = (0 << 18) | (257 << 9) | (256 << 0); - this.curAttr = (0 << 18) | (257 << 9) | (256 << 0); - this.params = []; - this.currentParam = 0; - this.prefix = ''; - this.postfix = ''; - this.writeBuffer = []; - this.writeInProgress = false; - this.xoffSentToCatchUp = false; - this.writeStopped = false; - this.surrogate_high = ''; - this.userScrolling = false; - this.inputHandler = new InputHandler_1.InputHandler(this); - this.parser = new Parser_1.Parser(this.inputHandler, this); - this.renderer = this.renderer || null; - this.selectionManager = this.selectionManager || null; - this.linkifier = this.linkifier || new Linkifier_1.Linkifier(this); - this._mouseZoneManager = this._mouseZoneManager || null; - this.buffers = new BufferSet_1.BufferSet(this); - this.buffer = this.buffers.active; - this.buffers.on('activate', function (buffer) { - _this.buffer = buffer; - }); - if (this.selectionManager) { - this.selectionManager.setBuffer(this.buffer); - } - }; - Terminal.prototype.eraseAttr = function () { - return (this.defAttr & ~0x1ff) | (this.curAttr & 0x1ff); - }; - Terminal.prototype.focus = function () { - if (this.textarea) { - this.textarea.focus(); - } - }; - Object.defineProperty(Terminal.prototype, "isFocused", { - get: function () { - return document.activeElement === this.textarea; - }, - enumerable: true, - configurable: true - }); - Terminal.prototype.getOption = function (key) { - if (!(key in DEFAULT_OPTIONS)) { - throw new Error('No option with key "' + key + '"'); - } - if (typeof this.options[key] !== 'undefined') { - return this.options[key]; - } - return this[key]; - }; - Terminal.prototype.setOption = function (key, value) { - if (!(key in DEFAULT_OPTIONS)) { - throw new Error('No option with key "' + key + '"'); - } - switch (key) { - case 'bellStyle': - if (!value) { - value = 'none'; - } - break; - case 'cursorStyle': - if (!value) { - value = 'block'; - } - break; - case 'lineHeight': - if (value < 1) { - console.warn(key + " cannot be less than 1, value: " + value); - return; - } - case 'tabStopWidth': - if (value < 1) { - console.warn(key + " cannot be less than 1, value: " + value); - return; - } - break; - case 'theme': - if (this.renderer) { - this._setTheme(value); - return; - } - break; - case 'scrollback': - value = Math.min(value, Buffer_1.MAX_BUFFER_SIZE); - if (value < 0) { - console.warn(key + " cannot be less than 0, value: " + value); - return; - } - if (this.options[key] !== value) { - var newBufferLength = this.rows + value; - if (this.buffer.lines.length > newBufferLength) { - var amountToTrim = this.buffer.lines.length - newBufferLength; - var needsRefresh = (this.buffer.ydisp - amountToTrim < 0); - this.buffer.lines.trimStart(amountToTrim); - this.buffer.ybase = Math.max(this.buffer.ybase - amountToTrim, 0); - this.buffer.ydisp = Math.max(this.buffer.ydisp - amountToTrim, 0); - if (needsRefresh) { - this.refresh(0, this.rows - 1); - } - } - } - break; - } - this[key] = value; - this.options[key] = value; - switch (key) { - case 'fontFamily': - case 'fontSize': - this.renderer.clear(); - this.charMeasure.measure(this.options); - break; - case 'enableBold': - case 'letterSpacing': - case 'lineHeight': - this.renderer.clear(); - this.renderer.onResize(this.cols, this.rows, false); - this.refresh(0, this.rows - 1); - case 'scrollback': - this.buffers.resize(this.cols, this.rows); - this.viewport.syncScrollArea(); - break; - case 'tabStopWidth': - this.buffers.setupTabStops(); - break; - case 'bellSound': - case 'bellStyle': - this.syncBellSound(); - break; - } - if (this.renderer) { - this.renderer.onOptionsChanged(); - } - }; - Terminal.prototype._onTextAreaFocus = function () { - if (this.sendFocus) { - this.send(EscapeSequences_1.C0.ESC + '[I'); - } - this.element.classList.add('focus'); - this.showCursor(); - this.emit('focus'); - }; - ; - Terminal.prototype.blur = function () { - return this.textarea.blur(); - }; - Terminal.prototype._onTextAreaBlur = function () { - this.refresh(this.buffer.y, this.buffer.y); - if (this.sendFocus) { - this.send(EscapeSequences_1.C0.ESC + '[O'); - } - this.element.classList.remove('focus'); - this.emit('blur'); - }; - Terminal.prototype.initGlobal = function () { - var _this = this; - this.bindKeys(); - on(this.element, 'copy', function (event) { - if (!_this.hasSelection()) { - return; - } - Clipboard_1.copyHandler(event, _this, _this.selectionManager); - }); - var pasteHandlerWrapper = function (event) { return Clipboard_1.pasteHandler(event, _this); }; - on(this.textarea, 'paste', pasteHandlerWrapper); - on(this.element, 'paste', pasteHandlerWrapper); - if (Browser.isFirefox) { - on(this.element, 'mousedown', function (event) { - if (event.button === 2) { - Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager); - } - }); - } - else { - on(this.element, 'contextmenu', function (event) { - Clipboard_1.rightClickHandler(event, _this.textarea, _this.selectionManager); - }); - } - if (Browser.isLinux) { - on(this.element, 'auxclick', function (event) { - if (event.button === 1) { - Clipboard_1.moveTextAreaUnderMouseCursor(event, _this.textarea); - } - }); - } - }; - Terminal.prototype.bindKeys = function () { - var _this = this; - var self = this; - on(this.element, 'keydown', function (ev) { - if (document.activeElement !== this) { - return; - } - self._keyDown(ev); - }, true); - on(this.element, 'keypress', function (ev) { - if (document.activeElement !== this) { - return; - } - self._keyPress(ev); - }, true); - on(this.element, 'keyup', function (ev) { - if (!wasMondifierKeyOnlyEvent(ev)) { - _this.focus(); - } - }, true); - on(this.textarea, 'keydown', function (ev) { - _this._keyDown(ev); - }, true); - on(this.textarea, 'keypress', function (ev) { - _this._keyPress(ev); - _this.textarea.value = ''; - }, true); - on(this.textarea, 'compositionstart', function () { return _this.compositionHelper.compositionstart(); }); - on(this.textarea, 'compositionupdate', function (e) { return _this.compositionHelper.compositionupdate(e); }); - on(this.textarea, 'compositionend', function () { return _this.compositionHelper.compositionend(); }); - this.on('refresh', function () { return _this.compositionHelper.updateCompositionElements(); }); - this.on('refresh', function (data) { return _this.queueLinkification(data.start, data.end); }); - }; - Terminal.prototype.open = function (parent) { - var _this = this; - var i = 0; - var div; - this.parent = parent || this.parent; - if (!this.parent) { - throw new Error('Terminal requires a parent element.'); - } - this.context = this.parent.ownerDocument.defaultView; - this.document = this.parent.ownerDocument; - this.body = this.document.body; - CharAtlas_1.initialize(this.document); - this.element = this.document.createElement('div'); - this.element.classList.add('terminal'); - this.element.classList.add('xterm'); - this.element.setAttribute('tabindex', '0'); - this.parent.appendChild(this.element); - var fragment = document.createDocumentFragment(); - this.viewportElement = document.createElement('div'); - this.viewportElement.classList.add('xterm-viewport'); - fragment.appendChild(this.viewportElement); - this.viewportScrollArea = document.createElement('div'); - this.viewportScrollArea.classList.add('xterm-scroll-area'); - this.viewportElement.appendChild(this.viewportScrollArea); - this._mouseZoneManager = new MouseZoneManager_1.MouseZoneManager(this); - this.on('scroll', function () { return _this._mouseZoneManager.clearAll(); }); - this.linkifier.attachToDom(this._mouseZoneManager); - this.helperContainer = document.createElement('div'); - this.helperContainer.classList.add('xterm-helpers'); - fragment.appendChild(this.helperContainer); - this.textarea = document.createElement('textarea'); - this.textarea.classList.add('xterm-helper-textarea'); - this.textarea.setAttribute('autocorrect', 'off'); - this.textarea.setAttribute('autocapitalize', 'off'); - this.textarea.setAttribute('spellcheck', 'false'); - this.textarea.tabIndex = 0; - this.textarea.addEventListener('focus', function () { return _this._onTextAreaFocus(); }); - this.textarea.addEventListener('blur', function () { return _this._onTextAreaBlur(); }); - this.helperContainer.appendChild(this.textarea); - this.compositionView = document.createElement('div'); - this.compositionView.classList.add('composition-view'); - this.compositionHelper = new CompositionHelper_1.CompositionHelper(this.textarea, this.compositionView, this); - this.helperContainer.appendChild(this.compositionView); - this.charSizeStyleElement = document.createElement('style'); - this.helperContainer.appendChild(this.charSizeStyleElement); - this.charMeasure = new CharMeasure_1.CharMeasure(document, this.helperContainer); - this.syncBellSound(); - this.element.appendChild(fragment); - this.renderer = new Renderer_1.Renderer(this, this.options.theme); - this.options.theme = null; - this.viewport = new Viewport_1.Viewport(this, this.viewportElement, this.viewportScrollArea, this.charMeasure); - this.viewport.onThemeChanged(this.renderer.colorManager.colors); - this.on('cursormove', function () { return _this.renderer.onCursorMove(); }); - this.on('resize', function () { return _this.renderer.onResize(_this.cols, _this.rows, false); }); - this.on('blur', function () { return _this.renderer.onBlur(); }); - this.on('focus', function () { return _this.renderer.onFocus(); }); - window.addEventListener('resize', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }); - this.charMeasure.on('charsizechanged', function () { return _this.renderer.onResize(_this.cols, _this.rows, true); }); - this.renderer.on('resize', function (dimensions) { return _this.viewport.syncScrollArea(); }); - this.selectionManager = new SelectionManager_1.SelectionManager(this, this.buffer, this.charMeasure); - this.element.addEventListener('mousedown', function (e) { return _this.selectionManager.onMouseDown(e); }); - this.selectionManager.on('refresh', function (data) { return _this.renderer.onSelectionChanged(data.start, data.end); }); - this.selectionManager.on('newselection', function (text) { - _this.textarea.value = text; - _this.textarea.focus(); - _this.textarea.select(); - }); - this.on('scroll', function () { - _this.viewport.syncScrollArea(); - _this.selectionManager.refresh(); - }); - this.viewportElement.addEventListener('scroll', function () { return _this.selectionManager.refresh(); }); - this.mouseHelper = new MouseHelper_1.MouseHelper(this.renderer); - this.charMeasure.measure(this.options); - this.refresh(0, this.rows - 1); - this.initGlobal(); - this.bindMouse(); - }; - Terminal.prototype._setTheme = function (theme) { - var colors = this.renderer.setTheme(theme); - if (this.viewport) { - this.viewport.onThemeChanged(colors); - } - }; - Terminal.applyAddon = function (addon) { - addon.apply(Terminal); - }; - Terminal.prototype.bindMouse = function () { - var _this = this; - var el = this.element; - var self = this; - var pressed = 32; - function sendButton(ev) { - var button; - var pos; - button = getButton(ev); - pos = self.mouseHelper.getRawByteCoords(ev, self.element, self.charMeasure, self.options.lineHeight, self.cols, self.rows); - if (!pos) - return; - sendEvent(button, pos); - switch (ev.overrideType || ev.type) { - case 'mousedown': - pressed = button; - break; - case 'mouseup': - pressed = 32; - break; - case 'wheel': - break; - } - } - function sendMove(ev) { - var button = pressed; - var pos = self.mouseHelper.getRawByteCoords(ev, self.element, self.charMeasure, self.options.lineHeight, self.cols, self.rows); - if (!pos) - return; - button += 32; - sendEvent(button, pos); - } - function encode(data, ch) { - if (!self.utfMouse) { - if (ch === 255) { - data.push(0); - return; - } - if (ch > 127) - ch = 127; - data.push(ch); - } - else { - if (ch === 2047) { - data.push(0); - return; - } - if (ch < 127) { - data.push(ch); - } - else { - if (ch > 2047) - ch = 2047; - data.push(0xC0 | (ch >> 6)); - data.push(0x80 | (ch & 0x3F)); - } - } - } - function sendEvent(button, pos) { - if (self.vt300Mouse) { - button &= 3; - pos.x -= 32; - pos.y -= 32; - var data_1 = EscapeSequences_1.C0.ESC + '[24'; - if (button === 0) - data_1 += '1'; - else if (button === 1) - data_1 += '3'; - else if (button === 2) - data_1 += '5'; - else if (button === 3) - return; - else - data_1 += '0'; - data_1 += '~[' + pos.x + ',' + pos.y + ']\r'; - self.send(data_1); - return; - } - if (self.decLocator) { - button &= 3; - pos.x -= 32; - pos.y -= 32; - if (button === 0) - button = 2; - else if (button === 1) - button = 4; - else if (button === 2) - button = 6; - else if (button === 3) - button = 3; - self.send(EscapeSequences_1.C0.ESC + '[' - + button - + ';' - + (button === 3 ? 4 : 0) - + ';' - + pos.y - + ';' - + pos.x - + ';' - + pos.page || 0 - + '&w'); - return; - } - if (self.urxvtMouse) { - pos.x -= 32; - pos.y -= 32; - pos.x++; - pos.y++; - self.send(EscapeSequences_1.C0.ESC + '[' + button + ';' + pos.x + ';' + pos.y + 'M'); - return; - } - if (self.sgrMouse) { - pos.x -= 32; - pos.y -= 32; - self.send(EscapeSequences_1.C0.ESC + '[<' - + (((button & 3) === 3 ? button & ~3 : button) - 32) - + ';' - + pos.x - + ';' - + pos.y - + ((button & 3) === 3 ? 'm' : 'M')); - return; - } - var data = []; - encode(data, button); - encode(data, pos.x); - encode(data, pos.y); - self.send(EscapeSequences_1.C0.ESC + '[M' + String.fromCharCode.apply(String, data)); - } - function getButton(ev) { - var button; - var shift; - var meta; - var ctrl; - var mod; - switch (ev.overrideType || ev.type) { - case 'mousedown': - button = ev.button != null - ? +ev.button - : ev.which != null - ? ev.which - 1 - : null; - if (Browser.isMSIE) { - button = button === 1 ? 0 : button === 4 ? 1 : button; - } - break; - case 'mouseup': - button = 3; - break; - case 'DOMMouseScroll': - button = ev.detail < 0 - ? 64 - : 65; - break; - case 'wheel': - button = ev.wheelDeltaY > 0 - ? 64 - : 65; - break; - } - shift = ev.shiftKey ? 4 : 0; - meta = ev.metaKey ? 8 : 0; - ctrl = ev.ctrlKey ? 16 : 0; - mod = shift | meta | ctrl; - if (self.vt200Mouse) { - mod &= ctrl; - } - else if (!self.normalMouse) { - mod = 0; - } - button = (32 + (mod << 2)) + button; - return button; - } - on(el, 'mousedown', function (ev) { - ev.preventDefault(); - _this.focus(); - if (!_this.mouseEvents || _this.selectionManager.shouldForceSelection(ev)) { - return; - } - sendButton(ev); - if (_this.vt200Mouse) { - ev.overrideType = 'mouseup'; - sendButton(ev); - return _this.cancel(ev); - } - if (_this.normalMouse) - on(_this.document, 'mousemove', sendMove); - if (!_this.x10Mouse) { - var handler_1 = function (ev) { - sendButton(ev); - if (_this.normalMouse) - off(_this.document, 'mousemove', sendMove); - off(_this.document, 'mouseup', handler_1); - return _this.cancel(ev); - }; - on(_this.document, 'mouseup', handler_1); - } - return _this.cancel(ev); - }); - on(el, 'wheel', function (ev) { - if (!_this.mouseEvents) - return; - if (_this.x10Mouse || _this.vt300Mouse || _this.decLocator) - return; - sendButton(ev); - ev.preventDefault(); - }); - on(el, 'wheel', function (ev) { - if (_this.mouseEvents) - return; - _this.viewport.onWheel(ev); - return _this.cancel(ev); - }); - on(el, 'touchstart', function (ev) { - if (_this.mouseEvents) - return; - _this.viewport.onTouchStart(ev); - return _this.cancel(ev); - }); - on(el, 'touchmove', function (ev) { - if (_this.mouseEvents) - return; - _this.viewport.onTouchMove(ev); - return _this.cancel(ev); - }); - }; - Terminal.prototype.destroy = function () { - _super.prototype.destroy.call(this); - this.readable = false; - this.writable = false; - this.handler = function () { }; - this.write = function () { }; - if (this.element && this.element.parentNode) { - this.element.parentNode.removeChild(this.element); - } - }; - Terminal.prototype.refresh = function (start, end) { - if (this.renderer) { - this.renderer.queueRefresh(start, end); - } - }; - Terminal.prototype.queueLinkification = function (start, end) { - if (this.linkifier) { - this.linkifier.linkifyRows(start, end); - } - }; - Terminal.prototype.showCursor = function () { - if (!this.cursorState) { - this.cursorState = 1; - this.refresh(this.buffer.y, this.buffer.y); - } - }; - Terminal.prototype.scroll = function (isWrapped) { - var newLine = this.blankLine(undefined, isWrapped); - var topRow = this.buffer.ybase + this.buffer.scrollTop; - var bottomRow = this.buffer.ybase + this.buffer.scrollBottom; - if (this.buffer.scrollTop === 0) { - var willBufferBeTrimmed = this.buffer.lines.length === this.buffer.lines.maxLength; - if (bottomRow === this.buffer.lines.length - 1) { - this.buffer.lines.push(newLine); - } - else { - this.buffer.lines.splice(bottomRow + 1, 0, newLine); - } - if (!willBufferBeTrimmed) { - this.buffer.ybase++; - if (!this.userScrolling) { - this.buffer.ydisp++; - } - } - else { - if (this.userScrolling) { - this.buffer.ydisp = Math.max(this.buffer.ydisp - 1, 0); - } - } - } - else { - var scrollRegionHeight = bottomRow - topRow + 1; - this.buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1); - this.buffer.lines.set(bottomRow, newLine); - } - if (!this.userScrolling) { - this.buffer.ydisp = this.buffer.ybase; - } - this.updateRange(this.buffer.scrollTop); - this.updateRange(this.buffer.scrollBottom); - this.emit('scroll', this.buffer.ydisp); - }; - Terminal.prototype.scrollLines = function (disp, suppressScrollEvent) { - if (disp < 0) { - if (this.buffer.ydisp === 0) { - return; - } - this.userScrolling = true; - } - else if (disp + this.buffer.ydisp >= this.buffer.ybase) { - this.userScrolling = false; - } - var oldYdisp = this.buffer.ydisp; - this.buffer.ydisp = Math.max(Math.min(this.buffer.ydisp + disp, this.buffer.ybase), 0); - if (oldYdisp === this.buffer.ydisp) { - return; - } - if (!suppressScrollEvent) { - this.emit('scroll', this.buffer.ydisp); - } - this.refresh(0, this.rows - 1); - }; - Terminal.prototype.scrollPages = function (pageCount) { - this.scrollLines(pageCount * (this.rows - 1)); - }; - Terminal.prototype.scrollToTop = function () { - this.scrollLines(-this.buffer.ydisp); - }; - Terminal.prototype.scrollToBottom = function () { - this.scrollLines(this.buffer.ybase - this.buffer.ydisp); - }; - Terminal.prototype.write = function (data) { - var _this = this; - this.writeBuffer.push(data); - if (this.options.useFlowControl && !this.xoffSentToCatchUp && this.writeBuffer.length >= WRITE_BUFFER_PAUSE_THRESHOLD) { - this.send(EscapeSequences_1.C0.DC3); - this.xoffSentToCatchUp = true; - } - if (!this.writeInProgress && this.writeBuffer.length > 0) { - this.writeInProgress = true; - setTimeout(function () { - _this.innerWrite(); - }); - } - }; - Terminal.prototype.innerWrite = function () { - var _this = this; - var writeBatch = this.writeBuffer.splice(0, WRITE_BATCH_SIZE); - while (writeBatch.length > 0) { - var data = writeBatch.shift(); - if (this.xoffSentToCatchUp && writeBatch.length === 0 && this.writeBuffer.length === 0) { - this.send(EscapeSequences_1.C0.DC1); - this.xoffSentToCatchUp = false; - } - this.refreshStart = this.buffer.y; - this.refreshEnd = this.buffer.y; - var state = this.parser.parse(data); - this.parser.setState(state); - this.updateRange(this.buffer.y); - this.refresh(this.refreshStart, this.refreshEnd); - } - if (this.writeBuffer.length > 0) { - setTimeout(function () { return _this.innerWrite(); }, 0); - } - else { - this.writeInProgress = false; - } - }; - Terminal.prototype.writeln = function (data) { - this.write(data + '\r\n'); - }; - Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) { - this.customKeyEventHandler = customKeyEventHandler; - }; - Terminal.prototype.setHypertextLinkHandler = function (handler) { - if (!this.linkifier) { - throw new Error('Cannot attach a hypertext link handler before Terminal.open is called'); - } - this.linkifier.setHypertextLinkHandler(handler); - this.refresh(0, this.rows - 1); - }; - Terminal.prototype.setHypertextValidationCallback = function (callback) { - if (!this.linkifier) { - throw new Error('Cannot attach a hypertext validation callback before Terminal.open is called'); - } - this.linkifier.setHypertextValidationCallback(callback); - this.refresh(0, this.rows - 1); - }; - Terminal.prototype.registerLinkMatcher = function (regex, handler, options) { - if (this.linkifier) { - var matcherId = this.linkifier.registerLinkMatcher(regex, handler, options); - this.refresh(0, this.rows - 1); - return matcherId; - } - return 0; - }; - Terminal.prototype.deregisterLinkMatcher = function (matcherId) { - if (this.linkifier) { - if (this.linkifier.deregisterLinkMatcher(matcherId)) { - this.refresh(0, this.rows - 1); - } - } - }; - Terminal.prototype.hasSelection = function () { - return this.selectionManager ? this.selectionManager.hasSelection : false; - }; - Terminal.prototype.getSelection = function () { - return this.selectionManager ? this.selectionManager.selectionText : ''; - }; - Terminal.prototype.clearSelection = function () { - if (this.selectionManager) { - this.selectionManager.clearSelection(); - } - }; - Terminal.prototype.selectAll = function () { - if (this.selectionManager) { - this.selectionManager.selectAll(); - } - }; - Terminal.prototype._keyDown = function (ev) { - if (this.customKeyEventHandler && this.customKeyEventHandler(ev) === false) { - return false; - } - if (!this.compositionHelper.keydown(ev)) { - if (this.buffer.ybase !== this.buffer.ydisp) { - this.scrollToBottom(); - } - return false; - } - var result = this._evaluateKeyEscapeSequence(ev); - if (result.key === EscapeSequences_1.C0.DC3) { - this.writeStopped = true; - } - else if (result.key === EscapeSequences_1.C0.DC1) { - this.writeStopped = false; - } - if (result.scrollLines) { - this.scrollLines(result.scrollLines); - return this.cancel(ev, true); - } - if (isThirdLevelShift(this.browser, ev)) { - return true; - } - if (result.cancel) { - this.cancel(ev, true); - } - if (!result.key) { - return true; - } - this.emit('keydown', ev); - this.emit('key', result.key, ev); - this.showCursor(); - this.handler(result.key); - return this.cancel(ev, true); - }; - Terminal.prototype._evaluateKeyEscapeSequence = function (ev) { - var result = { - cancel: false, - key: undefined, - scrollLines: undefined - }; - var modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0); - switch (ev.keyCode) { - case 0: - if (ev.key === 'UIKeyInputUpArrow') { - if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OA'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[A'; - } - } - else if (ev.key === 'UIKeyInputLeftArrow') { - if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OD'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[D'; - } - } - else if (ev.key === 'UIKeyInputRightArrow') { - if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OC'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[C'; - } - } - else if (ev.key === 'UIKeyInputDownArrow') { - if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OB'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[B'; - } - } - break; - case 8: - if (ev.shiftKey) { - result.key = EscapeSequences_1.C0.BS; - break; - } - result.key = EscapeSequences_1.C0.DEL; - break; - case 9: - if (ev.shiftKey) { - result.key = EscapeSequences_1.C0.ESC + '[Z'; - break; - } - result.key = EscapeSequences_1.C0.HT; - result.cancel = true; - break; - case 13: - result.key = EscapeSequences_1.C0.CR; - result.cancel = true; - break; - case 27: - result.key = EscapeSequences_1.C0.ESC; - result.cancel = true; - break; - case 37: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'D'; - if (result.key === EscapeSequences_1.C0.ESC + '[1;3D') { - result.key = (this.browser.isMac) ? EscapeSequences_1.C0.ESC + 'b' : EscapeSequences_1.C0.ESC + '[1;5D'; - } - } - else if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OD'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[D'; - } - break; - case 39: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'C'; - if (result.key === EscapeSequences_1.C0.ESC + '[1;3C') { - result.key = (this.browser.isMac) ? EscapeSequences_1.C0.ESC + 'f' : EscapeSequences_1.C0.ESC + '[1;5C'; - } - } - else if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OC'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[C'; - } - break; - case 38: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'A'; - if (result.key === EscapeSequences_1.C0.ESC + '[1;3A') { - result.key = EscapeSequences_1.C0.ESC + '[1;5A'; - } - } - else if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OA'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[A'; - } - break; - case 40: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'B'; - if (result.key === EscapeSequences_1.C0.ESC + '[1;3B') { - result.key = EscapeSequences_1.C0.ESC + '[1;5B'; - } - } - else if (this.applicationCursor) { - result.key = EscapeSequences_1.C0.ESC + 'OB'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[B'; - } - break; - case 45: - if (!ev.shiftKey && !ev.ctrlKey) { - result.key = EscapeSequences_1.C0.ESC + '[2~'; - } - break; - case 46: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[3;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[3~'; - } - break; - case 36: - if (modifiers) - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'H'; - else if (this.applicationCursor) - result.key = EscapeSequences_1.C0.ESC + 'OH'; - else - result.key = EscapeSequences_1.C0.ESC + '[H'; - break; - case 35: - if (modifiers) - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'F'; - else if (this.applicationCursor) - result.key = EscapeSequences_1.C0.ESC + 'OF'; - else - result.key = EscapeSequences_1.C0.ESC + '[F'; - break; - case 33: - if (ev.shiftKey) { - result.scrollLines = -(this.rows - 1); - } - else { - result.key = EscapeSequences_1.C0.ESC + '[5~'; - } - break; - case 34: - if (ev.shiftKey) { - result.scrollLines = this.rows - 1; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[6~'; - } - break; - case 112: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'P'; - } - else { - result.key = EscapeSequences_1.C0.ESC + 'OP'; - } - break; - case 113: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'Q'; - } - else { - result.key = EscapeSequences_1.C0.ESC + 'OQ'; - } - break; - case 114: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'R'; - } - else { - result.key = EscapeSequences_1.C0.ESC + 'OR'; - } - break; - case 115: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'S'; - } - else { - result.key = EscapeSequences_1.C0.ESC + 'OS'; - } - break; - case 116: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[15;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[15~'; - } - break; - case 117: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[17;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[17~'; - } - break; - case 118: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[18;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[18~'; - } - break; - case 119: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[19;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[19~'; - } - break; - case 120: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[20;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[20~'; - } - break; - case 121: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[21;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[21~'; - } - break; - case 122: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[23;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[23~'; - } - break; - case 123: - if (modifiers) { - result.key = EscapeSequences_1.C0.ESC + '[24;' + (modifiers + 1) + '~'; - } - else { - result.key = EscapeSequences_1.C0.ESC + '[24~'; - } - break; - default: - if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) { - if (ev.keyCode >= 65 && ev.keyCode <= 90) { - result.key = String.fromCharCode(ev.keyCode - 64); - } - else if (ev.keyCode === 32) { - result.key = String.fromCharCode(0); - } - else if (ev.keyCode >= 51 && ev.keyCode <= 55) { - result.key = String.fromCharCode(ev.keyCode - 51 + 27); - } - else if (ev.keyCode === 56) { - result.key = String.fromCharCode(127); - } - else if (ev.keyCode === 219) { - result.key = String.fromCharCode(27); - } - else if (ev.keyCode === 220) { - result.key = String.fromCharCode(28); - } - else if (ev.keyCode === 221) { - result.key = String.fromCharCode(29); - } - } - else if (!this.browser.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) { - if (ev.keyCode >= 65 && ev.keyCode <= 90) { - result.key = EscapeSequences_1.C0.ESC + String.fromCharCode(ev.keyCode + 32); - } - else if (ev.keyCode === 192) { - result.key = EscapeSequences_1.C0.ESC + '`'; - } - else if (ev.keyCode >= 48 && ev.keyCode <= 57) { - result.key = EscapeSequences_1.C0.ESC + (ev.keyCode - 48); - } - } - else if (this.browser.isMac && !ev.altKey && !ev.ctrlKey && ev.metaKey) { - if (ev.keyCode === 65) { - this.selectAll(); - } - } - break; - } - return result; - }; - Terminal.prototype.setgLevel = function (g) { - this.glevel = g; - this.charset = this.charsets[g]; - }; - Terminal.prototype.setgCharset = function (g, charset) { - this.charsets[g] = charset; - if (this.glevel === g) { - this.charset = charset; - } - }; - Terminal.prototype._keyPress = function (ev) { - var key; - if (this.customKeyEventHandler && this.customKeyEventHandler(ev) === false) { - return false; - } - this.cancel(ev); - if (ev.charCode) { - key = ev.charCode; - } - else if (ev.which == null) { - key = ev.keyCode; - } - else if (ev.which !== 0 && ev.charCode !== 0) { - key = ev.which; - } - else { - return false; - } - if (!key || ((ev.altKey || ev.ctrlKey || ev.metaKey) && !isThirdLevelShift(this.browser, ev))) { - return false; - } - key = String.fromCharCode(key); - this.emit('keypress', key, ev); - this.emit('key', key, ev); - this.showCursor(); - this.handler(key); - return true; - }; - Terminal.prototype.send = function (data) { - var _this = this; - if (!this.sendDataQueue) { - setTimeout(function () { - _this.handler(_this.sendDataQueue); - _this.sendDataQueue = ''; - }, 1); - } - this.sendDataQueue += data; - }; - Terminal.prototype.bell = function () { - var _this = this; - this.emit('bell'); - if (this.soundBell()) - this.bellAudioElement.play(); - if (this.visualBell()) { - this.element.classList.add('visual-bell-active'); - clearTimeout(this.visualBellTimer); - this.visualBellTimer = window.setTimeout(function () { - _this.element.classList.remove('visual-bell-active'); - }, 200); - } - }; - Terminal.prototype.log = function (text, data) { - if (!this.options.debug) - return; - if (!this.context.console || !this.context.console.log) - return; - this.context.console.log(text, data); - }; - Terminal.prototype.error = function (text, data) { - if (!this.options.debug) - return; - if (!this.context.console || !this.context.console.error) - return; - this.context.console.error(text, data); - }; - Terminal.prototype.resize = function (x, y) { - if (isNaN(x) || isNaN(y)) { - return; - } - if (x === this.cols && y === this.rows) { - if (!this.charMeasure.width || !this.charMeasure.height) { - this.charMeasure.measure(this.options); - } - return; - } - if (x < 1) - x = 1; - if (y < 1) - y = 1; - this.buffers.resize(x, y); - this.cols = x; - this.rows = y; - this.buffers.setupTabStops(this.cols); - this.charMeasure.measure(this.options); - this.refresh(0, this.rows - 1); - this.emit('resize', { cols: x, rows: y }); - }; - Terminal.prototype.updateRange = function (y) { - if (y < this.refreshStart) - this.refreshStart = y; - if (y > this.refreshEnd) - this.refreshEnd = y; - }; - Terminal.prototype.maxRange = function () { - this.refreshStart = 0; - this.refreshEnd = this.rows - 1; - }; - Terminal.prototype.eraseRight = function (x, y) { - var line = this.buffer.lines.get(this.buffer.ybase + y); - if (!line) { - return; - } - var ch = [this.eraseAttr(), ' ', 1, 32]; - for (; x < this.cols; x++) { - line[x] = ch; - } - this.updateRange(y); - }; - Terminal.prototype.eraseLeft = function (x, y) { - var line = this.buffer.lines.get(this.buffer.ybase + y); - if (!line) { - return; - } - var ch = [this.eraseAttr(), ' ', 1, 32]; - x++; - while (x--) { - line[x] = ch; - } - this.updateRange(y); - }; - Terminal.prototype.clear = function () { - if (this.buffer.ybase === 0 && this.buffer.y === 0) { - return; - } - this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y)); - this.buffer.lines.length = 1; - this.buffer.ydisp = 0; - this.buffer.ybase = 0; - this.buffer.y = 0; - for (var i = 1; i < this.rows; i++) { - this.buffer.lines.push(this.blankLine()); - } - this.refresh(0, this.rows - 1); - this.emit('scroll', this.buffer.ydisp); - }; - Terminal.prototype.eraseLine = function (y) { - this.eraseRight(0, y); - }; - Terminal.prototype.blankLine = function (cur, isWrapped, cols) { - var attr = cur ? this.eraseAttr() : this.defAttr; - var ch = [attr, ' ', 1, 32]; - var line = []; - if (isWrapped) { - line.isWrapped = isWrapped; - } - cols = cols || this.cols; - for (var i = 0; i < cols; i++) { - line[i] = ch; - } - return line; - }; - Terminal.prototype.ch = function (cur) { - if (cur) { - return [this.eraseAttr(), ' ', 1, 32]; - } - return [this.defAttr, ' ', 1, 32]; - }; - Terminal.prototype.is = function (term) { - return (this.options.termName + '').indexOf(term) === 0; - }; - Terminal.prototype.handler = function (data) { - if (this.options.disableStdin) { - return; - } - if (this.selectionManager && this.selectionManager.hasSelection) { - this.selectionManager.clearSelection(); - } - if (this.buffer.ybase !== this.buffer.ydisp) { - this.scrollToBottom(); - } - this.emit('data', data); - }; - Terminal.prototype.handleTitle = function (title) { - this.emit('title', title); - }; - Terminal.prototype.index = function () { - this.buffer.y++; - if (this.buffer.y > this.buffer.scrollBottom) { - this.buffer.y--; - this.scroll(); - } - if (this.buffer.x >= this.cols) { - this.buffer.x--; - } - }; - Terminal.prototype.reverseIndex = function () { - if (this.buffer.y === this.buffer.scrollTop) { - var scrollRegionHeight = this.buffer.scrollBottom - this.buffer.scrollTop; - this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, scrollRegionHeight, 1); - this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.blankLine(true)); - this.updateRange(this.buffer.scrollTop); - this.updateRange(this.buffer.scrollBottom); - } - else { - this.buffer.y--; - } - }; - Terminal.prototype.reset = function () { - this.options.rows = this.rows; - this.options.cols = this.cols; - var customKeyEventHandler = this.customKeyEventHandler; - var inputHandler = this.inputHandler; - var buffers = this.buffers; - this.setup(); - this.customKeyEventHandler = customKeyEventHandler; - this.inputHandler = inputHandler; - this.buffers = buffers; - this.refresh(0, this.rows - 1); - this.viewport.syncScrollArea(); - }; - Terminal.prototype.tabSet = function () { - this.buffer.tabs[this.buffer.x] = true; - }; - Terminal.prototype.cancel = function (ev, force) { - if (!this.options.cancelEvents && !force) { - return; - } - ev.preventDefault(); - ev.stopPropagation(); - return false; - }; - Terminal.prototype.matchColor = function (r1, g1, b1) { - return matchColor_(r1, g1, b1); - }; - Terminal.prototype.visualBell = function () { - return this.options.bellStyle === 'visual' || - this.options.bellStyle === 'both'; - }; - Terminal.prototype.soundBell = function () { - return this.options.bellStyle === 'sound' || - this.options.bellStyle === 'both'; - }; - Terminal.prototype.syncBellSound = function () { - if (!this.element) { - return; - } - if (this.soundBell() && this.bellAudioElement) { - this.bellAudioElement.setAttribute('src', this.options.bellSound); - } - else if (this.soundBell()) { - this.bellAudioElement = document.createElement('audio'); - this.bellAudioElement.setAttribute('preload', 'auto'); - this.bellAudioElement.setAttribute('src', this.options.bellSound); - this.helperContainer.appendChild(this.bellAudioElement); - } - else if (this.bellAudioElement) { - this.helperContainer.removeChild(this.bellAudioElement); - } - }; - return Terminal; -}(EventEmitter_1.EventEmitter)); -exports.Terminal = Terminal; -function globalOn(el, type, handler, capture) { - if (!Array.isArray(el)) { - el = [el]; - } - el.forEach(function (element) { - element.addEventListener(type, handler, capture || false); - }); -} -var on = globalOn; -function off(el, type, handler, capture) { - if (capture === void 0) { capture = false; } - el.removeEventListener(type, handler, capture); -} -function isThirdLevelShift(browser, ev) { - var thirdLevelKey = (browser.isMac && ev.altKey && !ev.ctrlKey && !ev.metaKey) || - (browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey); - if (ev.type === 'keypress') { - return thirdLevelKey; - } - return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47); -} -function wasMondifierKeyOnlyEvent(ev) { - return ev.keyCode === 16 || - ev.keyCode === 17 || - ev.keyCode === 18; -} -var vcolors = (function () { - var result = ColorManager_1.DEFAULT_ANSI_COLORS.map(function (c) { - c = c.substring(1); - return [ - parseInt(c.substring(0, 2), 16), - parseInt(c.substring(2, 4), 16), - parseInt(c.substring(4, 6), 16) - ]; - }); - var r = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff]; - for (var i = 0; i < 216; i++) { - result.push([ - r[(i / 36) % 6 | 0], - r[(i / 6) % 6 | 0], - r[i % 6] - ]); - } - var c; - for (var i = 0; i < 24; i++) { - c = 8 + i * 10; - result.push([c, c, c]); - } - return result; -})(); -var matchColorCache = {}; -function matchColorDistance(r1, g1, b1, r2, g2, b2) { - return Math.pow(30 * (r1 - r2), 2) - + Math.pow(59 * (g1 - g2), 2) - + Math.pow(11 * (b1 - b2), 2); -} -; -function matchColor_(r1, g1, b1) { - var hash = (r1 << 16) | (g1 << 8) | b1; - if (matchColorCache[hash] != null) { - return matchColorCache[hash]; - } - var ldiff = Infinity; - var li = -1; - var i = 0; - var c; - var r2; - var g2; - var b2; - var diff; - for (; i < vcolors.length; i++) { - c = vcolors[i]; - r2 = c[0]; - g2 = c[1]; - b2 = c[2]; - diff = matchColorDistance(r1, g1, b1, r2, g2, b2); - if (diff === 0) { - li = i; - break; - } - if (diff < ldiff) { - ldiff = diff; - li = i; - } - } - return matchColorCache[hash] = li; -} - - - -},{"./Buffer":1,"./BufferSet":2,"./CompositionHelper":5,"./EscapeSequences":6,"./EventEmitter":7,"./InputHandler":8,"./Linkifier":9,"./Parser":10,"./SelectionManager":11,"./Viewport":15,"./handlers/Clipboard":16,"./input/MouseZoneManager":17,"./renderer/CharAtlas":19,"./renderer/ColorManager":20,"./renderer/Renderer":24,"./utils/Browser":28,"./utils/CharMeasure":29,"./utils/MouseHelper":32,"./utils/Sounds":33}],14:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var LinkHoverEventTypes; -(function (LinkHoverEventTypes) { - LinkHoverEventTypes["HOVER"] = "linkhover"; - LinkHoverEventTypes["TOOLTIP"] = "linktooltip"; - LinkHoverEventTypes["LEAVE"] = "linkleave"; -})(LinkHoverEventTypes = exports.LinkHoverEventTypes || (exports.LinkHoverEventTypes = {})); -; - - - -},{}],15:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Viewport = (function () { - function Viewport(terminal, viewportElement, scrollArea, charMeasure) { - var _this = this; - this.terminal = terminal; - this.viewportElement = viewportElement; - this.scrollArea = scrollArea; - this.charMeasure = charMeasure; - this.currentRowHeight = 0; - this.lastRecordedBufferLength = 0; - this.lastRecordedViewportHeight = 0; - this.lastRecordedBufferHeight = 0; - this.viewportElement.addEventListener('scroll', this.onScroll.bind(this)); - setTimeout(function () { return _this.syncScrollArea(); }, 0); - } - Viewport.prototype.onThemeChanged = function (colors) { - this.viewportElement.style.backgroundColor = colors.background; - }; - Viewport.prototype.refresh = function () { - if (this.charMeasure.height > 0) { - this.currentRowHeight = this.terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio; - if (this.lastRecordedViewportHeight !== this.terminal.renderer.dimensions.canvasHeight) { - this.lastRecordedViewportHeight = this.terminal.renderer.dimensions.canvasHeight; - this.viewportElement.style.height = this.lastRecordedViewportHeight + 'px'; - } - var newBufferHeight = Math.round(this.currentRowHeight * this.lastRecordedBufferLength); - if (this.lastRecordedBufferHeight !== newBufferHeight) { - this.lastRecordedBufferHeight = newBufferHeight; - this.scrollArea.style.height = this.lastRecordedBufferHeight + 'px'; - } - } - }; - Viewport.prototype.syncScrollArea = function () { - if (this.lastRecordedBufferLength !== this.terminal.buffer.lines.length) { - this.lastRecordedBufferLength = this.terminal.buffer.lines.length; - this.refresh(); - } - else if (this.lastRecordedViewportHeight !== this.terminal.renderer.dimensions.canvasHeight) { - this.refresh(); - } - else { - if (this.terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio !== this.currentRowHeight) { - this.refresh(); - } - } - var scrollTop = this.terminal.buffer.ydisp * this.currentRowHeight; - if (this.viewportElement.scrollTop !== scrollTop) { - this.viewportElement.scrollTop = scrollTop; - } - }; - Viewport.prototype.onScroll = function (ev) { - var newRow = Math.round(this.viewportElement.scrollTop / this.currentRowHeight); - var diff = newRow - this.terminal.buffer.ydisp; - this.terminal.scrollLines(diff, true); - }; - Viewport.prototype.onWheel = function (ev) { - if (ev.deltaY === 0) { - return; - } - var multiplier = 1; - if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) { - multiplier = this.currentRowHeight; - } - else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) { - multiplier = this.currentRowHeight * this.terminal.rows; - } - this.viewportElement.scrollTop += ev.deltaY * multiplier; - ev.preventDefault(); - }; - ; - Viewport.prototype.onTouchStart = function (ev) { - this.lastTouchY = ev.touches[0].pageY; - }; - ; - Viewport.prototype.onTouchMove = function (ev) { - var deltaY = this.lastTouchY - ev.touches[0].pageY; - this.lastTouchY = ev.touches[0].pageY; - if (deltaY === 0) { - return; - } - this.viewportElement.scrollTop += deltaY; - ev.preventDefault(); - }; - ; - return Viewport; -}()); -exports.Viewport = Viewport; - - - -},{}],16:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function prepareTextForTerminal(text, isMSWindows) { - if (isMSWindows) { - return text.replace(/\r?\n/g, '\r'); - } - return text; -} -exports.prepareTextForTerminal = prepareTextForTerminal; -function bracketTextForPaste(text, bracketedPasteMode) { - if (bracketedPasteMode) { - return '\x1b[200~' + text + '\x1b[201~'; - } - return text; -} -exports.bracketTextForPaste = bracketTextForPaste; -function copyHandler(ev, term, selectionManager) { - if (term.browser.isMSIE) { - window.clipboardData.setData('Text', selectionManager.selectionText); - } - else { - ev.clipboardData.setData('text/plain', selectionManager.selectionText); - } - ev.preventDefault(); -} -exports.copyHandler = copyHandler; -function pasteHandler(ev, term) { - ev.stopPropagation(); - var text; - var dispatchPaste = function (text) { - text = prepareTextForTerminal(text, term.browser.isMSWindows); - text = bracketTextForPaste(text, term.bracketedPasteMode); - term.handler(text); - term.textarea.value = ''; - term.emit('paste', text); - term.cancel(ev); - }; - if (term.browser.isMSIE) { - if (window.clipboardData) { - text = window.clipboardData.getData('Text'); - dispatchPaste(text); - } - } - else { - if (ev.clipboardData) { - text = ev.clipboardData.getData('text/plain'); - dispatchPaste(text); - } - } -} -exports.pasteHandler = pasteHandler; -function moveTextAreaUnderMouseCursor(ev, textarea) { - textarea.style.position = 'fixed'; - textarea.style.width = '20px'; - textarea.style.height = '20px'; - textarea.style.left = (ev.clientX - 10) + 'px'; - textarea.style.top = (ev.clientY - 10) + 'px'; - textarea.style.zIndex = '1000'; - textarea.focus(); - setTimeout(function () { - textarea.style.position = null; - textarea.style.width = null; - textarea.style.height = null; - textarea.style.left = null; - textarea.style.top = null; - textarea.style.zIndex = null; - }, 4); -} -exports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor; -function rightClickHandler(ev, textarea, selectionManager) { - moveTextAreaUnderMouseCursor(ev, textarea); - textarea.value = selectionManager.selectionText; - textarea.select(); -} -exports.rightClickHandler = rightClickHandler; - - - -},{}],17:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var HOVER_DURATION = 500; -var MouseZoneManager = (function () { - function MouseZoneManager(_terminal) { - var _this = this; - this._terminal = _terminal; - this._zones = []; - this._areZonesActive = false; - this._tooltipTimeout = null; - this._currentZone = null; - this._lastHoverCoords = [null, null]; - this._terminal.element.addEventListener('mousedown', function (e) { return _this._onMouseDown(e); }); - this._mouseMoveListener = function (e) { return _this._onMouseMove(e); }; - this._clickListener = function (e) { return _this._onClick(e); }; - } - MouseZoneManager.prototype.add = function (zone) { - this._zones.push(zone); - if (this._zones.length === 1) { - this._activate(); - } - }; - MouseZoneManager.prototype.clearAll = function (start, end) { - if (this._zones.length === 0) { - return; - } - if (!end) { - start = 0; - end = this._terminal.rows - 1; - } - for (var i = 0; i < this._zones.length; i++) { - var zone = this._zones[i]; - if (zone.y > start && zone.y <= end + 1) { - if (this._currentZone && this._currentZone === zone) { - this._currentZone.leaveCallback(); - this._currentZone = null; - } - this._zones.splice(i--, 1); - } - } - if (this._zones.length === 0) { - this._deactivate(); - } - }; - MouseZoneManager.prototype._activate = function () { - if (!this._areZonesActive) { - this._areZonesActive = true; - this._terminal.element.addEventListener('mousemove', this._mouseMoveListener); - this._terminal.element.addEventListener('click', this._clickListener); - } - }; - MouseZoneManager.prototype._deactivate = function () { - if (this._areZonesActive) { - this._areZonesActive = false; - this._terminal.element.removeEventListener('mousemove', this._mouseMoveListener); - this._terminal.element.removeEventListener('click', this._clickListener); - } - }; - MouseZoneManager.prototype._onMouseMove = function (e) { - if (this._lastHoverCoords[0] !== e.pageX || this._lastHoverCoords[1] !== e.pageY) { - this._onHover(e); - this._lastHoverCoords = [e.pageX, e.pageY]; - } - }; - MouseZoneManager.prototype._onHover = function (e) { - var _this = this; - var zone = this._findZoneEventAt(e); - if (zone === this._currentZone) { - return; - } - if (this._currentZone) { - this._currentZone.leaveCallback(); - this._currentZone = null; - if (this._tooltipTimeout) { - clearTimeout(this._tooltipTimeout); - } - } - if (!zone) { - return; - } - this._currentZone = zone; - if (zone.hoverCallback) { - zone.hoverCallback(e); - } - this._tooltipTimeout = setTimeout(function () { return _this._onTooltip(e); }, HOVER_DURATION); - }; - MouseZoneManager.prototype._onTooltip = function (e) { - this._tooltipTimeout = null; - var zone = this._findZoneEventAt(e); - if (zone && zone.tooltipCallback) { - zone.tooltipCallback(e); - } - }; - MouseZoneManager.prototype._onMouseDown = function (e) { - if (!this._areZonesActive) { - return; - } - var zone = this._findZoneEventAt(e); - if (zone) { - e.preventDefault(); - e.stopImmediatePropagation(); - } - }; - MouseZoneManager.prototype._onClick = function (e) { - var zone = this._findZoneEventAt(e); - if (zone) { - zone.clickCallback(e); - e.preventDefault(); - e.stopImmediatePropagation(); - } - }; - MouseZoneManager.prototype._findZoneEventAt = function (e) { - var coords = this._terminal.mouseHelper.getCoords(e, this._terminal.element, this._terminal.charMeasure, this._terminal.options.lineHeight, this._terminal.cols, this._terminal.rows); - if (!coords) { - return null; - } - for (var i = 0; i < this._zones.length; i++) { - var zone = this._zones[i]; - if (zone.y === coords[1] && zone.x1 <= coords[0] && zone.x2 > coords[0]) { - return zone; - } - } - ; - return null; - }; - return MouseZoneManager; -}()); -exports.MouseZoneManager = MouseZoneManager; -var MouseZone = (function () { - function MouseZone(x1, x2, y, clickCallback, hoverCallback, tooltipCallback, leaveCallback) { - this.x1 = x1; - this.x2 = x2; - this.y = y; - this.clickCallback = clickCallback; - this.hoverCallback = hoverCallback; - this.tooltipCallback = tooltipCallback; - this.leaveCallback = leaveCallback; - } - return MouseZone; -}()); -exports.MouseZone = MouseZone; - - - -},{}],18:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var CharAtlas_1 = require("./CharAtlas"); -var Buffer_1 = require("../Buffer"); -exports.INVERTED_DEFAULT_COLOR = -1; -var DIM_OPACITY = 0.5; -var BaseRenderLayer = (function () { - function BaseRenderLayer(container, id, zIndex, _alpha, _colors) { - this._alpha = _alpha; - this._colors = _colors; - this._scaledCharWidth = 0; - this._scaledCharHeight = 0; - this._scaledCellWidth = 0; - this._scaledCellHeight = 0; - this._scaledCharLeft = 0; - this._scaledCharTop = 0; - this._canvas = document.createElement('canvas'); - this._canvas.id = "xterm-" + id + "-layer"; - this._canvas.style.zIndex = zIndex.toString(); - this._ctx = this._canvas.getContext('2d', { alpha: _alpha }); - this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio); - if (!_alpha) { - this.clearAll(); - } - container.appendChild(this._canvas); - } - BaseRenderLayer.prototype.onOptionsChanged = function (terminal) { }; - BaseRenderLayer.prototype.onBlur = function (terminal) { }; - BaseRenderLayer.prototype.onFocus = function (terminal) { }; - BaseRenderLayer.prototype.onCursorMove = function (terminal) { }; - BaseRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { }; - BaseRenderLayer.prototype.onSelectionChanged = function (terminal, start, end) { }; - BaseRenderLayer.prototype.onThemeChanged = function (terminal, colorSet) { - this._refreshCharAtlas(terminal, colorSet); - }; - BaseRenderLayer.prototype._refreshCharAtlas = function (terminal, colorSet) { - var _this = this; - if (this._scaledCharWidth <= 0 && this._scaledCharHeight <= 0) { - return; - } - this._charAtlas = null; - var result = CharAtlas_1.acquireCharAtlas(terminal, this._colors, this._scaledCharWidth, this._scaledCharHeight); - if (result instanceof HTMLCanvasElement) { - this._charAtlas = result; - } - else { - result.then(function (bitmap) { return _this._charAtlas = bitmap; }); - } - }; - BaseRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) { - this._scaledCellWidth = dim.scaledCellWidth; - this._scaledCellHeight = dim.scaledCellHeight; - this._scaledCharWidth = dim.scaledCharWidth; - this._scaledCharHeight = dim.scaledCharHeight; - this._scaledCharLeft = dim.scaledCharLeft; - this._scaledCharTop = dim.scaledCharTop; - this._canvas.width = dim.scaledCanvasWidth; - this._canvas.height = dim.scaledCanvasHeight; - this._canvas.style.width = dim.canvasWidth + "px"; - this._canvas.style.height = dim.canvasHeight + "px"; - if (!this._alpha) { - this.clearAll(); - } - if (charSizeChanged) { - this._refreshCharAtlas(terminal, this._colors); - } - }; - BaseRenderLayer.prototype.fillCells = function (x, y, width, height) { - this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight); - }; - BaseRenderLayer.prototype.fillBottomLineAtCells = function (x, y, width) { - if (width === void 0) { width = 1; } - this._ctx.fillRect(x * this._scaledCellWidth, (y + 1) * this._scaledCellHeight - window.devicePixelRatio - 1, width * this._scaledCellWidth, window.devicePixelRatio); - }; - BaseRenderLayer.prototype.fillLeftLineAtCell = function (x, y) { - this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, window.devicePixelRatio, this._scaledCellHeight); - }; - BaseRenderLayer.prototype.strokeRectAtCell = function (x, y, width, height) { - this._ctx.lineWidth = window.devicePixelRatio; - this._ctx.strokeRect(x * this._scaledCellWidth + window.devicePixelRatio / 2, y * this._scaledCellHeight + (window.devicePixelRatio / 2), width * this._scaledCellWidth - window.devicePixelRatio, (height * this._scaledCellHeight) - window.devicePixelRatio); - }; - BaseRenderLayer.prototype.clearAll = function () { - if (this._alpha) { - this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height); - } - else { - this._ctx.fillStyle = this._colors.background; - this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height); - } - }; - BaseRenderLayer.prototype.clearCells = function (x, y, width, height) { - if (this._alpha) { - this._ctx.clearRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight); - } - else { - this._ctx.fillStyle = this._colors.background; - this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight); - } - }; - BaseRenderLayer.prototype.fillCharTrueColor = function (terminal, charData, x, y) { - this._ctx.font = terminal.options.fontSize * window.devicePixelRatio + "px " + terminal.options.fontFamily; - this._ctx.textBaseline = 'top'; - this._clipRow(terminal, y); - this._ctx.fillText(charData[Buffer_1.CHAR_DATA_CHAR_INDEX], x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop); - }; - BaseRenderLayer.prototype.drawChar = function (terminal, char, code, width, x, y, fg, bg, bold, dim) { - var colorIndex = 0; - if (fg < 256) { - colorIndex = fg + 2; - } - else { - if (bold && terminal.options.enableBold) { - colorIndex = 1; - } - } - var isAscii = code < 256; - var isBasicColor = (colorIndex > 1 && fg < 16) && (fg < 8 || bold); - var isDefaultColor = fg >= 256; - var isDefaultBackground = bg >= 256; - if (this._charAtlas && isAscii && (isBasicColor || isDefaultColor) && isDefaultBackground) { - var charAtlasCellWidth = this._scaledCharWidth + CharAtlas_1.CHAR_ATLAS_CELL_SPACING; - var charAtlasCellHeight = this._scaledCharHeight + CharAtlas_1.CHAR_ATLAS_CELL_SPACING; - if (dim) { - this._ctx.globalAlpha = DIM_OPACITY; - } - if (bold && !terminal.options.enableBold) { - if (colorIndex > 1) { - colorIndex -= 8; - } - } - this._ctx.drawImage(this._charAtlas, code * charAtlasCellWidth, colorIndex * charAtlasCellHeight, charAtlasCellWidth, this._scaledCharHeight, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop, charAtlasCellWidth, this._scaledCharHeight); - } - else { - this._drawUncachedChar(terminal, char, width, fg, x, y, bold, dim); - } - }; - BaseRenderLayer.prototype._drawUncachedChar = function (terminal, char, width, fg, x, y, bold, dim) { - this._ctx.save(); - this._ctx.font = terminal.options.fontSize * window.devicePixelRatio + "px " + terminal.options.fontFamily; - if (bold && terminal.options.enableBold) { - this._ctx.font = "bold " + this._ctx.font; - } - this._ctx.textBaseline = 'top'; - if (fg === exports.INVERTED_DEFAULT_COLOR) { - this._ctx.fillStyle = this._colors.background; - } - else if (fg < 256) { - this._ctx.fillStyle = this._colors.ansi[fg]; - } - else { - this._ctx.fillStyle = this._colors.foreground; - } - this._clipRow(terminal, y); - if (dim) { - this._ctx.globalAlpha = DIM_OPACITY; - } - this._ctx.fillText(char, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop); - this._ctx.restore(); - }; - BaseRenderLayer.prototype._clipRow = function (terminal, y) { - this._ctx.beginPath(); - this._ctx.rect(0, y * this._scaledCellHeight, terminal.cols * this._scaledCellWidth, this._scaledCellHeight); - this._ctx.clip(); - }; - return BaseRenderLayer; -}()); -exports.BaseRenderLayer = BaseRenderLayer; - - - -},{"../Buffer":1,"./CharAtlas":19}],19:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Browser_1 = require("../utils/Browser"); -exports.CHAR_ATLAS_CELL_SPACING = 1; -var charAtlasCache = []; -function acquireCharAtlas(terminal, colors, scaledCharWidth, scaledCharHeight) { - var newConfig = generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors); - for (var i = 0; i < charAtlasCache.length; i++) { - var entry = charAtlasCache[i]; - var ownedByIndex = entry.ownedBy.indexOf(terminal); - if (ownedByIndex >= 0) { - if (configEquals(entry.config, newConfig)) { - return entry.bitmap; - } - else { - if (entry.ownedBy.length === 1) { - charAtlasCache.splice(i, 1); - } - else { - entry.ownedBy.splice(ownedByIndex, 1); - } - break; - } - } - } - for (var i = 0; i < charAtlasCache.length; i++) { - var entry = charAtlasCache[i]; - if (configEquals(entry.config, newConfig)) { - entry.ownedBy.push(terminal); - return entry.bitmap; - } - } - var newEntry = { - bitmap: generator.generate(scaledCharWidth, scaledCharHeight, terminal.options.fontSize, terminal.options.fontFamily, colors.background, colors.foreground, colors.ansi), - config: newConfig, - ownedBy: [terminal] - }; - charAtlasCache.push(newEntry); - return newEntry.bitmap; -} -exports.acquireCharAtlas = acquireCharAtlas; -function generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors) { - var clonedColors = { - foreground: colors.foreground, - background: colors.background, - cursor: null, - cursorAccent: null, - selection: null, - ansi: colors.ansi.slice(0, 16) - }; - return { - scaledCharWidth: scaledCharWidth, - scaledCharHeight: scaledCharHeight, - fontFamily: terminal.options.fontFamily, - fontSize: terminal.options.fontSize, - colors: clonedColors - }; -} -function configEquals(a, b) { - for (var i = 0; i < a.colors.ansi.length; i++) { - if (a.colors.ansi[i] !== b.colors.ansi[i]) { - return false; - } - } - return a.fontFamily === b.fontFamily && - a.fontSize === b.fontSize && - a.scaledCharWidth === b.scaledCharWidth && - a.scaledCharHeight === b.scaledCharHeight && - a.colors.foreground === b.colors.foreground && - a.colors.background === b.colors.background; -} -var generator; -function initialize(document) { - if (!generator) { - generator = new CharAtlasGenerator(document); - } -} -exports.initialize = initialize; -var CharAtlasGenerator = (function () { - function CharAtlasGenerator(_document) { - this._document = _document; - this._canvas = this._document.createElement('canvas'); - this._ctx = this._canvas.getContext('2d', { alpha: false }); - this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio); - } - CharAtlasGenerator.prototype.generate = function (scaledCharWidth, scaledCharHeight, fontSize, fontFamily, background, foreground, ansiColors) { - var cellWidth = scaledCharWidth + exports.CHAR_ATLAS_CELL_SPACING; - var cellHeight = scaledCharHeight + exports.CHAR_ATLAS_CELL_SPACING; - this._canvas.width = 255 * cellWidth; - this._canvas.height = (2 + 16) * cellHeight; - this._ctx.fillStyle = background; - this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height); - this._ctx.save(); - this._ctx.fillStyle = foreground; - this._ctx.font = fontSize * window.devicePixelRatio + "px " + fontFamily; - this._ctx.textBaseline = 'top'; - for (var i = 0; i < 256; i++) { - this._ctx.save(); - this._ctx.beginPath(); - this._ctx.rect(i * cellWidth, 0, cellWidth, cellHeight); - this._ctx.clip(); - this._ctx.fillText(String.fromCharCode(i), i * cellWidth, 0); - this._ctx.restore(); - } - this._ctx.save(); - this._ctx.font = "bold " + this._ctx.font; - for (var i = 0; i < 256; i++) { - this._ctx.save(); - this._ctx.beginPath(); - this._ctx.rect(i * cellWidth, cellHeight, cellWidth, cellHeight); - this._ctx.clip(); - this._ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight); - this._ctx.restore(); - } - this._ctx.restore(); - this._ctx.font = fontSize * window.devicePixelRatio + "px " + fontFamily; - for (var colorIndex = 0; colorIndex < 16; colorIndex++) { - if (colorIndex === 8) { - this._ctx.font = "bold " + this._ctx.font; - } - var y = (colorIndex + 2) * cellHeight; - for (var i = 0; i < 256; i++) { - this._ctx.save(); - this._ctx.beginPath(); - this._ctx.rect(i * cellWidth, y, cellWidth, cellHeight); - this._ctx.clip(); - this._ctx.fillStyle = ansiColors[colorIndex]; - this._ctx.fillText(String.fromCharCode(i), i * cellWidth, y); - this._ctx.restore(); - } - } - this._ctx.restore(); - if (!('createImageBitmap' in window) || Browser_1.isFirefox) { - var result = this._canvas; - this._canvas = this._document.createElement('canvas'); - this._ctx = this._canvas.getContext('2d'); - this._ctx.scale(window.devicePixelRatio, window.devicePixelRatio); - return result; - } - var charAtlasImageData = this._ctx.getImageData(0, 0, this._canvas.width, this._canvas.height); - var r = parseInt(background.substr(1, 2), 16); - var g = parseInt(background.substr(3, 2), 16); - var b = parseInt(background.substr(5, 2), 16); - this._clearColor(charAtlasImageData, r, g, b); - var promise = window.createImageBitmap(charAtlasImageData); - this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height); - return promise; - }; - CharAtlasGenerator.prototype._clearColor = function (imageData, r, g, b) { - for (var offset = 0; offset < imageData.data.length; offset += 4) { - if (imageData.data[offset] === r && - imageData.data[offset + 1] === g && - imageData.data[offset + 2] === b) { - imageData.data[offset + 3] = 0; - } - } - }; - return CharAtlasGenerator; -}()); - - - -},{"../utils/Browser":28}],20:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var DEFAULT_FOREGROUND = '#ffffff'; -var DEFAULT_BACKGROUND = '#000000'; -var DEFAULT_CURSOR = '#ffffff'; -var DEFAULT_CURSOR_ACCENT = '#000000'; -var DEFAULT_SELECTION = 'rgba(255, 255, 255, 0.3)'; -exports.DEFAULT_ANSI_COLORS = [ - '#2e3436', - '#cc0000', - '#4e9a06', - '#c4a000', - '#3465a4', - '#75507b', - '#06989a', - '#d3d7cf', - '#555753', - '#ef2929', - '#8ae234', - '#fce94f', - '#729fcf', - '#ad7fa8', - '#34e2e2', - '#eeeeec' -]; -function generate256Colors(first16Colors) { - var colors = first16Colors.slice(); - var v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff]; - for (var i = 0; i < 216; i++) { - var r = toPaddedHex(v[(i / 36) % 6 | 0]); - var g = toPaddedHex(v[(i / 6) % 6 | 0]); - var b = toPaddedHex(v[i % 6]); - colors.push("#" + r + g + b); - } - for (var i = 0; i < 24; i++) { - var c = toPaddedHex(8 + i * 10); - colors.push("#" + c + c + c); - } - return colors; -} -function toPaddedHex(c) { - var s = c.toString(16); - return s.length < 2 ? '0' + s : s; -} -var ColorManager = (function () { - function ColorManager() { - this.colors = { - foreground: DEFAULT_FOREGROUND, - background: DEFAULT_BACKGROUND, - cursor: DEFAULT_CURSOR, - cursorAccent: DEFAULT_CURSOR_ACCENT, - selection: DEFAULT_SELECTION, - ansi: generate256Colors(exports.DEFAULT_ANSI_COLORS) - }; - } - ColorManager.prototype.setTheme = function (theme) { - this.colors.foreground = theme.foreground || DEFAULT_FOREGROUND; - this.colors.background = this._validateColor(theme.background, DEFAULT_BACKGROUND); - this.colors.cursor = theme.cursor || DEFAULT_CURSOR; - this.colors.cursorAccent = theme.cursorAccent || DEFAULT_CURSOR_ACCENT; - this.colors.selection = theme.selection || DEFAULT_SELECTION; - this.colors.ansi[0] = theme.black || exports.DEFAULT_ANSI_COLORS[0]; - this.colors.ansi[1] = theme.red || exports.DEFAULT_ANSI_COLORS[1]; - this.colors.ansi[2] = theme.green || exports.DEFAULT_ANSI_COLORS[2]; - this.colors.ansi[3] = theme.yellow || exports.DEFAULT_ANSI_COLORS[3]; - this.colors.ansi[4] = theme.blue || exports.DEFAULT_ANSI_COLORS[4]; - this.colors.ansi[5] = theme.magenta || exports.DEFAULT_ANSI_COLORS[5]; - this.colors.ansi[6] = theme.cyan || exports.DEFAULT_ANSI_COLORS[6]; - this.colors.ansi[7] = theme.white || exports.DEFAULT_ANSI_COLORS[7]; - this.colors.ansi[8] = theme.brightBlack || exports.DEFAULT_ANSI_COLORS[8]; - this.colors.ansi[9] = theme.brightRed || exports.DEFAULT_ANSI_COLORS[9]; - this.colors.ansi[10] = theme.brightGreen || exports.DEFAULT_ANSI_COLORS[10]; - this.colors.ansi[11] = theme.brightYellow || exports.DEFAULT_ANSI_COLORS[11]; - this.colors.ansi[12] = theme.brightBlue || exports.DEFAULT_ANSI_COLORS[12]; - this.colors.ansi[13] = theme.brightMagenta || exports.DEFAULT_ANSI_COLORS[13]; - this.colors.ansi[14] = theme.brightCyan || exports.DEFAULT_ANSI_COLORS[14]; - this.colors.ansi[15] = theme.brightWhite || exports.DEFAULT_ANSI_COLORS[15]; - }; - ColorManager.prototype._validateColor = function (color, fallback) { - if (!color) { - return fallback; - } - if (color.length === 7 && color.charAt(0) === '#') { - return color; - } - if (color.length === 4 && color.charAt(0) === '#') { - var r = color.charAt(1); - var g = color.charAt(2); - var b = color.charAt(3); - return "#" + r + r + g + g + b + b; - } - return fallback; - }; - return ColorManager; -}()); -exports.ColorManager = ColorManager; - - - -},{}],21:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var Buffer_1 = require("../Buffer"); -var BaseRenderLayer_1 = require("./BaseRenderLayer"); -var BLINK_INTERVAL = 600; -var CursorRenderLayer = (function (_super) { - __extends(CursorRenderLayer, _super); - function CursorRenderLayer(container, zIndex, colors) { - var _this = _super.call(this, container, 'cursor', zIndex, true, colors) || this; - _this._state = { - x: null, - y: null, - isFocused: null, - style: null, - width: null, - }; - _this._cursorRenderers = { - 'bar': _this._renderBarCursor.bind(_this), - 'block': _this._renderBlockCursor.bind(_this), - 'underline': _this._renderUnderlineCursor.bind(_this) - }; - return _this; - } - CursorRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) { - _super.prototype.resize.call(this, terminal, dim, charSizeChanged); - this._state = { - x: null, - y: null, - isFocused: null, - style: null, - width: null, - }; - }; - CursorRenderLayer.prototype.reset = function (terminal) { - this._clearCursor(); - if (this._cursorBlinkStateManager) { - this._cursorBlinkStateManager.dispose(); - this._cursorBlinkStateManager = null; - this.onOptionsChanged(terminal); - } - }; - CursorRenderLayer.prototype.onBlur = function (terminal) { - if (this._cursorBlinkStateManager) { - this._cursorBlinkStateManager.pause(); - } - terminal.refresh(terminal.buffer.y, terminal.buffer.y); - }; - CursorRenderLayer.prototype.onFocus = function (terminal) { - if (this._cursorBlinkStateManager) { - this._cursorBlinkStateManager.resume(terminal); - } - else { - terminal.refresh(terminal.buffer.y, terminal.buffer.y); - } - }; - CursorRenderLayer.prototype.onOptionsChanged = function (terminal) { - var _this = this; - if (terminal.options.cursorBlink) { - if (!this._cursorBlinkStateManager) { - this._cursorBlinkStateManager = new CursorBlinkStateManager(terminal, function () { - _this._render(terminal, true); - }); - } - } - else { - if (this._cursorBlinkStateManager) { - this._cursorBlinkStateManager.dispose(); - this._cursorBlinkStateManager = null; - } - terminal.refresh(terminal.buffer.y, terminal.buffer.y); - } - }; - CursorRenderLayer.prototype.onCursorMove = function (terminal) { - if (this._cursorBlinkStateManager) { - this._cursorBlinkStateManager.restartBlinkAnimation(terminal); - } - }; - CursorRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { - if (!this._cursorBlinkStateManager || this._cursorBlinkStateManager.isPaused) { - this._render(terminal, false); - } - }; - CursorRenderLayer.prototype._render = function (terminal, triggeredByAnimationFrame) { - if (!terminal.cursorState || terminal.cursorHidden) { - this._clearCursor(); - return; - } - var cursorY = terminal.buffer.ybase + terminal.buffer.y; - var viewportRelativeCursorY = cursorY - terminal.buffer.ydisp; - if (viewportRelativeCursorY < 0 || viewportRelativeCursorY >= terminal.rows) { - this._clearCursor(); - return; - } - var charData = terminal.buffer.lines.get(cursorY)[terminal.buffer.x]; - if (!charData) { - return; - } - if (!terminal.isFocused) { - this._clearCursor(); - this._ctx.save(); - this._ctx.fillStyle = this._colors.cursor; - this._renderBlurCursor(terminal, terminal.buffer.x, viewportRelativeCursorY, charData); - this._ctx.restore(); - this._state.x = terminal.buffer.x; - this._state.y = viewportRelativeCursorY; - this._state.isFocused = false; - this._state.style = terminal.options.cursorStyle; - this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]; - return; - } - if (this._cursorBlinkStateManager && !this._cursorBlinkStateManager.isCursorVisible) { - this._clearCursor(); - return; - } - if (this._state) { - if (this._state.x === terminal.buffer.x && - this._state.y === viewportRelativeCursorY && - this._state.isFocused === terminal.isFocused && - this._state.style === terminal.options.cursorStyle && - this._state.width === charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]) { - return; - } - this._clearCursor(); - } - this._ctx.save(); - this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, charData); - this._ctx.restore(); - this._state.x = terminal.buffer.x; - this._state.y = viewportRelativeCursorY; - this._state.isFocused = false; - this._state.style = terminal.options.cursorStyle; - this._state.width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]; - }; - CursorRenderLayer.prototype._clearCursor = function () { - if (this._state) { - this.clearCells(this._state.x, this._state.y, this._state.width, 1); - this._state = { - x: null, - y: null, - isFocused: null, - style: null, - width: null, - }; - } - }; - CursorRenderLayer.prototype._renderBarCursor = function (terminal, x, y, charData) { - this._ctx.save(); - this._ctx.fillStyle = this._colors.cursor; - this.fillLeftLineAtCell(x, y); - this._ctx.restore(); - }; - CursorRenderLayer.prototype._renderBlockCursor = function (terminal, x, y, charData) { - this._ctx.save(); - this._ctx.fillStyle = this._colors.cursor; - this.fillCells(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1); - this._ctx.fillStyle = this._colors.cursorAccent; - this.fillCharTrueColor(terminal, charData, x, y); - this._ctx.restore(); - }; - CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, charData) { - this._ctx.save(); - this._ctx.fillStyle = this._colors.cursor; - this.fillBottomLineAtCells(x, y); - this._ctx.restore(); - }; - CursorRenderLayer.prototype._renderBlurCursor = function (terminal, x, y, charData) { - this._ctx.save(); - this._ctx.strokeStyle = this._colors.cursor; - this.strokeRectAtCell(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1); - this._ctx.restore(); - }; - return CursorRenderLayer; -}(BaseRenderLayer_1.BaseRenderLayer)); -exports.CursorRenderLayer = CursorRenderLayer; -var CursorBlinkStateManager = (function () { - function CursorBlinkStateManager(terminal, renderCallback) { - this.renderCallback = renderCallback; - this.isCursorVisible = true; - if (terminal.isFocused) { - this._restartInterval(); - } - } - Object.defineProperty(CursorBlinkStateManager.prototype, "isPaused", { - get: function () { return !(this._blinkStartTimeout || this._blinkInterval); }, - enumerable: true, - configurable: true - }); - CursorBlinkStateManager.prototype.dispose = function () { - if (this._blinkInterval) { - window.clearInterval(this._blinkInterval); - this._blinkInterval = null; - } - if (this._blinkStartTimeout) { - window.clearTimeout(this._blinkStartTimeout); - this._blinkStartTimeout = null; - } - if (this._animationFrame) { - window.cancelAnimationFrame(this._animationFrame); - this._animationFrame = null; - } - }; - CursorBlinkStateManager.prototype.restartBlinkAnimation = function (terminal) { - var _this = this; - if (this.isPaused) { - return; - } - this._animationTimeRestarted = Date.now(); - this.isCursorVisible = true; - if (!this._animationFrame) { - this._animationFrame = window.requestAnimationFrame(function () { - _this.renderCallback(); - _this._animationFrame = null; - }); - } - }; - CursorBlinkStateManager.prototype._restartInterval = function (timeToStart) { - var _this = this; - if (timeToStart === void 0) { timeToStart = BLINK_INTERVAL; } - if (this._blinkInterval) { - window.clearInterval(this._blinkInterval); - } - this._blinkStartTimeout = setTimeout(function () { - if (_this._animationTimeRestarted) { - var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted); - _this._animationTimeRestarted = null; - if (time > 0) { - _this._restartInterval(time); - return; - } - } - _this.isCursorVisible = false; - _this._animationFrame = window.requestAnimationFrame(function () { - _this.renderCallback(); - _this._animationFrame = null; - }); - _this._blinkInterval = setInterval(function () { - if (_this._animationTimeRestarted) { - var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted); - _this._animationTimeRestarted = null; - _this._restartInterval(time); - return; - } - _this.isCursorVisible = !_this.isCursorVisible; - _this._animationFrame = window.requestAnimationFrame(function () { - _this.renderCallback(); - _this._animationFrame = null; - }); - }, BLINK_INTERVAL); - }, timeToStart); - }; - CursorBlinkStateManager.prototype.pause = function () { - this.isCursorVisible = true; - if (this._blinkInterval) { - window.clearInterval(this._blinkInterval); - this._blinkInterval = null; - } - if (this._blinkStartTimeout) { - window.clearTimeout(this._blinkStartTimeout); - this._blinkStartTimeout = null; - } - if (this._animationFrame) { - window.cancelAnimationFrame(this._animationFrame); - this._animationFrame = null; - } - }; - CursorBlinkStateManager.prototype.resume = function (terminal) { - this._animationTimeRestarted = null; - this._restartInterval(); - this.restartBlinkAnimation(terminal); - }; - return CursorBlinkStateManager; -}()); - - - -},{"../Buffer":1,"./BaseRenderLayer":18}],22:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var GridCache = (function () { - function GridCache() { - this.cache = []; - } - GridCache.prototype.resize = function (width, height) { - for (var x = 0; x < width; x++) { - if (this.cache.length <= x) { - this.cache.push([]); - } - for (var y = this.cache[x].length; y < height; y++) { - this.cache[x].push(null); - } - this.cache[x].length = height; - } - this.cache.length = width; - }; - GridCache.prototype.clear = function () { - for (var x = 0; x < this.cache.length; x++) { - for (var y = 0; y < this.cache[x].length; y++) { - this.cache[x][y] = null; - } - } - }; - return GridCache; -}()); -exports.GridCache = GridCache; - - - -},{}],23:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var BaseRenderLayer_1 = require("./BaseRenderLayer"); -var Types_1 = require("../Types"); -var LinkRenderLayer = (function (_super) { - __extends(LinkRenderLayer, _super); - function LinkRenderLayer(container, zIndex, colors, terminal) { - var _this = _super.call(this, container, 'link', zIndex, true, colors) || this; - _this._state = null; - terminal.linkifier.on(Types_1.LinkHoverEventTypes.HOVER, function (e) { return _this._onLinkHover(e); }); - terminal.linkifier.on(Types_1.LinkHoverEventTypes.LEAVE, function (e) { return _this._onLinkLeave(e); }); - return _this; - } - LinkRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) { - _super.prototype.resize.call(this, terminal, dim, charSizeChanged); - this._state = null; - }; - LinkRenderLayer.prototype.reset = function (terminal) { - this._clearCurrentLink(); - }; - LinkRenderLayer.prototype._clearCurrentLink = function () { - if (this._state) { - this.clearCells(this._state.x, this._state.y, this._state.length, 1); - this._state = null; - } - }; - LinkRenderLayer.prototype._onLinkHover = function (e) { - this._ctx.fillStyle = this._colors.foreground; - this.fillBottomLineAtCells(e.x, e.y, e.length); - this._state = e; - }; - LinkRenderLayer.prototype._onLinkLeave = function (e) { - this._clearCurrentLink(); - }; - return LinkRenderLayer; -}(BaseRenderLayer_1.BaseRenderLayer)); -exports.LinkRenderLayer = LinkRenderLayer; - - - -},{"../Types":14,"./BaseRenderLayer":18}],24:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var TextRenderLayer_1 = require("./TextRenderLayer"); -var SelectionRenderLayer_1 = require("./SelectionRenderLayer"); -var CursorRenderLayer_1 = require("./CursorRenderLayer"); -var ColorManager_1 = require("./ColorManager"); -var LinkRenderLayer_1 = require("./LinkRenderLayer"); -var EventEmitter_1 = require("../EventEmitter"); -var Renderer = (function (_super) { - __extends(Renderer, _super); - function Renderer(_terminal, theme) { - var _this = _super.call(this) || this; - _this._terminal = _terminal; - _this._refreshRowsQueue = []; - _this._refreshAnimationFrame = null; - _this.colorManager = new ColorManager_1.ColorManager(); - if (theme) { - _this.colorManager.setTheme(theme); - } - _this._renderLayers = [ - new TextRenderLayer_1.TextRenderLayer(_this._terminal.element, 0, _this.colorManager.colors), - new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.element, 1, _this.colorManager.colors), - new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.element, 2, _this.colorManager.colors, _this._terminal), - new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.element, 3, _this.colorManager.colors) - ]; - _this.dimensions = { - scaledCharWidth: null, - scaledCharHeight: null, - scaledCellWidth: null, - scaledCellHeight: null, - scaledCharLeft: null, - scaledCharTop: null, - scaledCanvasWidth: null, - scaledCanvasHeight: null, - canvasWidth: null, - canvasHeight: null, - actualCellWidth: null, - actualCellHeight: null - }; - _this._devicePixelRatio = window.devicePixelRatio; - _this._updateDimensions(); - _this.onOptionsChanged(); - return _this; - } - Renderer.prototype.onWindowResize = function (devicePixelRatio) { - if (this._devicePixelRatio !== devicePixelRatio) { - this._devicePixelRatio = devicePixelRatio; - this.onResize(this._terminal.cols, this._terminal.rows, true); - } - }; - Renderer.prototype.setTheme = function (theme) { - var _this = this; - this.colorManager.setTheme(theme); - this._renderLayers.forEach(function (l) { - l.onThemeChanged(_this._terminal, _this.colorManager.colors); - l.reset(_this._terminal); - }); - this._terminal.refresh(0, this._terminal.rows - 1); - return this.colorManager.colors; - }; - Renderer.prototype.onResize = function (cols, rows, didCharSizeChange) { - var _this = this; - this._updateDimensions(); - this._renderLayers.forEach(function (l) { return l.resize(_this._terminal, _this.dimensions, didCharSizeChange); }); - this._terminal.refresh(0, this._terminal.rows - 1); - this.emit('resize', { - width: this.dimensions.canvasWidth, - height: this.dimensions.canvasHeight - }); - }; - Renderer.prototype.onCharSizeChanged = function () { - this.onResize(this._terminal.cols, this._terminal.rows, true); - }; - Renderer.prototype.onBlur = function () { - var _this = this; - this._renderLayers.forEach(function (l) { return l.onBlur(_this._terminal); }); - }; - Renderer.prototype.onFocus = function () { - var _this = this; - this._renderLayers.forEach(function (l) { return l.onFocus(_this._terminal); }); - }; - Renderer.prototype.onSelectionChanged = function (start, end) { - var _this = this; - this._renderLayers.forEach(function (l) { return l.onSelectionChanged(_this._terminal, start, end); }); - }; - Renderer.prototype.onCursorMove = function () { - var _this = this; - this._renderLayers.forEach(function (l) { return l.onCursorMove(_this._terminal); }); - }; - Renderer.prototype.onOptionsChanged = function () { - var _this = this; - this._renderLayers.forEach(function (l) { return l.onOptionsChanged(_this._terminal); }); - }; - Renderer.prototype.clear = function () { - var _this = this; - this._renderLayers.forEach(function (l) { return l.reset(_this._terminal); }); - }; - Renderer.prototype.queueRefresh = function (start, end) { - this._refreshRowsQueue.push({ start: start, end: end }); - if (!this._refreshAnimationFrame) { - this._refreshAnimationFrame = window.requestAnimationFrame(this._refreshLoop.bind(this)); - } - }; - Renderer.prototype._refreshLoop = function () { - var _this = this; - var start; - var end; - if (this._refreshRowsQueue.length > 4) { - start = 0; - end = this._terminal.rows - 1; - } - else { - start = this._refreshRowsQueue[0].start; - end = this._refreshRowsQueue[0].end; - for (var i = 1; i < this._refreshRowsQueue.length; i++) { - if (this._refreshRowsQueue[i].start < start) { - start = this._refreshRowsQueue[i].start; - } - if (this._refreshRowsQueue[i].end > end) { - end = this._refreshRowsQueue[i].end; - } - } - } - this._refreshRowsQueue = []; - this._refreshAnimationFrame = null; - start = Math.max(start, 0); - end = Math.min(end, this._terminal.rows - 1); - this._renderLayers.forEach(function (l) { return l.onGridChanged(_this._terminal, start, end); }); - this._terminal.emit('refresh', { start: start, end: end }); - }; - Renderer.prototype._updateDimensions = function () { - if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) { - return; - } - this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio); - this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio); - this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight); - this.dimensions.scaledCharTop = this._terminal.options.lineHeight === 1 ? 0 : Math.round((this.dimensions.scaledCellHeight - this.dimensions.scaledCharHeight) / 2); - this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing); - this.dimensions.scaledCharLeft = Math.floor(this._terminal.options.letterSpacing / 2); - this.dimensions.scaledCanvasHeight = this._terminal.rows * this.dimensions.scaledCellHeight; - this.dimensions.scaledCanvasWidth = this._terminal.cols * this.dimensions.scaledCellWidth; - this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio); - this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio); - this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows; - this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols; - }; - return Renderer; -}(EventEmitter_1.EventEmitter)); -exports.Renderer = Renderer; - - - -},{"../EventEmitter":7,"./ColorManager":20,"./CursorRenderLayer":21,"./LinkRenderLayer":23,"./SelectionRenderLayer":25,"./TextRenderLayer":26}],25:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var BaseRenderLayer_1 = require("./BaseRenderLayer"); -var SelectionRenderLayer = (function (_super) { - __extends(SelectionRenderLayer, _super); - function SelectionRenderLayer(container, zIndex, colors) { - var _this = _super.call(this, container, 'selection', zIndex, true, colors) || this; - _this._state = { - start: null, - end: null - }; - return _this; - } - SelectionRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) { - _super.prototype.resize.call(this, terminal, dim, charSizeChanged); - this._state = { - start: null, - end: null - }; - }; - SelectionRenderLayer.prototype.reset = function (terminal) { - if (this._state.start && this._state.end) { - this._state = { - start: null, - end: null - }; - this.clearAll(); - } - }; - SelectionRenderLayer.prototype.onSelectionChanged = function (terminal, start, end) { - if (this._state.start === start || this._state.end === end) { - return; - } - this.clearAll(); - if (!start || !end) { - return; - } - var viewportStartRow = start[1] - terminal.buffer.ydisp; - var viewportEndRow = end[1] - terminal.buffer.ydisp; - var viewportCappedStartRow = Math.max(viewportStartRow, 0); - var viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1); - if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) { - return; - } - var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0; - var startRowEndCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : terminal.cols; - this._ctx.fillStyle = this._colors.selection; - this.fillCells(startCol, viewportCappedStartRow, startRowEndCol - startCol, 1); - var middleRowsCount = Math.max(viewportCappedEndRow - viewportCappedStartRow - 1, 0); - this.fillCells(0, viewportCappedStartRow + 1, terminal.cols, middleRowsCount); - if (viewportCappedStartRow !== viewportCappedEndRow) { - var endCol = viewportEndRow === viewportCappedEndRow ? end[0] : terminal.cols; - this.fillCells(0, viewportCappedEndRow, endCol, 1); - } - this._state.start = [start[0], start[1]]; - this._state.end = [end[0], end[1]]; - }; - return SelectionRenderLayer; -}(BaseRenderLayer_1.BaseRenderLayer)); -exports.SelectionRenderLayer = SelectionRenderLayer; - - - -},{"./BaseRenderLayer":18}],26:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var Buffer_1 = require("../Buffer"); -var Types_1 = require("./Types"); -var GridCache_1 = require("./GridCache"); -var BaseRenderLayer_1 = require("./BaseRenderLayer"); -var OVERLAP_OWNED_CHAR_DATA = [null, '', 0, -1]; -var TextRenderLayer = (function (_super) { - __extends(TextRenderLayer, _super); - function TextRenderLayer(container, zIndex, colors) { - var _this = _super.call(this, container, 'text', zIndex, false, colors) || this; - _this._characterOverlapCache = {}; - _this._state = new GridCache_1.GridCache(); - return _this; - } - TextRenderLayer.prototype.resize = function (terminal, dim, charSizeChanged) { - _super.prototype.resize.call(this, terminal, dim, charSizeChanged); - var terminalFont = terminal.options.fontSize * window.devicePixelRatio + "px " + terminal.options.fontFamily; - if (this._characterWidth !== dim.scaledCharWidth || this._characterFont !== terminalFont) { - this._characterWidth = dim.scaledCharWidth; - this._characterFont = terminalFont; - this._characterOverlapCache = {}; - } - this._state.clear(); - this._state.resize(terminal.cols, terminal.rows); - }; - TextRenderLayer.prototype.reset = function (terminal) { - this._state.clear(); - this.clearAll(); - }; - TextRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { - if (this._state.cache.length === 0) { - return; - } - for (var y = startRow; y <= endRow; y++) { - var row = y + terminal.buffer.ydisp; - var line = terminal.buffer.lines.get(row); - this.clearCells(0, y, terminal.cols, 1); - for (var x = 0; x < terminal.cols; x++) { - var charData = line[x]; - var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX]; - var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX]; - var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX]; - var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]; - if (width === 0) { - continue; - } - if (code === 32) { - if (x > 0) { - var previousChar = line[x - 1]; - if (this._isOverlapping(previousChar)) { - continue; - } - } - } - var flags = attr >> 18; - var bg = attr & 0x1ff; - var isDefaultBackground = bg >= 256; - var isInvisible = flags & Types_1.FLAGS.INVISIBLE; - var isInverted = flags & Types_1.FLAGS.INVERSE; - if (!code || (code === 32 && isDefaultBackground && !isInverted) || isInvisible) { - continue; - } - if (width !== 0 && this._isOverlapping(charData)) { - if (x < line.length - 1 && line[x + 1][Buffer_1.CHAR_DATA_CODE_INDEX] === 32) { - width = 2; - } - } - var fg = (attr >> 9) & 0x1ff; - if (isInverted) { - var temp = bg; - bg = fg; - fg = temp; - if (fg === 256) { - fg = BaseRenderLayer_1.INVERTED_DEFAULT_COLOR; - } - if (bg === 257) { - bg = BaseRenderLayer_1.INVERTED_DEFAULT_COLOR; - } - } - if (width === 2) { - } - if (bg < 256) { - this._ctx.save(); - this._ctx.fillStyle = (bg === BaseRenderLayer_1.INVERTED_DEFAULT_COLOR ? this._colors.foreground : this._colors.ansi[bg]); - this.fillCells(x, y, width, 1); - this._ctx.restore(); - } - this._ctx.save(); - if (flags & Types_1.FLAGS.BOLD) { - this._ctx.font = "bold " + this._ctx.font; - if (fg < 8) { - fg += 8; - } - } - if (flags & Types_1.FLAGS.UNDERLINE) { - if (fg === BaseRenderLayer_1.INVERTED_DEFAULT_COLOR) { - this._ctx.fillStyle = this._colors.background; - } - else if (fg < 256) { - this._ctx.fillStyle = this._colors.ansi[fg]; - } - else { - this._ctx.fillStyle = this._colors.foreground; - } - this.fillBottomLineAtCells(x, y); - } - this.drawChar(terminal, char, code, width, x, y, fg, bg, !!(flags & Types_1.FLAGS.BOLD), !!(flags & Types_1.FLAGS.DIM)); - this._ctx.restore(); - } - } - }; - TextRenderLayer.prototype._isOverlapping = function (charData) { - if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] !== 1) { - return false; - } - var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX]; - if (code < 256) { - return false; - } - var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX]; - if (this._characterOverlapCache.hasOwnProperty(char)) { - return this._characterOverlapCache[char]; - } - this._ctx.save(); - this._ctx.font = this._characterFont; - var overlaps = Math.floor(this._ctx.measureText(char).width) > this._characterWidth; - this._ctx.restore(); - this._characterOverlapCache[char] = overlaps; - return overlaps; - }; - TextRenderLayer.prototype._clearChar = function (x, y) { - var colsToClear = 1; - var state = this._state.cache[x][y]; - if (state && state[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) { - colsToClear = 2; - } - this.clearCells(x, y, colsToClear, 1); - }; - return TextRenderLayer; -}(BaseRenderLayer_1.BaseRenderLayer)); -exports.TextRenderLayer = TextRenderLayer; - - - -},{"../Buffer":1,"./BaseRenderLayer":18,"./GridCache":22,"./Types":27}],27:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var FLAGS; -(function (FLAGS) { - FLAGS[FLAGS["BOLD"] = 1] = "BOLD"; - FLAGS[FLAGS["UNDERLINE"] = 2] = "UNDERLINE"; - FLAGS[FLAGS["BLINK"] = 4] = "BLINK"; - FLAGS[FLAGS["INVERSE"] = 8] = "INVERSE"; - FLAGS[FLAGS["INVISIBLE"] = 16] = "INVISIBLE"; - FLAGS[FLAGS["DIM"] = 32] = "DIM"; -})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); -; - - - -},{}],28:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Generic_1 = require("./Generic"); -var isNode = (typeof navigator === 'undefined') ? true : false; -var userAgent = (isNode) ? 'node' : navigator.userAgent; -var platform = (isNode) ? 'node' : navigator.platform; -exports.isFirefox = !!~userAgent.indexOf('Firefox'); -exports.isMSIE = !!~userAgent.indexOf('MSIE') || !!~userAgent.indexOf('Trident'); -exports.isMac = Generic_1.contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform); -exports.isIpad = platform === 'iPad'; -exports.isIphone = platform === 'iPhone'; -exports.isMSWindows = Generic_1.contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform); -exports.isLinux = platform.indexOf('Linux') >= 0; - - - -},{"./Generic":31}],29:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var EventEmitter_1 = require("../EventEmitter"); -var CharMeasure = (function (_super) { - __extends(CharMeasure, _super); - function CharMeasure(document, parentElement) { - var _this = _super.call(this) || this; - _this._document = document; - _this._parentElement = parentElement; - _this._measureElement = _this._document.createElement('span'); - _this._measureElement.style.position = 'absolute'; - _this._measureElement.style.top = '0'; - _this._measureElement.style.left = '-9999em'; - _this._measureElement.style.lineHeight = 'normal'; - _this._measureElement.textContent = 'W'; - _this._measureElement.setAttribute('aria-hidden', 'true'); - _this._parentElement.appendChild(_this._measureElement); - return _this; - } - Object.defineProperty(CharMeasure.prototype, "width", { - get: function () { - return this._width; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CharMeasure.prototype, "height", { - get: function () { - return this._height; - }, - enumerable: true, - configurable: true - }); - CharMeasure.prototype.measure = function (options) { - this._measureElement.style.fontFamily = options.fontFamily; - this._measureElement.style.fontSize = options.fontSize + "px"; - var geometry = this._measureElement.getBoundingClientRect(); - if (geometry.width === 0 || geometry.height === 0) { - return; - } - if (this._width !== geometry.width || this._height !== geometry.height) { - this._width = geometry.width; - this._height = Math.ceil(geometry.height); - this.emit('charsizechanged'); - } - }; - return CharMeasure; -}(EventEmitter_1.EventEmitter)); -exports.CharMeasure = CharMeasure; - - - -},{"../EventEmitter":7}],30:[function(require,module,exports){ -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -Object.defineProperty(exports, "__esModule", { value: true }); -var EventEmitter_1 = require("../EventEmitter"); -var CircularList = (function (_super) { - __extends(CircularList, _super); - function CircularList(_maxLength) { - var _this = _super.call(this) || this; - _this._maxLength = _maxLength; - _this._array = new Array(_this._maxLength); - _this._startIndex = 0; - _this._length = 0; - return _this; - } - Object.defineProperty(CircularList.prototype, "maxLength", { - get: function () { - return this._maxLength; - }, - set: function (newMaxLength) { - if (this._maxLength === newMaxLength) { - return; - } - var newArray = new Array(newMaxLength); - for (var i = 0; i < Math.min(newMaxLength, this.length); i++) { - newArray[i] = this._array[this._getCyclicIndex(i)]; - } - this._array = newArray; - this._maxLength = newMaxLength; - this._startIndex = 0; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CircularList.prototype, "length", { - get: function () { - return this._length; - }, - set: function (newLength) { - if (newLength > this._length) { - for (var i = this._length; i < newLength; i++) { - this._array[i] = undefined; - } - } - this._length = newLength; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CircularList.prototype, "forEach", { - get: function () { - var _this = this; - return function (callbackfn) { - var i = 0; - var length = _this.length; - for (var i_1 = 0; i_1 < length; i_1++) { - callbackfn(_this.get(i_1), i_1); - } - }; - }, - enumerable: true, - configurable: true - }); - CircularList.prototype.get = function (index) { - return this._array[this._getCyclicIndex(index)]; - }; - CircularList.prototype.set = function (index, value) { - this._array[this._getCyclicIndex(index)] = value; - }; - CircularList.prototype.push = function (value) { - this._array[this._getCyclicIndex(this._length)] = value; - if (this._length === this._maxLength) { - this._startIndex++; - if (this._startIndex === this._maxLength) { - this._startIndex = 0; - } - this.emit('trim', 1); - } - else { - this._length++; - } - }; - CircularList.prototype.pop = function () { - return this._array[this._getCyclicIndex(this._length-- - 1)]; - }; - CircularList.prototype.splice = function (start, deleteCount) { - var items = []; - for (var _i = 2; _i < arguments.length; _i++) { - items[_i - 2] = arguments[_i]; - } - if (deleteCount) { - for (var i = start; i < this._length - deleteCount; i++) { - this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)]; - } - this._length -= deleteCount; - } - if (items && items.length) { - for (var i = this._length - 1; i >= start; i--) { - this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)]; - } - for (var i = 0; i < items.length; i++) { - this._array[this._getCyclicIndex(start + i)] = items[i]; - } - if (this._length + items.length > this.maxLength) { - var countToTrim = (this._length + items.length) - this.maxLength; - this._startIndex += countToTrim; - this._length = this.maxLength; - this.emit('trim', countToTrim); - } - else { - this._length += items.length; - } - } - }; - CircularList.prototype.trimStart = function (count) { - if (count > this._length) { - count = this._length; - } - this._startIndex += count; - this._length -= count; - this.emit('trim', count); - }; - CircularList.prototype.shiftElements = function (start, count, offset) { - if (count <= 0) { - return; - } - if (start < 0 || start >= this._length) { - throw new Error('start argument out of range'); - } - if (start + offset < 0) { - throw new Error('Cannot shift elements in list beyond index 0'); - } - if (offset > 0) { - for (var i = count - 1; i >= 0; i--) { - this.set(start + i + offset, this.get(start + i)); - } - var expandListBy = (start + count + offset) - this._length; - if (expandListBy > 0) { - this._length += expandListBy; - while (this._length > this.maxLength) { - this._length--; - this._startIndex++; - this.emit('trim', 1); - } - } - } - else { - for (var i = 0; i < count; i++) { - this.set(start + i + offset, this.get(start + i)); - } - } - }; - CircularList.prototype._getCyclicIndex = function (index) { - return (this._startIndex + index) % this.maxLength; - }; - return CircularList; -}(EventEmitter_1.EventEmitter)); -exports.CircularList = CircularList; - - - -},{"../EventEmitter":7}],31:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function contains(arr, el) { - return arr.indexOf(el) >= 0; -} -exports.contains = contains; -; - - - -},{}],32:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var MouseHelper = (function () { - function MouseHelper(_renderer) { - this._renderer = _renderer; - } - MouseHelper.getCoordsRelativeToElement = function (event, element) { - if (event.pageX == null) { - return null; - } - var originalElement = element; - var x = event.pageX; - var y = event.pageY; - while (element) { - x -= element.offsetLeft; - y -= element.offsetTop; - element = 'offsetParent' in element ? element.offsetParent : element.parentElement; - } - element = originalElement; - while (element && element !== element.ownerDocument.body) { - x += element.scrollLeft; - y += element.scrollTop; - element = element.parentElement; - } - return [x, y]; - }; - MouseHelper.prototype.getCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount, isSelection) { - if (!charMeasure.width || !charMeasure.height) { - return null; - } - var coords = MouseHelper.getCoordsRelativeToElement(event, element); - if (!coords) { - return null; - } - coords[0] = Math.ceil((coords[0] + (isSelection ? this._renderer.dimensions.actualCellWidth / 2 : 0)) / this._renderer.dimensions.actualCellWidth); - coords[1] = Math.ceil(coords[1] / this._renderer.dimensions.actualCellHeight); - coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0)); - coords[1] = Math.min(Math.max(coords[1], 1), rowCount); - return coords; - }; - MouseHelper.prototype.getRawByteCoords = function (event, element, charMeasure, lineHeight, colCount, rowCount) { - var coords = this.getCoords(event, element, charMeasure, lineHeight, colCount, rowCount); - var x = coords[0]; - var y = coords[1]; - x += 32; - y += 32; - return { x: x, y: y }; - }; - return MouseHelper; -}()); -exports.MouseHelper = MouseHelper; - - - -},{}],33:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.BellSound = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg=='; - - - -},{}],34:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var Terminal_1 = require("./Terminal"); -module.exports = Terminal_1.Terminal; - - - -},{"./Terminal":13}]},{},[34])(34) -}); -//# sourceMappingURL=xterm.js.map - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var require;var require;(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.fit = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1 && arguments[1] !== undefined ? arguments[1] : {}; - var _params$asNewDefault = params.asNewDefault, - asNewDefault = _params$asNewDefault === undefined ? false : _params$asNewDefault; - - var validKeys = Object.keys(config$1); - var ok = asNewDefault ? function (k) { - return ~validKeys.indexOf(k) && !~initialKeys.indexOf(k); - } : function (k) { - return ~validKeys.indexOf(k); - }; - - Object.keys(newConfig).forEach(function (configKey) { - if (ok(configKey)) config$1[configKey] = newConfig[configKey]; - }); -} - -function auto(value) { - update({ - autoReplaceSvg: value, - observeMutations: value - }); -} - -var w = WINDOW || {}; - -if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {}; -if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {}; -if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {}; -if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = []; - -var namespace = w[NAMESPACE_IDENTIFIER]; - -var functions = []; -var listener = function listener() { - DOCUMENT.removeEventListener('DOMContentLoaded', listener); - loaded = 1; - functions.map(function (fn) { - return fn(); - }); -}; - -var loaded = false; - -if (IS_DOM) { - loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState); - - if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener); -} - -var domready = function (fn) { - if (!IS_DOM) return; - loaded ? setTimeout(fn, 0) : functions.push(fn); -}; - -var d = UNITS_IN_GRID; - -var meaninglessTransform = { - size: 16, - x: 0, - y: 0, - rotate: 0, - flipX: false, - flipY: false -}; - -function isReserved(name) { - return ~RESERVED_CLASSES.indexOf(name); -} - -function bunker(fn) { - try { - fn(); - } catch (e) { - if (!PRODUCTION) { - throw e; - } - } -} - -function insertCss(css) { - if (!css || !IS_DOM) { - return; - } - - var style = DOCUMENT.createElement('style'); - style.setAttribute('type', 'text/css'); - style.innerHTML = css; - - var headChildren = DOCUMENT.head.childNodes; - var beforeChild = null; - - for (var i = headChildren.length - 1; i > -1; i--) { - var child = headChildren[i]; - var tagName = (child.tagName || '').toUpperCase(); - if (['STYLE', 'LINK'].indexOf(tagName) > -1) { - beforeChild = child; - } - } - - DOCUMENT.head.insertBefore(style, beforeChild); - - return css; -} - -var _uniqueId = 0; - -function nextUniqueId() { - _uniqueId++; - - return _uniqueId; -} - -function toArray(obj) { - var array = []; - - for (var i = (obj || []).length >>> 0; i--;) { - array[i] = obj[i]; - } - - return array; -} - -function classArray(node) { - if (node.classList) { - return toArray(node.classList); - } else { - return (node.getAttribute('class') || '').split(' ').filter(function (i) { - return i; - }); - } -} - -function getIconName(familyPrefix, cls) { - var parts = cls.split('-'); - var prefix = parts[0]; - var iconName = parts.slice(1).join('-'); - - if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) { - return iconName; - } else { - return null; - } -} - -function htmlEscape(str) { - return ('' + str).replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(//g, '>'); -} - -function joinAttributes(attributes) { - return Object.keys(attributes || {}).reduce(function (acc, attributeName) { - return acc + (attributeName + '="' + htmlEscape(attributes[attributeName]) + '" '); - }, '').trim(); -} - -function joinStyles(styles) { - return Object.keys(styles || {}).reduce(function (acc, styleName) { - return acc + (styleName + ': ' + styles[styleName] + ';'); - }, ''); -} - -function transformIsMeaningful(transform) { - return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY; -} - -function transformForSvg(_ref) { - var transform = _ref.transform, - containerWidth = _ref.containerWidth, - iconWidth = _ref.iconWidth; - - var outer = { - transform: 'translate(' + containerWidth / 2 + ' 256)' - }; - var innerTranslate = 'translate(' + transform.x * 32 + ', ' + transform.y * 32 + ') '; - var innerScale = 'scale(' + transform.size / 16 * (transform.flipX ? -1 : 1) + ', ' + transform.size / 16 * (transform.flipY ? -1 : 1) + ') '; - var innerRotate = 'rotate(' + transform.rotate + ' 0 0)'; - var inner = { - transform: innerTranslate + ' ' + innerScale + ' ' + innerRotate - }; - var path = { - transform: 'translate(' + iconWidth / 2 * -1 + ' -256)' - }; - return { - outer: outer, - inner: inner, - path: path - }; -} - -function transformForCss(_ref2) { - var transform = _ref2.transform, - _ref2$width = _ref2.width, - width = _ref2$width === undefined ? UNITS_IN_GRID : _ref2$width, - _ref2$height = _ref2.height, - height = _ref2$height === undefined ? UNITS_IN_GRID : _ref2$height, - _ref2$startCentered = _ref2.startCentered, - startCentered = _ref2$startCentered === undefined ? false : _ref2$startCentered; - - var val = ''; - - if (startCentered && IS_IE) { - val += 'translate(' + (transform.x / d - width / 2) + 'em, ' + (transform.y / d - height / 2) + 'em) '; - } else if (startCentered) { - val += 'translate(calc(-50% + ' + transform.x / d + 'em), calc(-50% + ' + transform.y / d + 'em)) '; - } else { - val += 'translate(' + transform.x / d + 'em, ' + transform.y / d + 'em) '; - } - - val += 'scale(' + transform.size / d * (transform.flipX ? -1 : 1) + ', ' + transform.size / d * (transform.flipY ? -1 : 1) + ') '; - val += 'rotate(' + transform.rotate + 'deg) '; - - return val; -} - -var ALL_SPACE = { - x: 0, - y: 0, - width: '100%', - height: '100%' -}; - -var makeIconMasking = function (_ref) { - var children = _ref.children, - attributes = _ref.attributes, - main = _ref.main, - mask = _ref.mask, - transform = _ref.transform; - var mainWidth = main.width, - mainPath = main.icon; - var maskWidth = mask.width, - maskPath = mask.icon; - - - var trans = transformForSvg({ transform: transform, containerWidth: maskWidth, iconWidth: mainWidth }); - - var maskRect = { - tag: 'rect', - attributes: _extends({}, ALL_SPACE, { - fill: 'white' - }) - }; - var maskInnerGroup = { - tag: 'g', - attributes: _extends({}, trans.inner), - children: [{ tag: 'path', attributes: _extends({}, mainPath.attributes, trans.path, { fill: 'black' }) }] - }; - var maskOuterGroup = { - tag: 'g', - attributes: _extends({}, trans.outer), - children: [maskInnerGroup] - }; - var maskId = 'mask-' + nextUniqueId(); - var clipId = 'clip-' + nextUniqueId(); - var maskTag = { - tag: 'mask', - attributes: _extends({}, ALL_SPACE, { - id: maskId, - maskUnits: 'userSpaceOnUse', - maskContentUnits: 'userSpaceOnUse' - }), - children: [maskRect, maskOuterGroup] - }; - var defs = { - tag: 'defs', - children: [{ tag: 'clipPath', attributes: { id: clipId }, children: [maskPath] }, maskTag] - }; - - children.push(defs, { tag: 'rect', attributes: _extends({ fill: 'currentColor', 'clip-path': 'url(#' + clipId + ')', mask: 'url(#' + maskId + ')' }, ALL_SPACE) }); - - return { - children: children, - attributes: attributes - }; -}; - -var makeIconStandard = function (_ref) { - var children = _ref.children, - attributes = _ref.attributes, - main = _ref.main, - transform = _ref.transform, - styles = _ref.styles; - - var styleString = joinStyles(styles); - - if (styleString.length > 0) { - attributes['style'] = styleString; - } - - if (transformIsMeaningful(transform)) { - var trans = transformForSvg({ transform: transform, containerWidth: main.width, iconWidth: main.width }); - children.push({ - tag: 'g', - attributes: _extends({}, trans.outer), - children: [{ - tag: 'g', - attributes: _extends({}, trans.inner), - children: [{ - tag: main.icon.tag, - children: main.icon.children, - attributes: _extends({}, main.icon.attributes, trans.path) - }] - }] - }); - } else { - children.push(main.icon); - } - - return { - children: children, - attributes: attributes - }; -}; - -var asIcon = function (_ref) { - var children = _ref.children, - main = _ref.main, - mask = _ref.mask, - attributes = _ref.attributes, - styles = _ref.styles, - transform = _ref.transform; - - if (transformIsMeaningful(transform) && main.found && !mask.found) { - var width = main.width, - height = main.height; - - var offset = { - x: width / height / 2, - y: 0.5 - }; - attributes['style'] = joinStyles(_extends({}, styles, { - 'transform-origin': offset.x + transform.x / 16 + 'em ' + (offset.y + transform.y / 16) + 'em' - })); - } - - return [{ - tag: 'svg', - attributes: attributes, - children: children - }]; -}; - -var asSymbol = function (_ref) { - var prefix = _ref.prefix, - iconName = _ref.iconName, - children = _ref.children, - attributes = _ref.attributes, - symbol = _ref.symbol; - - var id = symbol === true ? prefix + '-' + config$1.familyPrefix + '-' + iconName : symbol; - - return [{ - tag: 'svg', - attributes: { - style: 'display: none;' - }, - children: [{ - tag: 'symbol', - attributes: _extends({}, attributes, { id: id }), - children: children - }] - }]; -}; - -function makeInlineSvgAbstract(params) { - var _params$icons = params.icons, - main = _params$icons.main, - mask = _params$icons.mask, - prefix = params.prefix, - iconName = params.iconName, - transform = params.transform, - symbol = params.symbol, - title = params.title, - extra = params.extra, - _params$watchable = params.watchable, - watchable = _params$watchable === undefined ? false : _params$watchable; - - var _ref = mask.found ? mask : main, - width = _ref.width, - height = _ref.height; - - var widthClass = 'fa-w-' + Math.ceil(width / height * 16); - var attrClass = [config$1.replacementClass, iconName ? config$1.familyPrefix + '-' + iconName : '', widthClass].concat(extra.classes).join(' '); - - var content = { - children: [], - attributes: _extends({}, extra.attributes, { - 'data-prefix': prefix, - 'data-icon': iconName, - 'class': attrClass, - 'role': 'img', - 'xmlns': 'http://www.w3.org/2000/svg', - 'viewBox': '0 0 ' + width + ' ' + height - }) - }; - - if (watchable) { - content.attributes[DATA_FA_I2SVG] = ''; - } - - if (title) content.children.push({ tag: 'title', attributes: { id: content.attributes['aria-labelledby'] || 'title-' + nextUniqueId() }, children: [title] }); - - var args = _extends({}, content, { - prefix: prefix, - iconName: iconName, - main: main, - mask: mask, - transform: transform, - symbol: symbol, - styles: extra.styles - }); - - var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args), - children = _ref2.children, - attributes = _ref2.attributes; - - args.children = children; - args.attributes = attributes; - - if (symbol) { - return asSymbol(args); - } else { - return asIcon(args); - } -} - -function makeLayersTextAbstract(params) { - var content = params.content, - width = params.width, - height = params.height, - transform = params.transform, - title = params.title, - extra = params.extra, - _params$watchable2 = params.watchable, - watchable = _params$watchable2 === undefined ? false : _params$watchable2; - - - var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, { - 'class': extra.classes.join(' ') - }); - - if (watchable) { - attributes[DATA_FA_I2SVG] = ''; - } - - var styles = _extends({}, extra.styles); - - if (transformIsMeaningful(transform)) { - styles['transform'] = transformForCss({ transform: transform, startCentered: true, width: width, height: height }); - styles['-webkit-transform'] = styles['transform']; - } - - var styleString = joinStyles(styles); - - if (styleString.length > 0) { - attributes['style'] = styleString; - } - - var val = []; - - val.push({ - tag: 'span', - attributes: attributes, - children: [content] - }); - - if (title) { - val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] }); - } - - return val; -} - -var noop$2 = function noop() {}; -var p = config$1.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { mark: noop$2, measure: noop$2 }; -var preamble = 'FA "5.0.5"'; - -var begin = function begin(name) { - p.mark(preamble + ' ' + name + ' begins'); - return function () { - return end(name); - }; -}; - -var end = function end(name) { - p.mark(preamble + ' ' + name + ' ends'); - p.measure(preamble + ' ' + name, preamble + ' ' + name + ' begins', preamble + ' ' + name + ' ends'); -}; - -var perf = { begin: begin, end: end }; - -'use strict'; - -/** - * Internal helper to bind a function known to have 4 arguments - * to a given context. - */ -var bindInternal4 = function bindInternal4 (func, thisContext) { - return function (a, b, c, d) { - return func.call(thisContext, a, b, c, d); - }; -}; - -'use strict'; - - - -/** - * # Reduce - * - * A fast object `.reduce()` implementation. - * - * @param {Object} subject The object to reduce over. - * @param {Function} fn The reducer function. - * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0]. - * @param {Object} thisContext The context for the reducer. - * @return {mixed} The final result. - */ -var reduce = function fastReduceObject (subject, fn, initialValue, thisContext) { - var keys = Object.keys(subject), - length = keys.length, - iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn, - i, key, result; - - if (initialValue === undefined) { - i = 1; - result = subject[keys[0]]; - } - else { - i = 0; - result = initialValue; - } - - for (; i < length; i++) { - key = keys[i]; - result = iterator(result, subject[key], key, subject); - } - - return result; -}; - -var styles$2 = namespace.styles; -var shims = namespace.shims; - - -var _byUnicode = {}; -var _byLigature = {}; -var _byOldName = {}; - -var build = function build() { - var lookup = function lookup(reducer) { - return reduce(styles$2, function (o, style, prefix) { - o[prefix] = reduce(style, reducer, {}); - return o; - }, {}); - }; - - _byUnicode = lookup(function (acc, icon, iconName) { - acc[icon[3]] = iconName; - - return acc; - }); - - _byLigature = lookup(function (acc, icon, iconName) { - var ligatures = icon[2]; - - acc[iconName] = iconName; - - ligatures.forEach(function (ligature) { - acc[ligature] = iconName; - }); - - return acc; - }); - - var hasRegular = 'far' in styles$2; - - _byOldName = reduce(shims, function (acc, shim) { - var oldName = shim[0]; - var prefix = shim[1]; - var iconName = shim[2]; - - if (prefix === 'far' && !hasRegular) { - prefix = 'fas'; - } - - acc[oldName] = { prefix: prefix, iconName: iconName }; - - return acc; - }, {}); -}; - -build(); - -function byUnicode(prefix, unicode) { - return _byUnicode[prefix][unicode]; -} - -function byLigature(prefix, ligature) { - return _byLigature[prefix][ligature]; -} - -function byOldName(name) { - return _byOldName[name] || { prefix: null, iconName: null }; -} - -var styles$1 = namespace.styles; - - -var emptyCanonicalIcon = function emptyCanonicalIcon() { - return { prefix: null, iconName: null, rest: [] }; -}; - -function getCanonicalIcon(values) { - return values.reduce(function (acc, cls) { - var iconName = getIconName(config$1.familyPrefix, cls); - - if (styles$1[cls]) { - acc.prefix = cls; - } else if (iconName) { - var shim = acc.prefix === 'fa' ? byOldName(iconName) : {}; - - acc.iconName = shim.iconName || iconName; - acc.prefix = shim.prefix || acc.prefix; - } else if (cls !== config$1.replacementClass && cls.indexOf('fa-w-') !== 0) { - acc.rest.push(cls); - } - - return acc; - }, emptyCanonicalIcon()); -} - -function iconFromMapping(mapping, prefix, iconName) { - if (mapping && mapping[prefix] && mapping[prefix][iconName]) { - return { - prefix: prefix, - iconName: iconName, - icon: mapping[prefix][iconName] - }; - } -} - -function toHtml(abstractNodes) { - var tag = abstractNodes.tag, - _abstractNodes$attrib = abstractNodes.attributes, - attributes = _abstractNodes$attrib === undefined ? {} : _abstractNodes$attrib, - _abstractNodes$childr = abstractNodes.children, - children = _abstractNodes$childr === undefined ? [] : _abstractNodes$childr; - - - if (typeof abstractNodes === 'string') { - return htmlEscape(abstractNodes); - } else { - return '<' + tag + ' ' + joinAttributes(attributes) + '>' + children.map(toHtml).join('') + ''; - } -} - -var noop$1 = function noop() {}; - -function isWatched(node) { - var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null; - - return typeof i2svg === 'string'; -} - -function getMutator() { - if (config$1.autoReplaceSvg === true) { - return mutators.replace; - } - - var mutator = mutators[config$1.autoReplaceSvg]; - - return mutator || mutators.replace; -} - -var mutators = { - replace: function replace(mutation) { - var node = mutation[0]; - var abstract = mutation[1]; - var newOuterHTML = abstract.map(function (a) { - return toHtml(a); - }).join('\n'); - - if (node.parentNode && node.outerHTML) { - node.outerHTML = newOuterHTML + (config$1.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? '' : ''); - } else if (node.parentNode) { - var newNode = document.createElement('span'); - node.parentNode.replaceChild(newNode, node); - newNode.outerHTML = newOuterHTML; - } - }, - nest: function nest(mutation) { - var node = mutation[0]; - var abstract = mutation[1]; - - // If we already have a replaced node we do not want to continue nesting within it. - // Short-circuit to the standard replacement - if (~classArray(node).indexOf(config$1.replacementClass)) { - return mutators.replace(mutation); - } - - var forSvg = new RegExp(config$1.familyPrefix + '-.*'); - - delete abstract[0].attributes.style; - - var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) { - if (cls === config$1.replacementClass || cls.match(forSvg)) { - acc.toSvg.push(cls); - } else { - acc.toNode.push(cls); - } - - return acc; - }, { toNode: [], toSvg: [] }); - - abstract[0].attributes.class = splitClasses.toSvg.join(' '); - - var newInnerHTML = abstract.map(function (a) { - return toHtml(a); - }).join('\n'); - node.setAttribute('class', splitClasses.toNode.join(' ')); - node.setAttribute(DATA_FA_I2SVG, ''); - node.innerHTML = newInnerHTML; - } -}; - -function perform(mutations, callback) { - var callbackFunction = typeof callback === 'function' ? callback : noop$1; - - if (mutations.length === 0) { - callbackFunction(); - } else { - var frame = WINDOW.requestAnimationFrame || function (op) { - return op(); - }; - - frame(function () { - var mutator = getMutator(); - var mark = perf.begin('mutate'); - - mutations.map(mutator); - - mark(); - - callbackFunction(); - }); - } -} - -var disabled = false; - -function disableObservation(operation) { - disabled = true; - operation(); - disabled = false; -} - -function observe(options) { - if (!MUTATION_OBSERVER) return; - - var treeCallback = options.treeCallback, - nodeCallback = options.nodeCallback, - pseudoElementsCallback = options.pseudoElementsCallback; - - - var mo = new MUTATION_OBSERVER(function (objects) { - if (disabled) return; - - toArray(objects).forEach(function (mutationRecord) { - if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) { - if (config$1.searchPseudoElements) { - pseudoElementsCallback(mutationRecord.target); - } - - treeCallback(mutationRecord.target); - } - - if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config$1.searchPseudoElements) { - pseudoElementsCallback(mutationRecord.target.parentNode); - } - - if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) { - if (mutationRecord.attributeName === 'class') { - var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)), - prefix = _getCanonicalIcon.prefix, - iconName = _getCanonicalIcon.iconName; - - if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix); - if (iconName) mutationRecord.target.setAttribute('data-icon', iconName); - } else { - nodeCallback(mutationRecord.target); - } - } - }); - }); - - if (!IS_DOM) return; - - mo.observe(DOCUMENT.getElementsByTagName('body')[0], { - childList: true, attributes: true, characterData: true, subtree: true - }); -} - -var styleParser = function (node) { - var style = node.getAttribute('style'); - - var val = []; - - if (style) { - val = style.split(';').reduce(function (acc, style) { - var styles = style.split(':'); - var prop = styles[0]; - var value = styles.slice(1); - - if (prop && value.length > 0) { - acc[prop] = value.join(':').trim(); - } - - return acc; - }, {}); - } - - return val; -}; - -function toHex(unicode) { - var result = ''; - - for (var i = 0; i < unicode.length; i++) { - var hex = unicode.charCodeAt(i).toString(16); - result += ('000' + hex).slice(-4); - } - - return result; -} - -var classParser = function (node) { - var existingPrefix = node.getAttribute('data-prefix'); - var existingIconName = node.getAttribute('data-icon'); - var innerText = node.innerText !== undefined ? node.innerText.trim() : ''; - - var val = getCanonicalIcon(classArray(node)); - - if (existingPrefix && existingIconName) { - val.prefix = existingPrefix; - val.iconName = existingIconName; - } - - if (val.prefix && innerText.length > 1) { - val.iconName = byLigature(val.prefix, node.innerText); - } else if (val.prefix && innerText.length === 1) { - val.iconName = byUnicode(val.prefix, toHex(node.innerText)); - } - - return val; -}; - -var parseTransformString = function parseTransformString(transformString) { - var transform = { - size: 16, - x: 0, - y: 0, - flipX: false, - flipY: false, - rotate: 0 - }; - - if (!transformString) { - return transform; - } else { - return transformString.toLowerCase().split(' ').reduce(function (acc, n) { - var parts = n.toLowerCase().split('-'); - var first = parts[0]; - var rest = parts.slice(1).join('-'); - - if (first && rest === 'h') { - acc.flipX = true; - return acc; - } - - if (first && rest === 'v') { - acc.flipY = true; - return acc; - } - - rest = parseFloat(rest); - - if (isNaN(rest)) { - return acc; - } - - switch (first) { - case 'grow': - acc.size = acc.size + rest; - break; - case 'shrink': - acc.size = acc.size - rest; - break; - case 'left': - acc.x = acc.x - rest; - break; - case 'right': - acc.x = acc.x + rest; - break; - case 'up': - acc.y = acc.y - rest; - break; - case 'down': - acc.y = acc.y + rest; - break; - case 'rotate': - acc.rotate = acc.rotate + rest; - break; - } - - return acc; - }, transform); - } -}; - -var transformParser = function (node) { - return parseTransformString(node.getAttribute('data-fa-transform')); -}; - -var symbolParser = function (node) { - var symbol = node.getAttribute('data-fa-symbol'); - - return symbol === null ? false : symbol === '' ? true : symbol; -}; - -var attributesParser = function (node) { - var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) { - if (acc.name !== 'class' && acc.name !== 'style') { - acc[attr.name] = attr.value; - } - return acc; - }, {}); - - var title = node.getAttribute('title'); - - if (config$1.autoA11y) { - if (title) { - extraAttributes['aria-labelledby'] = config$1.replacementClass + '-title-' + nextUniqueId(); - } else { - extraAttributes['aria-hidden'] = 'true'; - } - } - - return extraAttributes; -}; - -var maskParser = function (node) { - var mask = node.getAttribute('data-fa-mask'); - - if (!mask) { - return emptyCanonicalIcon(); - } else { - return getCanonicalIcon(mask.split(' ').map(function (i) { - return i.trim(); - })); - } -}; - -function parseMeta(node) { - var _classParser = classParser(node), - iconName = _classParser.iconName, - prefix = _classParser.prefix, - extraClasses = _classParser.rest; - - var extraStyles = styleParser(node); - var transform = transformParser(node); - var symbol = symbolParser(node); - var extraAttributes = attributesParser(node); - var mask = maskParser(node); - - return { - iconName: iconName, - title: node.getAttribute('title'), - prefix: prefix, - transform: transform, - symbol: symbol, - mask: mask, - extra: { - classes: extraClasses, - styles: extraStyles, - attributes: extraAttributes - } - }; -} - -function MissingIcon(error) { - this.name = 'MissingIcon'; - this.message = error || 'Icon unavailable'; - this.stack = new Error().stack; -} - -MissingIcon.prototype = Object.create(Error.prototype); -MissingIcon.prototype.constructor = MissingIcon; - -var FILL = { fill: 'currentColor' }; -var ANIMATION_BASE = { - attributeType: 'XML', - repeatCount: 'indefinite', - dur: '2s' -}; -var RING = { - tag: 'path', - attributes: _extends({}, FILL, { - d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z' - }) -}; -var OPACITY_ANIMATE = _extends({}, ANIMATION_BASE, { - attributeName: 'opacity' -}); -var DOT = { - tag: 'circle', - attributes: _extends({}, FILL, { - cx: '256', - cy: '364', - r: '28' - }), - children: [{ tag: 'animate', attributes: _extends({}, ANIMATION_BASE, { attributeName: 'r', values: '28;14;28;28;14;28;' }) }, { tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;1;1;0;1;' }) }] -}; -var QUESTION = { - tag: 'path', - attributes: _extends({}, FILL, { - opacity: '1', - d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z' - }), - children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;0;0;0;1;' }) }] -}; -var EXCLAMATION = { - tag: 'path', - attributes: _extends({}, FILL, { - opacity: '0', - d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z' - }), - children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '0;0;1;1;0;0;' }) }] -}; - -var missing = { tag: 'g', children: [RING, DOT, QUESTION, EXCLAMATION] }; - -var styles = namespace.styles; - -var LAYERS_TEXT_CLASSNAME = 'fa-layers-text'; -var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Brands)/; -var STYLE_TO_PREFIX = { - 'Solid': 'fas', - 'Regular': 'far', - 'Light': 'fal', - 'Brands': 'fab' -}; - -function findIcon(iconName, prefix) { - var val = { - found: false, - width: 512, - height: 512, - icon: missing - }; - - if (iconName && prefix && styles[prefix] && styles[prefix][iconName]) { - var icon = styles[prefix][iconName]; - var width = icon[0]; - var height = icon[1]; - var vectorData = icon.slice(4); - - val = { - found: true, - width: width, - height: height, - icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } } - }; - } else if (iconName && prefix && !config$1.showMissingIcons) { - throw new MissingIcon('Icon is missing for prefix ' + prefix + ' with icon name ' + iconName); - } - - return val; -} - -function generateSvgReplacementMutation(node, nodeMeta) { - var iconName = nodeMeta.iconName, - title = nodeMeta.title, - prefix = nodeMeta.prefix, - transform = nodeMeta.transform, - symbol = nodeMeta.symbol, - mask = nodeMeta.mask, - extra = nodeMeta.extra; - - - return [node, makeInlineSvgAbstract({ - icons: { - main: findIcon(iconName, prefix), - mask: findIcon(mask.iconName, mask.prefix) - }, - prefix: prefix, - iconName: iconName, - transform: transform, - symbol: symbol, - mask: mask, - title: title, - extra: extra, - watchable: true - })]; -} - -function generateLayersText(node, nodeMeta) { - var title = nodeMeta.title, - transform = nodeMeta.transform, - extra = nodeMeta.extra; - - - var width = null; - var height = null; - - if (IS_IE) { - var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10); - var boundingClientRect = node.getBoundingClientRect(); - width = boundingClientRect.width / computedFontSize; - height = boundingClientRect.height / computedFontSize; - } - - if (config$1.autoA11y && !title) { - extra.attributes['aria-hidden'] = 'true'; - } - - return [node, makeLayersTextAbstract({ - content: node.innerHTML, - width: width, - height: height, - transform: transform, - title: title, - extra: extra, - watchable: true - })]; -} - -function generateMutation(node) { - var nodeMeta = parseMeta(node); - - if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) { - return generateLayersText(node, nodeMeta); - } else { - return generateSvgReplacementMutation(node, nodeMeta); - } -} - -function remove(node) { - if (typeof node.remove === 'function') { - node.remove(); - } else if (node && node.parentNode) { - node.parentNode.removeChild(node); - } -} - -function searchPseudoElements(root) { - if (!IS_DOM) return; - - var end = perf.begin('searchPseudoElements'); - - disableObservation(function () { - toArray(root.querySelectorAll('*')).forEach(function (node) { - [':before', ':after'].forEach(function (pos) { - var styles = WINDOW.getComputedStyle(node, pos); - var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN); - var children = toArray(node.children); - var pseudoElement = children.filter(function (c) { - return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === pos; - })[0]; - - if (pseudoElement) { - if (pseudoElement.nextSibling && pseudoElement.nextSibling.textContent.indexOf(DATA_FA_PSEUDO_ELEMENT) > -1) { - remove(pseudoElement.nextSibling); - } - remove(pseudoElement); - pseudoElement = null; - } - - if (fontFamily && !pseudoElement) { - var content = styles.getPropertyValue('content'); - var i = DOCUMENT.createElement('i'); - i.setAttribute('class', '' + STYLE_TO_PREFIX[fontFamily[1]]); - i.setAttribute(DATA_FA_PSEUDO_ELEMENT, pos); - i.innerText = content.length === 3 ? content.substr(1, 1) : content; - if (pos === ':before') { - node.insertBefore(i, node.firstChild); - } else { - node.appendChild(i); - } - } - }); - }); - }); - - end(); -} - -function onTree(root) { - var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (!IS_DOM) return; - - var htmlClassList = DOCUMENT.documentElement.classList; - var hclAdd = function hclAdd(suffix) { - return htmlClassList.add(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix); - }; - var hclRemove = function hclRemove(suffix) { - return htmlClassList.remove(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix); - }; - var prefixes = Object.keys(styles); - var prefixesDomQuery = ['.' + LAYERS_TEXT_CLASSNAME + ':not([' + DATA_FA_I2SVG + '])'].concat(prefixes.map(function (p) { - return '.' + p + ':not([' + DATA_FA_I2SVG + '])'; - })).join(', '); - - if (prefixesDomQuery.length === 0) { - return; - } - - var candidates = toArray(root.querySelectorAll(prefixesDomQuery)); - - if (candidates.length > 0) { - hclAdd('pending'); - hclRemove('complete'); - } else { - return; - } - - var mark = perf.begin('onTree'); - - var mutations = candidates.reduce(function (acc, node) { - try { - var mutation = generateMutation(node); - - if (mutation) { - acc.push(mutation); - } - } catch (e) { - if (!PRODUCTION) { - if (e instanceof MissingIcon) { - console.error(e); - } - } - } - - return acc; - }, []); - - mark(); - - perform(mutations, function () { - hclAdd('active'); - hclAdd('complete'); - hclRemove('pending'); - - if (typeof callback === 'function') callback(); - }); -} - -function onNode(node) { - var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - var mutation = generateMutation(node); - - if (mutation) { - perform([mutation], callback); - } -} - -var baseStyles = "svg:not(:root).svg-inline--fa {\n overflow: visible; }\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -.125em; }\n .svg-inline--fa.fa-lg {\n vertical-align: -.225em; }\n .svg-inline--fa.fa-w-1 {\n width: 0.0625em; }\n .svg-inline--fa.fa-w-2 {\n width: 0.125em; }\n .svg-inline--fa.fa-w-3 {\n width: 0.1875em; }\n .svg-inline--fa.fa-w-4 {\n width: 0.25em; }\n .svg-inline--fa.fa-w-5 {\n width: 0.3125em; }\n .svg-inline--fa.fa-w-6 {\n width: 0.375em; }\n .svg-inline--fa.fa-w-7 {\n width: 0.4375em; }\n .svg-inline--fa.fa-w-8 {\n width: 0.5em; }\n .svg-inline--fa.fa-w-9 {\n width: 0.5625em; }\n .svg-inline--fa.fa-w-10 {\n width: 0.625em; }\n .svg-inline--fa.fa-w-11 {\n width: 0.6875em; }\n .svg-inline--fa.fa-w-12 {\n width: 0.75em; }\n .svg-inline--fa.fa-w-13 {\n width: 0.8125em; }\n .svg-inline--fa.fa-w-14 {\n width: 0.875em; }\n .svg-inline--fa.fa-w-15 {\n width: 0.9375em; }\n .svg-inline--fa.fa-w-16 {\n width: 1em; }\n .svg-inline--fa.fa-w-17 {\n width: 1.0625em; }\n .svg-inline--fa.fa-w-18 {\n width: 1.125em; }\n .svg-inline--fa.fa-w-19 {\n width: 1.1875em; }\n .svg-inline--fa.fa-w-20 {\n width: 1.25em; }\n .svg-inline--fa.fa-pull-left {\n margin-right: .3em;\n width: auto; }\n .svg-inline--fa.fa-pull-right {\n margin-left: .3em;\n width: auto; }\n .svg-inline--fa.fa-border {\n height: 1.5em; }\n .svg-inline--fa.fa-li {\n width: 2em; }\n .svg-inline--fa.fa-fw {\n width: 1.25em; }\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0; }\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -.125em;\n width: 1em; }\n .fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n\n.fa-layers-text, .fa-layers-counter {\n display: inline-block;\n position: absolute;\n text-align: center; }\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: .25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right; }\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right; }\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left; }\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right; }\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left; }\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -.0667em; }\n\n.fa-xs {\n font-size: .75em; }\n\n.fa-sm {\n font-size: .875em; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit; }\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: .1em;\n padding: .2em .25em .15em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none; }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0; }\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1em; }\n\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto; }\n"; - -var css = function () { - var dfp = DEFAULT_FAMILY_PREFIX; - var drc = DEFAULT_REPLACEMENT_CLASS; - var fp = config$1.familyPrefix; - var rc = config$1.replacementClass; - var s = baseStyles; - - if (fp !== dfp || rc !== drc) { - var dPatt = new RegExp('\\.' + dfp + '\\-', 'g'); - var rPatt = new RegExp('\\.' + drc, 'g'); - - s = s.replace(dPatt, '.' + fp + '-').replace(rPatt, '.' + rc); - } - - return s; -}; - -function define(prefix, icons) { - var normalized = Object.keys(icons).reduce(function (acc, iconName) { - var icon = icons[iconName]; - var expanded = !!icon.icon; - - if (expanded) { - acc[icon.iconName] = icon.icon; - } else { - acc[iconName] = icon; - } - return acc; - }, {}); - - if (typeof namespace.hooks.addPack === 'function') { - namespace.hooks.addPack(prefix, normalized); - } else { - namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized); - } - - /** - * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction - * of new styles we needed to differentiate between them. Prefix `fa` is now an alias - * for `fas` so we'll easy the upgrade process for our users by automatically defining - * this as well. - */ - if (prefix === 'fas') { - define('fa', icons); - } -} - -var Library = function () { - function Library() { - classCallCheck(this, Library); - - this.definitions = {}; - } - - createClass(Library, [{ - key: 'add', - value: function add() { - var _this = this; - - for (var _len = arguments.length, definitions = Array(_len), _key = 0; _key < _len; _key++) { - definitions[_key] = arguments[_key]; - } - - var additions = definitions.reduce(this._pullDefinitions, {}); - - Object.keys(additions).forEach(function (key) { - _this.definitions[key] = _extends({}, _this.definitions[key] || {}, additions[key]); - define(key, additions[key]); - }); - } - }, { - key: 'reset', - value: function reset() { - this.definitions = {}; - } - }, { - key: '_pullDefinitions', - value: function _pullDefinitions(additions, definition) { - var normalized = definition.prefix && definition.iconName && definition.icon ? { 0: definition } : definition; - - Object.keys(normalized).map(function (key) { - var _normalized$key = normalized[key], - prefix = _normalized$key.prefix, - iconName = _normalized$key.iconName, - icon = _normalized$key.icon; - - - if (!additions[prefix]) additions[prefix] = {}; - - additions[prefix][iconName] = icon; - }); - - return additions; - } - }]); - return Library; -}(); - -function prepIcon(icon) { - var width = icon[0]; - var height = icon[1]; - var vectorData = icon.slice(4); - - return { - found: true, - width: width, - height: height, - icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } } - }; -} - -var _cssInserted = false; - -function ensureCss() { - if (!config$1.autoAddCss) { - return; - } - - if (!_cssInserted) { - insertCss(css()); - } - - _cssInserted = true; -} - -function apiObject(val, abstractCreator) { - Object.defineProperty(val, 'abstract', { - get: abstractCreator - }); - - Object.defineProperty(val, 'html', { - get: function get() { - return val.abstract.map(function (a) { - return toHtml(a); - }); - } - }); - - Object.defineProperty(val, 'node', { - get: function get() { - if (!IS_DOM) return; - - var container = DOCUMENT.createElement('div'); - container.innerHTML = val.html; - return container.children; - } - }); - - return val; -} - -function findIconDefinition(params) { - var _params$prefix = params.prefix, - prefix = _params$prefix === undefined ? 'fa' : _params$prefix, - iconName = params.iconName; - - - if (!iconName) return; - - return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName); -} - -function resolveIcons(next) { - return function (maybeIconDefinition) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {}); - - var mask = params.mask; - - - if (mask) { - mask = (mask || {}).icon ? mask : findIconDefinition(mask || {}); - } - - return next(iconDefinition, _extends({}, params, { mask: mask })); - }; -} - -var library = new Library(); -var noAuto = function noAuto() { - return auto(false); -}; - -var dom = { - i2svg: function i2svg() { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - if (IS_DOM) { - ensureCss(); - - var _params$node = params.node, - node = _params$node === undefined ? DOCUMENT : _params$node, - _params$callback = params.callback, - callback = _params$callback === undefined ? function () {} : _params$callback; - - - if (config$1.searchPseudoElements) { - searchPseudoElements(node); - } - - onTree(node, callback); - } - }, - - css: css, - - insertCss: function insertCss$$1() { - insertCss(css()); - } -}; - -var parse = { - transform: function transform(transformString) { - return parseTransformString(transformString); - } -}; - -var icon = resolveIcons(function (iconDefinition) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var _params$transform = params.transform, - transform = _params$transform === undefined ? meaninglessTransform : _params$transform, - _params$symbol = params.symbol, - symbol = _params$symbol === undefined ? false : _params$symbol, - _params$mask = params.mask, - mask = _params$mask === undefined ? null : _params$mask, - _params$title = params.title, - title = _params$title === undefined ? null : _params$title, - _params$classes = params.classes, - classes = _params$classes === undefined ? [] : _params$classes, - _params$attributes = params.attributes, - attributes = _params$attributes === undefined ? {} : _params$attributes, - _params$styles = params.styles, - styles = _params$styles === undefined ? {} : _params$styles; - - - if (!iconDefinition) return; - - var prefix = iconDefinition.prefix, - iconName = iconDefinition.iconName, - icon = iconDefinition.icon; - - - return apiObject(_extends({ type: 'icon' }, iconDefinition), function () { - ensureCss(); - - if (config$1.autoA11y) { - if (title) { - attributes['aria-labelledby'] = config$1.replacementClass + '-title-' + nextUniqueId(); - } else { - attributes['aria-hidden'] = 'true'; - } - } - - return makeInlineSvgAbstract({ - icons: { - main: prepIcon(icon), - mask: mask ? prepIcon(mask.icon) : { found: false, width: null, height: null, icon: {} } - }, - prefix: prefix, - iconName: iconName, - transform: _extends({}, meaninglessTransform, transform), - symbol: symbol, - title: title, - extra: { - attributes: attributes, - styles: styles, - classes: classes - } - }); - }); -}); - -var text = function text(content) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var _params$transform2 = params.transform, - transform = _params$transform2 === undefined ? meaninglessTransform : _params$transform2, - _params$title2 = params.title, - title = _params$title2 === undefined ? null : _params$title2, - _params$classes2 = params.classes, - classes = _params$classes2 === undefined ? [] : _params$classes2, - _params$attributes2 = params.attributes, - attributes = _params$attributes2 === undefined ? {} : _params$attributes2, - _params$styles2 = params.styles, - styles = _params$styles2 === undefined ? {} : _params$styles2; - - - return apiObject({ type: 'text', content: content }, function () { - ensureCss(); - - return makeLayersTextAbstract({ - content: content, - transform: _extends({}, meaninglessTransform, transform), - title: title, - extra: { - attributes: attributes, - styles: styles, - classes: [config$1.familyPrefix + '-layers-text'].concat(toConsumableArray(classes)) - } - }); - }); -}; - -var layer = function layer(assembler) { - return apiObject({ type: 'layer' }, function () { - ensureCss(); - - var children = []; - - assembler(function (args) { - Array.isArray(args) ? children = args.map(function (a) { - children = children.concat(a.abstract); - }) : children = children.concat(args.abstract); - }); - - return [{ - tag: 'span', - attributes: { class: config$1.familyPrefix + '-layers' }, - children: children - }]; - }); -}; - -var api$1 = { - noAuto: noAuto, - dom: dom, - library: library, - parse: parse, - findIconDefinition: findIconDefinition, - icon: icon, - text: text, - layer: layer -}; - -var autoReplace = function autoReplace() { - if (IS_DOM && config$1.autoReplaceSvg) api$1.dom.i2svg({ node: DOCUMENT }); -}; - -function bootstrap() { - if (IS_BROWSER) { - if (!WINDOW.FontAwesome) { - WINDOW.FontAwesome = api$1; - } - - domready(function () { - if (Object.keys(namespace.styles).length > 0) { - autoReplace(); - } - - if (config$1.observeMutations && typeof MutationObserver === 'function') { - observe({ - treeCallback: onTree, - nodeCallback: onNode, - pseudoElementsCallback: searchPseudoElements - }); - } - }); - } - - namespace.hooks = _extends({}, namespace.hooks, { - - addPack: function addPack(prefix, icons) { - namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, icons); - - build(); - autoReplace(); - }, - - addShims: function addShims(shims) { - var _namespace$shims; - - (_namespace$shims = namespace.shims).push.apply(_namespace$shims, toConsumableArray(shims)); - - build(); - autoReplace(); - } - }); -} - -Object.defineProperty(api$1, 'config', { - get: function get() { - return config$1; - }, - - set: function set(newConfig) { - update(newConfig); - } -}); - -if (IS_DOM) bunker(bootstrap); - -var config = api$1.config; - - -/* harmony default export */ __webpack_exports__["a"] = (api$1); - -/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(5))) - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -module.exports = { prefix: 'fas', iconName: 'bars', icon: [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"] }; - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -module.exports = { prefix: 'fas', iconName: 'clipboard', icon: [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"] }; - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -module.exports = { prefix: 'fas', iconName: 'download', icon: [512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"] }; - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = { prefix: 'fas', iconName: 'key', icon: [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"] }; - -/***/ }), -/* 10 */ -/***/ (function(module, exports) { - -module.exports = { prefix: 'fas', iconName: 'cog', icon: [512, 512, [], "f013", "M444.788 291.1l42.616 24.599c4.867 2.809 7.126 8.618 5.459 13.985-11.07 35.642-29.97 67.842-54.689 94.586a12.016 12.016 0 0 1-14.832 2.254l-42.584-24.595a191.577 191.577 0 0 1-60.759 35.13v49.182a12.01 12.01 0 0 1-9.377 11.718c-34.956 7.85-72.499 8.256-109.219.007-5.49-1.233-9.403-6.096-9.403-11.723v-49.184a191.555 191.555 0 0 1-60.759-35.13l-42.584 24.595a12.016 12.016 0 0 1-14.832-2.254c-24.718-26.744-43.619-58.944-54.689-94.586-1.667-5.366.592-11.175 5.459-13.985L67.212 291.1a193.48 193.48 0 0 1 0-70.199l-42.616-24.599c-4.867-2.809-7.126-8.618-5.459-13.985 11.07-35.642 29.97-67.842 54.689-94.586a12.016 12.016 0 0 1 14.832-2.254l42.584 24.595a191.577 191.577 0 0 1 60.759-35.13V25.759a12.01 12.01 0 0 1 9.377-11.718c34.956-7.85 72.499-8.256 109.219-.007 5.49 1.233 9.403 6.096 9.403 11.723v49.184a191.555 191.555 0 0 1 60.759 35.13l42.584-24.595a12.016 12.016 0 0 1 14.832 2.254c24.718 26.744 43.619 58.944 54.689 94.586 1.667 5.366-.592 11.175-5.459 13.985L444.788 220.9a193.485 193.485 0 0 1 0 70.2zM336 256c0-44.112-35.888-80-80-80s-80 35.888-80 80 35.888 80 80 80 80-35.888 80-80z"] }; - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }) -/******/ ]); \ No newline at end of file +!function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=0)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=i(1),n=(i.n(r),i(2)),s=(i.n(n),i(3)),o=(i.n(s),i(4)),a=i(6),l=i.n(a),c=i(7),h=i.n(c),u=i(8),f=i.n(u),p=i(9),d=i.n(p),m=i(10),_=i.n(m);o.a.library.add(l.a,h.a,f.a,d.a,_.a),o.a.config.searchPseudoElements=!0,o.a.dom.i2svg(),i(11),i(12),n.applyAddon(s);var y,g,v,b,C,w,x=!1,k=!1,A=document.getElementById("downloadLogBtn"),S=document.getElementById("credentialsBtn"),E=document.getElementById("logBtn");E.addEventListener("click",function(){return!0===x?(x=!1,k=!0,E.innerHTML=' Start Log',console.log("stopping log, "+x),b=new Date,y=y+"\r\n\r\nLog End for "+g+": "+b.getFullYear()+"/"+(b.getMonth()+1)+"/"+b.getDate()+" @ "+b.getHours()+":"+b.getMinutes()+":"+b.getSeconds()+"\r\n",v=b,M.focus(),!1):(x=!0,k=!0,E.innerHTML=' Stop Log',A.style.color="#000",A.addEventListener("click",D),console.log("starting log, "+x),b=new Date,y="Log Start for "+g+": "+b.getFullYear()+"/"+(b.getMonth()+1)+"/"+b.getDate()+" @ "+b.getHours()+":"+b.getMinutes()+":"+b.getSeconds()+"\r\n\r\n",v=b,M.focus(),!1)}),E.style.color="#000";var L,T=document.getElementById("terminal-container"),M=new n;function R(){M.fit(),L.emit("resize",{cols:M.cols,rows:M.rows})}if(M.open(T),M.focus(),M.fit(),window.addEventListener("resize",R,!1),document.location.pathname){var B=document.location.pathname.split("/"),O=(B.slice(0,B.length-1).join("/")+"/").substring(1)+"socket.io";L=r.connect(null,{resource:O})}else L=r.connect();function H(){return L.emit("control","replayCredentials"),console.log("replaying credentials"),M.focus(),!1}function D(){if(!0===k){C="WebSSH2-"+v.getFullYear()+(v.getMonth()+1)+v.getDate()+"_"+v.getHours()+v.getMinutes()+v.getSeconds()+".log";var t=new Blob([y.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")],{type:"text/plain"});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveBlob(t,C);else{var e=window.document.createElement("a");e.href=window.URL.createObjectURL(t),e.download=C,document.body.appendChild(e),e.click(),document.body.removeChild(e)}}M.focus()}L.on("connect",function(){L.emit("geometry",M.cols,M.rows)}),L.on("setTerminalOpts",function(t){M.setOption("cursorBlink",t.cursorBlink),M.setOption("scrollback",t.scrollback),M.setOption("tabStopWidth",t.tabStopWidth)}),M.on("data",function(t){L.emit("data",t)}),L.on("title",function(t){document.title=t}).on("status",function(t){document.getElementById("status").innerHTML=t}).on("ssherror",function(t){document.getElementById("status").innerHTML=t,document.getElementById("status").style.backgroundColor="red",w=!0}).on("headerBackground",function(t){document.getElementById("header").style.backgroundColor=t}).on("header",function(t){t&&(document.getElementById("header").innerHTML=t,document.getElementById("header").style.display="block",document.getElementById("terminal-container").style.height="calc(100% - 38px)",R())}).on("footer",function(t){g=t,document.getElementById("footer").innerHTML=t}).on("statusBackground",function(t){document.getElementById("status").style.backgroundColor=t}).on("allowreplay",function(t){!0===t?(console.log("allowreplay: "+t),S.style.color="#000",S.addEventListener("click",H)):(console.log("allowreplay: "+t),S.style.color="#666")}).on("data",function(t){M.write(t),x&&(y+=t)}).on("disconnect",function(t){w||(document.getElementById("status").style.backgroundColor="red",document.getElementById("status").innerHTML="WEBSOCKET SERVER DISCONNECTED: "+t),L.io.reconnection(!1)}).on("error",function(t){w||(document.getElementById("status").style.backgroundColor="red",document.getElementById("status").innerHTML="ERROR: "+t)})},function(t,e,i){var r;r=function(){return function(t){function e(r){if(i[r])return i[r].exports;var n=i[r]={exports:{},id:r,loaded:!1};return t[r].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";function r(t,e){"object"===(void 0===t?"undefined":n(t))&&(e=t,t=void 0),e=e||{};var i,r=s(t),o=r.source,h=r.id,u=r.path,f=c[h]&&u in c[h].nsps;return e.forceNew||e["force new connection"]||!1===e.multiplex||f?(l("ignoring socket cache for %s",o),i=a(o,e)):(c[h]||(l("new io instance for %s",o),c[h]=a(o,e)),i=c[h]),r.query&&!e.query&&(e.query=r.query),i.socket(r.path,e)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s=i(1),o=i(7),a=i(13),l=i(3)("socket.io-client");t.exports=e=r;var c=e.managers={};e.protocol=o.protocol,e.connect=r,e.Manager=i(13),e.Socket=i(37)},function(t,e,i){(function(e){"use strict";var r=i(2),n=i(3)("socket.io-client:url");t.exports=function(t,i){var s=t;i=i||e.location,null==t&&(t=i.protocol+"//"+i.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?i.protocol+t:i.host+t),/^(https?|wss?):\/\//.test(t)||(n("protocol-less url %s",t),t=void 0!==i?i.protocol+"//"+t:"https://"+t),n("parse %s",t),s=r(t)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";var o=-1!==s.host.indexOf(":")?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+o+":"+s.port,s.href=s.protocol+"://"+o+(i&&i.port===s.port?"":":"+s.port),s}}).call(e,function(){return this}())},function(t,e){var i=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];t.exports=function(t){var e=t,n=t.indexOf("["),s=t.indexOf("]");-1!=n&&-1!=s&&(t=t.substring(0,n)+t.substring(n,s).replace(/:/g,";")+t.substring(s,t.length));for(var o=i.exec(t||""),a={},l=14;l--;)a[r[l]]=o[l]||"";return-1!=n&&-1!=s&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a}},function(t,e,i){(function(r){function n(){var t;try{t=e.storage.debug}catch(t){}return!t&&void 0!==r&&"env"in r&&(t=r.env.DEBUG),t}(e=t.exports=i(5)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},e.formatArgs=function(t){var i=this.useColors;if(t[0]=(i?"%c":"")+this.namespace+(i?" %c":" ")+t[0]+(i?"%c ":" ")+"+"+e.humanize(this.diff),i){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(t){"%%"!==t&&"%c"===t&&(s=++n)}),t.splice(s,0,r)}},e.save=function(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(t){}},e.load=n,e.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},e.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},e.enable(n())}).call(e,i(4))},function(t,e){function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function n(t){if(c===setTimeout)return setTimeout(t,0);if((c===i||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function s(){d&&f&&(d=!1,f.length?p=f.concat(p):m=-1,p.length&&o())}function o(){if(!d){var t=n(s);d=!0;for(var e=p.length;e;){for(f=p,p=[];++m1)for(var i=1;i0)return function(t){if(!((t=String(t)).length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var i=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return i*l;case"days":case"day":case"d":return i*a;case"hours":case"hour":case"hrs":case"hr":case"h":return i*o;case"minutes":case"minute":case"mins":case"min":case"m":return i*s;case"seconds":case"second":case"secs":case"sec":case"s":return i*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}}}(t);if("number"===r&&!1===isNaN(t))return e.long?i(t):function(t){return t>=a?Math.round(t/a)+"d":t>=o?Math.round(t/o)+"h":t>=s?Math.round(t/s)+"m":t>=n?Math.round(t/n)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},function(t,e,i){function r(){}function n(t){var i=""+t.type;return e.BINARY_EVENT!==t.type&&e.BINARY_ACK!==t.type||(i+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(i+=t.nsp+","),null!=t.id&&(i+=t.id),null!=t.data&&(i+=JSON.stringify(t.data)),c("encoded %j as %s",t,i),i}function s(){this.reconstructor=null}function o(t){var i=0,r={type:Number(t.charAt(0))};if(null==e.types[r.type])return l();if(e.BINARY_EVENT===r.type||e.BINARY_ACK===r.type){for(var n="";"-"!==t.charAt(++i)&&(n+=t.charAt(i),i!=t.length););if(n!=Number(n)||"-"!==t.charAt(i))throw new Error("Illegal attachments");r.attachments=Number(n)}if("/"===t.charAt(i+1))for(r.nsp="";++i;){if(","===(o=t.charAt(i)))break;if(r.nsp+=o,i===t.length)break}else r.nsp="/";var s=t.charAt(i+1);if(""!==s&&Number(s)==s){for(r.id="";++i;){var o;if(null==(o=t.charAt(i))||Number(o)!=o){--i;break}if(r.id+=t.charAt(i),i===t.length)break}r.id=Number(r.id)}return t.charAt(++i)&&(r=function(t,e){try{t.data=JSON.parse(e)}catch(t){return l()}return t}(r,t.substr(i))),c("decoded %s as %j",t,r),r}function a(t){this.reconPack=t,this.buffers=[]}function l(){return{type:e.ERROR,data:"parser error"}}var c=i(3)("socket.io-parser"),h=i(8),u=i(9),f=i(11),p=i(12);e.protocol=4,e.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],e.CONNECT=0,e.DISCONNECT=1,e.EVENT=2,e.ACK=3,e.ERROR=4,e.BINARY_EVENT=5,e.BINARY_ACK=6,e.Encoder=r,e.Decoder=s,r.prototype.encode=function(t,i){(t.type!==e.EVENT&&t.type!==e.ACK||!u(t.data)||(t.type=t.type===e.EVENT?e.BINARY_EVENT:e.BINARY_ACK),c("encoding packet %j",t),e.BINARY_EVENT===t.type||e.BINARY_ACK===t.type)?function(t,e){f.removeBlobs(t,function(t){var i=f.deconstructPacket(t),r=n(i.packet),s=i.buffers;s.unshift(r),e(s)})}(t,i):i([n(t)])},h(s.prototype),s.prototype.add=function(t){var i;if("string"==typeof t)i=o(t),e.BINARY_EVENT===i.type||e.BINARY_ACK===i.type?(this.reconstructor=new a(i),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",i)):this.emit("decoded",i);else{if(!p(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(i=this.reconstructor.takeBinaryData(t))&&(this.reconstructor=null,this.emit("decoded",i))}},s.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},a.prototype.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var e=f.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null},a.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(t,e,i){function r(t){if(t)return function(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}(t)}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},r.prototype.once=function(t,e){function i(){this.off(t,i),e.apply(this,arguments)}return i.fn=e,this.on(t,i),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks["$"+t];if(!i)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var r,n=0;n0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},r.prototype.cleanup=function(){u("cleanup");for(var t=this.subs.length,e=0;e=this._reconnectionAttempts)u("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var e=this.backoff.duration();u("will wait %dms before reconnect attempt",e),this.reconnecting=!0;var i=setTimeout(function(){t.skipReconnect||(u("attempting reconnect"),t.emitAll("reconnect_attempt",t.backoff.attempts),t.emitAll("reconnecting",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(u("reconnect attempt error"),t.reconnecting=!1,t.reconnect(),t.emitAll("reconnect_error",e.data)):(u("reconnect success"),t.onreconnect())}))},e);this.subs.push({destroy:function(){clearTimeout(i)}})}},r.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",t)}},function(t,e,i){t.exports=i(15),t.exports.parser=i(22)},function(t,e,i){(function(e){function r(t,i){if(!(this instanceof r))return new r(t,i);i=i||{},t&&"object"==typeof t&&(i=t,t=null),t?(t=c(t),i.hostname=t.host,i.secure="https"===t.protocol||"wss"===t.protocol,i.port=t.port,t.query&&(i.query=t.query)):i.host&&(i.hostname=c(i.host).host),this.secure=null!=i.secure?i.secure:e.location&&"https:"===location.protocol,i.hostname&&!i.port&&(i.port=this.secure?"443":"80"),this.agent=i.agent||!1,this.hostname=i.hostname||(e.location?location.hostname:"localhost"),this.port=i.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=i.query||{},"string"==typeof this.query&&(this.query=h.decode(this.query)),this.upgrade=!1!==i.upgrade,this.path=(i.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!i.forceJSONP,this.jsonp=!1!==i.jsonp,this.forceBase64=!!i.forceBase64,this.enablesXDR=!!i.enablesXDR,this.timestampParam=i.timestampParam||"t",this.timestampRequests=i.timestampRequests,this.transports=i.transports||["polling","websocket"],this.transportOptions=i.transportOptions||{},this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=i.policyPort||843,this.rememberUpgrade=i.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=i.onlyBinaryUpgrades,this.perMessageDeflate=!1!==i.perMessageDeflate&&(i.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=i.pfx||null,this.key=i.key||null,this.passphrase=i.passphrase||null,this.cert=i.cert||null,this.ca=i.ca||null,this.ciphers=i.ciphers||null,this.rejectUnauthorized=void 0===i.rejectUnauthorized||i.rejectUnauthorized,this.forceNode=!!i.forceNode;var n="object"==typeof e&&e;n.global===n&&(i.extraHeaders&&Object.keys(i.extraHeaders).length>0&&(this.extraHeaders=i.extraHeaders),i.localAddress&&(this.localAddress=i.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}var n=i(16),s=i(8),o=i(3)("engine.io-client:socket"),a=i(36),l=i(22),c=i(2),h=i(30);t.exports=r,r.priorWebsocketSuccess=!1,s(r.prototype),r.protocol=l.protocol,r.Socket=r,r.Transport=i(21),r.transports=i(16),r.parser=i(22),r.prototype.createTransport=function(t){o('creating transport "%s"',t);var e=function(t){var e={};for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e}(this.query);e.EIO=l.protocol,e.transport=t;var i=this.transportOptions[t]||{};return this.id&&(e.sid=this.id),new n[t]({query:e,socket:this,agent:i.agent||this.agent,hostname:i.hostname||this.hostname,port:i.port||this.port,secure:i.secure||this.secure,path:i.path||this.path,forceJSONP:i.forceJSONP||this.forceJSONP,jsonp:i.jsonp||this.jsonp,forceBase64:i.forceBase64||this.forceBase64,enablesXDR:i.enablesXDR||this.enablesXDR,timestampRequests:i.timestampRequests||this.timestampRequests,timestampParam:i.timestampParam||this.timestampParam,policyPort:i.policyPort||this.policyPort,pfx:i.pfx||this.pfx,key:i.key||this.key,passphrase:i.passphrase||this.passphrase,cert:i.cert||this.cert,ca:i.ca||this.ca,ciphers:i.ciphers||this.ciphers,rejectUnauthorized:i.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:i.perMessageDeflate||this.perMessageDeflate,extraHeaders:i.extraHeaders||this.extraHeaders,forceNode:i.forceNode||this.forceNode,localAddress:i.localAddress||this.localAddress,requestTimeout:i.requestTimeout||this.requestTimeout,protocols:i.protocols||void 0})},r.prototype.open=function(){var t;if(this.rememberUpgrade&&r.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))t="websocket";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit("error","No transports available")},0)}t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},r.prototype.setTransport=function(t){o("setting transport %s",t.name);var e=this;this.transport&&(o("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=t,t.on("drain",function(){e.onDrain()}).on("packet",function(t){e.onPacket(t)}).on("error",function(t){e.onError(t)}).on("close",function(){e.onClose("transport close")})},r.prototype.probe=function(t){function e(){if(f.onlyBinaryUpgrades){var e=!this.supportsBinary&&f.transport.supportsBinary;u=u||e}u||(o('probe transport "%s" opened',t),h.send([{type:"ping",data:"probe"}]),h.once("packet",function(e){if(!u)if("pong"===e.type&&"probe"===e.data){if(o('probe transport "%s" pong',t),f.upgrading=!0,f.emit("upgrading",h),!h)return;r.priorWebsocketSuccess="websocket"===h.name,o('pausing current transport "%s"',f.transport.name),f.transport.pause(function(){u||"closed"!==f.readyState&&(o("changing transport and sending upgrade packet"),c(),f.setTransport(h),h.send([{type:"upgrade"}]),f.emit("upgrade",h),h=null,f.upgrading=!1,f.flush())})}else{o('probe transport "%s" failed',t);var i=new Error("probe error");i.transport=h.name,f.emit("upgradeError",i)}}))}function i(){u||(u=!0,c(),h.close(),h=null)}function n(e){var r=new Error("probe error: "+e);r.transport=h.name,i(),o('probe transport "%s" failed because of error: %s',t,e),f.emit("upgradeError",r)}function s(){n("transport closed")}function a(){n("socket closed")}function l(t){h&&t.name!==h.name&&(o('"%s" works - aborting "%s"',t.name,h.name),i())}function c(){h.removeListener("open",e),h.removeListener("error",n),h.removeListener("close",s),f.removeListener("close",a),f.removeListener("upgrading",l)}o('probing transport "%s"',t);var h=this.createTransport(t,{probe:1}),u=!1,f=this;r.priorWebsocketSuccess=!1,h.once("open",e),h.once("error",n),h.once("close",s),this.once("close",a),this.once("upgrading",l),h.open()},r.prototype.onOpen=function(){if(o("socket open"),this.readyState="open",r.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){o("starting upgrade probes");for(var t=0,e=this.upgrades.length;t1?{type:y[n],data:t.substring(1)}:{type:y[n]}:g}n=new Uint8Array(t)[0];var s=h(t,1);return v&&"blob"===i&&(s=new v([s])),{type:y[n],data:s}},e.decodeBase64Packet=function(t,e){var i=y[t.charAt(0)];if(!a)return{type:i,data:{base64:!0,data:t.substr(1)}};var r=a.decode(t.substr(1));return"blob"===e&&v&&(r=new v([r])),{type:i,data:r}},e.encodePayload=function(t,i,r){"function"==typeof i&&(r=i,i=null);var n=c(t);return i&&n?v&&!m?e.encodePayloadAsBlob(t,r):e.encodePayloadAsArrayBuffer(t,r):t.length?void o(t,function(t,r){e.encodePacket(t,!!n&&i,!1,function(t){r(null,function(t){return t.length+":"+t}(t))})},function(t,e){return r(e.join(""))}):r("0:")},e.decodePayload=function(t,i,r){if("string"!=typeof t)return e.decodePayloadAsBinary(t,i,r);var n;if("function"==typeof i&&(r=i,i=null),""===t)return r(g,0,1);for(var s,o,a="",l=0,c=t.length;l0;){for(var o=new Uint8Array(n),a=0===o[0],l="",c=1;255!==o[c];c++){if(l.length>310)return r(g,0,1);l+=o[c]}n=h(n,2+l.length),l=parseInt(l);var u=h(n,0,l);if(a)try{u=String.fromCharCode.apply(null,new Uint8Array(u))}catch(t){var f=new Uint8Array(u);u="";for(c=0;cr&&(i=r),e>=r||e>=i||0===r)return new ArrayBuffer(0);for(var n=new Uint8Array(t),s=new Uint8Array(i-e),o=e,a=0;o=55296&&e<=56319&&n=55296&&t<=57343){if(e)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function l(t,e){return _(t>>e&63|128)}function c(t,e){if(0==(4294967168&t))return _(t);var i="";return 0==(4294965248&t)?i=_(t>>6&31|192):0==(4294901760&t)?(a(t,e)||(t=65533),i=_(t>>12&15|224),i+=l(t,6)):0==(4292870144&t)&&(i=_(t>>18&7|240),i+=l(t,12),i+=l(t,6)),i+_(63&t|128)}function h(){if(m>=d)throw Error("Invalid byte index");var t=255&p[m];if(m++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function u(t){var e,i;if(m>d)throw Error("Invalid byte index");if(m==d)return!1;if(e=255&p[m],m++,0==(128&e))return e;if(192==(224&e)){if((i=(31&e)<<6|h())>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if((i=(15&e)<<12|h()<<6|h())>=2048)return a(i,t)?i:65533;throw Error("Invalid continuation byte")}if(240==(248&e)&&((i=(7&e)<<18|h()<<12|h()<<6|h())>=65536&&i<=1114111))return i;throw Error("Invalid UTF-8 detected")}var f=("object"==typeof t&&t&&t.exports,"object"==typeof n&&n);f.global!==f&&f.window;var p,d,m,_=String.fromCharCode,y={version:"2.1.2",encode:function(t,e){for(var i=!1!==(e=e||{}).strict,r=o(t),n=r.length,s=-1,a="";++s65535&&(n+=_((e-=65536)>>>10&1023|55296),e=56320|1023&e),n+=_(e);return n}(n)}};void 0===(r=function(){return y}.call(e,i,e,t))||(t.exports=r)}()}).call(e,i(27)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){!function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=new Uint8Array(256),r=0;r>2],s+=t[(3&r[i])<<4|r[i+1]>>4],s+=t[(15&r[i+1])<<2|r[i+2]>>6],s+=t[63&r[i+2]];return n%3==2?s=s.substring(0,s.length-1)+"=":n%3==1&&(s=s.substring(0,s.length-2)+"=="),s},e.decode=function(t){var e,r,n,s,o,a=.75*t.length,l=t.length,c=0;"="===t[t.length-1]&&(a--,"="===t[t.length-2]&&a--);var h=new ArrayBuffer(a),u=new Uint8Array(h);for(e=0;e>4,u[c++]=(15&n)<<4|s>>2,u[c++]=(3&s)<<6|63&o;return h}}()},function(t,e){(function(e){function i(t){for(var e=0;e0);return e}function r(){var t=i(+new Date);return t!==n?(l=0,n=t):t+"."+i(l++)}for(var n,s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),o=64,a={},l=0,c=0;c';s=document.createElement(t)}catch(t){(s=document.createElement("iframe")).name=n.iframeId,s.src="javascript:0"}s.id=n.iframeId,n.form.appendChild(s),n.iframe=s}var n=this;if(!this.form){var s,o=document.createElement("form"),a=document.createElement("textarea"),h=this.iframeId="eio_iframe_"+this.index;o.className="socketio",o.style.position="absolute",o.style.top="-1000px",o.style.left="-1000px",o.target=h,o.method="POST",o.setAttribute("accept-charset","utf-8"),a.name="d",o.appendChild(a),document.body.appendChild(o),this.form=o,this.area=a}this.form.action=this.uri(),r(),t=t.replace(c,"\\\n"),this.area.value=t.replace(l,"\\n");try{this.form.submit()}catch(t){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===n.iframe.readyState&&i()}:this.iframe.onload=i}}).call(e,function(){return this}())},function(t,e,i){(function(e){function r(t){t&&t.forceBase64&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=u&&!t.forceNode,this.protocols=t.protocols,this.usingBrowserWebSocket||(f=n),s.call(this,t)}var n,s=i(21),o=i(22),a=i(30),l=i(31),c=i(32),h=i(3)("engine.io-client:websocket"),u=e.WebSocket||e.MozWebSocket;if("undefined"==typeof window)try{n=i(35)}catch(t){}var f=u;f||"undefined"!=typeof window||(f=n),t.exports=r,l(r,s),r.prototype.name="websocket",r.prototype.supportsBinary=!0,r.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=this.protocols,i={agent:this.agent,perMessageDeflate:this.perMessageDeflate};i.pfx=this.pfx,i.key=this.key,i.passphrase=this.passphrase,i.cert=this.cert,i.ca=this.ca,i.ciphers=this.ciphers,i.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(i.headers=this.extraHeaders),this.localAddress&&(i.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?e?new f(t,e):new f(t):new f(t,e,i)}catch(t){return this.emit("error",t)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},r.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError("websocket error",e)}},r.prototype.write=function(t){var i=this;this.writable=!1;for(var r=t.length,n=0,s=r;n0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=i,i.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),i=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-i:t+i}return 0|Math.min(t,this.max)},i.prototype.reset=function(){this.attempts=0},i.prototype.setMin=function(t){this.ms=t},i.prototype.setMax=function(t){this.max=t},i.prototype.setJitter=function(t){this.jitter=t}}])},t.exports=r()},function(t,e,i){var r,n;n=function(){return function t(e,i,n){function s(a,l){if(!i[a]){if(!e[a]){if(!l&&("function"==typeof r&&r))return r(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var h=i[a]={exports:{}};e[a][0].call(h.exports,function(t){var i=e[a][1][t];return s(i||t)},h,h.exports,t,e,i,n)}return i[a].exports}for(var o="function"==typeof r&&r,a=0;athis._terminal.rows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCursorInViewport",{get:function(){var t=this.ybase+this.y-this.ydisp;return t>=0&&ti.MAX_BUFFER_SIZE?i.MAX_BUFFER_SIZE:e},t.prototype.fillViewportRows=function(){if(0===this._lines.length)for(var t=this._terminal.rows;t--;)this.lines.push(this._terminal.blankLine())},t.prototype.clear=function(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this._lines=new r.CircularList(this._getCorrectBufferLength(this._terminal.rows)),this.scrollTop=0,this.scrollBottom=this._terminal.rows-1,this.setupTabStops()},t.prototype.resize=function(t,e){var i=this._getCorrectBufferLength(e);if(i>this._lines.maxLength&&(this._lines.maxLength=i),this._lines.length>0){if(this._terminal.cols0&&this._lines.length<=this.ybase+this.y+s+1?(this.ybase--,s++,this.ydisp>0&&this.ydisp--):this._lines.push(this._terminal.blankLine(void 0,void 0,t)));else for(o=this._terminal.rows;o>e;o--)this._lines.length>e+this.ybase&&(this._lines.length>this.ybase+this.y+1?this._lines.pop():(this.ybase++,this.ydisp++));if(i0&&(this._lines.trimStart(a),this.ybase=Math.max(this.ybase-a,0),this.ydisp=Math.max(this.ydisp-a,0)),this._lines.maxLength=i}this.y>=e&&(this.y=e-1),s&&(this.y+=s),this.x>=t&&(this.x=t-1),this.scrollTop=0}this.scrollBottom=e-1},t.prototype.translateBufferLineToString=function(t,e,r,n){void 0===r&&(r=0),void 0===n&&(n=null);var s="",o=this.lines.get(t);if(!o)return"";for(var a=r,l=n=n||o.length,c=0;c=c&&a--,n>=c&&l--):h[i.CHAR_DATA_CHAR_INDEX].length>1&&(r>c&&(a+=h[i.CHAR_DATA_CHAR_INDEX].length-1),n>c&&(l+=h[i.CHAR_DATA_CHAR_INDEX].length-1))}if(e){var u=s.search(/\s+$/);if(-1!==u&&(l=Math.min(l,u)),l<=a)return""}return s.substring(a,l)},t.prototype.setupTabStops=function(t){for(null!=t?this.tabs[t]||(t=this.prevStop(t)):(this.tabs={},t=0);t0;);return t>=this._terminal.cols?this._terminal.cols-1:t<0?0:t},t.prototype.nextStop=function(t){for(null==t&&(t=this.x);!this.tabs[++t]&&t=this._terminal.cols?this._terminal.cols-1:t<0?0:t},t}();i.Buffer=n},{"./utils/CircularList":30}],2:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=t("./Buffer"),o=function(t){function e(e){var i=t.call(this)||this;return i._terminal=e,i._normal=new s.Buffer(i._terminal,!0),i._normal.fillViewportRows(),i._alt=new s.Buffer(i._terminal,!1),i._activeBuffer=i._normal,i.setupTabStops(),i}return n(e,t),Object.defineProperty(e.prototype,"alt",{get:function(){return this._alt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"active",{get:function(){return this._activeBuffer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"normal",{get:function(){return this._normal},enumerable:!0,configurable:!0}),e.prototype.activateNormalBuffer=function(){this._alt.clear(),this._activeBuffer=this._normal,this.emit("activate",this._normal)},e.prototype.activateAltBuffer=function(){this._alt.fillViewportRows(),this._activeBuffer=this._alt,this.emit("activate",this._alt)},e.prototype.resize=function(t,e){this._normal.resize(t,e),this._alt.resize(t,e)},e.prototype.setupTabStops=function(t){this._normal.setupTabStops(t),this._alt.setupTabStops(t)},e}(t("./EventEmitter").EventEmitter);i.BufferSet=o},{"./Buffer":1,"./EventEmitter":7}],3:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.wcwidth=function(t){var e=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],i=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];function r(t,e){var i,r=0,n=e.length-1;if(te[n][1])return!1;for(;n>=r;)if(t>e[i=r+n>>1][1])r=i+1;else{if(!(t=127&&i<160?t.control:r(i,e)?0:function(t){return t>=4352&&(t<=4447||9001===t||9002===t||t>=11904&&t<=42191&&12351!==t||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65135||t>=65280&&t<=65376||t>=65504&&t<=65510)}(i)?2:1);s[n]=o}return s}();return o<65536?l[o>>4]>>((15&o)<<1)&3:r(a=o,i)?0:a>=131072&&a<=196605||a>=196608&&a<=262141?2:1}}({nul:0,control:0})},{}],4:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.CHARSETS={},i.DEFAULT_CHARSET=i.CHARSETS.B,i.CHARSETS[0]={"`":"◆",a:"▒",b:"\t",c:"\f",d:"\r",e:"\n",f:"°",g:"±",h:"␤",i:"\v",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},i.CHARSETS.A={"#":"£"},i.CHARSETS.B=null,i.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},i.CHARSETS.C=i.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},i.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},i.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},i.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},i.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},i.CHARSETS.E=i.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},i.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},i.CHARSETS.H=i.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},i.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},{}],5:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(t,e,i){this.textarea=t,this.compositionView=e,this.terminal=i,this.isComposing=!1,this.isSendingComposition=!1,this.compositionPosition={start:null,end:null}}return t.prototype.compositionstart=function(){this.isComposing=!0,this.compositionPosition.start=this.textarea.value.length,this.compositionView.textContent="",this.compositionView.classList.add("active")},t.prototype.compositionupdate=function(t){var e=this;this.compositionView.textContent=t.data,this.updateCompositionElements(),setTimeout(function(){e.compositionPosition.end=e.textarea.value.length},0)},t.prototype.compositionend=function(){this.finalizeComposition(!0)},t.prototype.keydown=function(t){if(this.isComposing||this.isSendingComposition){if(229===t.keyCode)return!1;if(16===t.keyCode||17===t.keyCode||18===t.keyCode)return!1;this.finalizeComposition(!1)}return 229!==t.keyCode||(this.handleAnyTextareaChanges(),!1)},t.prototype.finalizeComposition=function(t){var e=this;if(this.compositionView.classList.remove("active"),this.isComposing=!1,this.clearTextareaPosition(),t){var i={start:this.compositionPosition.start,end:this.compositionPosition.end};this.isSendingComposition=!0,setTimeout(function(){if(e.isSendingComposition){e.isSendingComposition=!1;var t=void 0;t=e.isComposing?e.textarea.value.substring(i.start,i.end):e.textarea.value.substring(i.start),e.terminal.handler(t)}},0)}else{this.isSendingComposition=!1;var r=this.textarea.value.substring(this.compositionPosition.start,this.compositionPosition.end);this.terminal.handler(r)}},t.prototype.handleAnyTextareaChanges=function(){var t=this,e=this.textarea.value;setTimeout(function(){if(!t.isComposing){var i=t.textarea.value.replace(e,"");i.length>0&&t.terminal.handler(i)}},0)},t.prototype.updateCompositionElements=function(t){var e=this;if(this.isComposing){if(this.terminal.buffer.isCursorInViewport){var i=Math.ceil(this.terminal.charMeasure.height*this.terminal.options.lineHeight),r=this.terminal.buffer.y*i,n=this.terminal.buffer.x*this.terminal.charMeasure.width;this.compositionView.style.left=n+"px",this.compositionView.style.top=r+"px",this.compositionView.style.height=i+"px",this.compositionView.style.lineHeight=i+"px";var s=this.compositionView.getBoundingClientRect();this.textarea.style.left=n+"px",this.textarea.style.top=r+"px",this.textarea.style.width=s.width+"px",this.textarea.style.height=s.height+"px",this.textarea.style.lineHeight=s.height+"px"}t||setTimeout(function(){return e.updateCompositionElements(!0)},0)}},t.prototype.clearTextareaPosition=function(){this.textarea.style.left="",this.textarea.style.top=""},t}();i.CompositionHelper=r},{}],6:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),function(t){t.NUL="\0",t.SOH="",t.STX="",t.ETX="",t.EOT="",t.ENQ="",t.ACK="",t.BEL="",t.BS="\b",t.HT="\t",t.LF="\n",t.VT="\v",t.FF="\f",t.CR="\r",t.SO="",t.SI="",t.DLE="",t.DC1="",t.DC2="",t.DC3="",t.DC4="",t.NAK="",t.SYN="",t.ETB="",t.CAN="",t.EM="",t.SUB="",t.ESC="",t.FS="",t.GS="",t.RS="",t.US="",t.SP=" ",t.DEL=""}(i.C0||(i.C0={}))},{}],7:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(){this._events=this._events||{}}return t.prototype.on=function(t,e){this._events[t]=this._events[t]||[],this._events[t].push(e)},t.prototype.off=function(t,e){if(this._events[t])for(var i=this._events[t],r=i.length;r--;)if(i[r]===e||i[r].listener===e)return void i.splice(r,1)},t.prototype.removeAllListeners=function(t){this._events[t]&&delete this._events[t]},t.prototype.once=function(t,e){function i(){var r=Array.prototype.slice.call(arguments);this.off(t,i),e.apply(this,r)}i.listener=e,this.on(t,i)},t.prototype.emit=function(t){for(var e=[],i=1;i=" "){var i=a.wcwidth(e);this._terminal.charset&&this._terminal.charset[t]&&(t=this._terminal.charset[t]);var r=this._terminal.buffer.y+this._terminal.buffer.ybase;if(!i&&this._terminal.buffer.x)return void(this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-1]&&(this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-1][s.CHAR_DATA_WIDTH_INDEX]?(this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-1][s.CHAR_DATA_CHAR_INDEX]+=t,this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-1][3]=t.charCodeAt(0)):this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-2]&&(this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-2][s.CHAR_DATA_CHAR_INDEX]+=t,this._terminal.buffer.lines.get(r)[this._terminal.buffer.x-2][3]=t.charCodeAt(0)),this._terminal.updateRange(this._terminal.buffer.y)));if(this._terminal.buffer.x+i-1>=this._terminal.cols)if(this._terminal.wraparoundMode)this._terminal.buffer.x=0,this._terminal.buffer.y++,this._terminal.buffer.y>this._terminal.buffer.scrollBottom?(this._terminal.buffer.y--,this._terminal.scroll(!0)):this._terminal.buffer.lines.get(this._terminal.buffer.y).isWrapped=!0;else if(2===i)return;if(r=this._terminal.buffer.y+this._terminal.buffer.ybase,this._terminal.insertMode)for(var n=0;nthis._terminal.buffer.scrollBottom&&(this._terminal.buffer.y--,this._terminal.scroll()),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--,this._terminal.emit("linefeed")},t.prototype.carriageReturn=function(){this._terminal.buffer.x=0},t.prototype.backspace=function(){this._terminal.buffer.x>0&&this._terminal.buffer.x--},t.prototype.tab=function(){this._terminal.buffer.x=this._terminal.buffer.nextStop()},t.prototype.shiftOut=function(){this._terminal.setgLevel(1)},t.prototype.shiftIn=function(){this._terminal.setgLevel(0)},t.prototype.insertChars=function(t){var e=t[0];e<1&&(e=1);for(var i=this._terminal.buffer.y+this._terminal.buffer.ybase,r=this._terminal.buffer.x,n=[this._terminal.eraseAttr()," ",1,32];e--&&r=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--},t.prototype.cursorForward=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.x+=e,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.cursorBackward=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--,this._terminal.buffer.x-=e,this._terminal.buffer.x<0&&(this._terminal.buffer.x=0)},t.prototype.cursorNextLine=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.y+=e,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x=0},t.prototype.cursorPrecedingLine=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.y-=e,this._terminal.buffer.y<0&&(this._terminal.buffer.y=0),this._terminal.buffer.x=0},t.prototype.cursorCharAbsolute=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.x=e-1},t.prototype.cursorPosition=function(t){var e,i=t[0]-1;e=t.length>=2?t[1]-1:0,i<0?i=0:i>=this._terminal.rows&&(i=this._terminal.rows-1),e<0?e=0:e>=this._terminal.cols&&(e=this._terminal.cols-1),this._terminal.buffer.x=e,this._terminal.buffer.y=i},t.prototype.cursorForwardTab=function(t){for(var e=t[0]||1;e--;)this._terminal.buffer.x=this._terminal.buffer.nextStop()},t.prototype.eraseInDisplay=function(t){var e;switch(t[0]){case 0:for(this._terminal.eraseRight(this._terminal.buffer.x,this._terminal.buffer.y),e=this._terminal.buffer.y+1;e0&&(this._terminal.buffer.lines.trimStart(i),this._terminal.buffer.ybase=Math.max(this._terminal.buffer.ybase-i,0),this._terminal.buffer.ydisp=Math.max(this._terminal.buffer.ydisp-i,0),this._terminal.emit("scroll",0))}},t.prototype.eraseInLine=function(t){switch(t[0]){case 0:this._terminal.eraseRight(this._terminal.buffer.x,this._terminal.buffer.y);break;case 1:this._terminal.eraseLeft(this._terminal.buffer.x,this._terminal.buffer.y);break;case 2:this._terminal.eraseLine(this._terminal.buffer.y)}},t.prototype.insertLines=function(t){var e=t[0];e<1&&(e=1);for(var i=this._terminal.buffer.y+this._terminal.buffer.ybase,r=this._terminal.rows-1-this._terminal.buffer.scrollBottom,n=this._terminal.rows-1+this._terminal.buffer.ybase-r+1;e--;)this._terminal.buffer.lines.splice(n-1,1),this._terminal.buffer.lines.splice(i,0,this._terminal.blankLine(!0));this._terminal.updateRange(this._terminal.buffer.y),this._terminal.updateRange(this._terminal.buffer.scrollBottom)},t.prototype.deleteLines=function(t){var e=t[0];e<1&&(e=1);var i,r=this._terminal.buffer.y+this._terminal.buffer.ybase;for(i=this._terminal.rows-1-this._terminal.buffer.scrollBottom,i=this._terminal.rows-1+this._terminal.buffer.ybase-i;e--;)this._terminal.buffer.lines.splice(r,1),this._terminal.buffer.lines.splice(i,0,this._terminal.blankLine(!0));this._terminal.updateRange(this._terminal.buffer.y),this._terminal.updateRange(this._terminal.buffer.scrollBottom)},t.prototype.deleteChars=function(t){var e=t[0];e<1&&(e=1);for(var i=this._terminal.buffer.y+this._terminal.buffer.ybase,r=[this._terminal.eraseAttr()," ",1,32];e--;)this._terminal.buffer.lines.get(i).splice(this._terminal.buffer.x,1),this._terminal.buffer.lines.get(i).push(r);this._terminal.updateRange(this._terminal.buffer.y)},t.prototype.scrollUp=function(t){for(var e=t[0]||1;e--;)this._terminal.buffer.lines.splice(this._terminal.buffer.ybase+this._terminal.buffer.scrollTop,1),this._terminal.buffer.lines.splice(this._terminal.buffer.ybase+this._terminal.buffer.scrollBottom,0,this._terminal.blankLine());this._terminal.updateRange(this._terminal.buffer.scrollTop),this._terminal.updateRange(this._terminal.buffer.scrollBottom)},t.prototype.scrollDown=function(t){for(var e=t[0]||1;e--;)this._terminal.buffer.lines.splice(this._terminal.buffer.ybase+this._terminal.buffer.scrollBottom,1),this._terminal.buffer.lines.splice(this._terminal.buffer.ybase+this._terminal.buffer.scrollTop,0,this._terminal.blankLine());this._terminal.updateRange(this._terminal.buffer.scrollTop),this._terminal.updateRange(this._terminal.buffer.scrollBottom)},t.prototype.eraseChars=function(t){var e=t[0];e<1&&(e=1);for(var i=this._terminal.buffer.y+this._terminal.buffer.ybase,r=this._terminal.buffer.x,n=[this._terminal.eraseAttr()," ",1,32];e--&&r=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.HPositionRelative=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.x+=e,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.repeatPrecedingCharacter=function(t){for(var e=t[0]||1,i=this._terminal.buffer.lines.get(this._terminal.buffer.ybase+this._terminal.buffer.y),r=i[this._terminal.buffer.x-1]||[this._terminal.defAttr," ",1,32];e--;)i[this._terminal.buffer.x++]=r},t.prototype.sendDeviceAttributes=function(t){t[0]>0||(this._terminal.prefix?">"===this._terminal.prefix&&(this._terminal.is("xterm")?this._terminal.send(r.C0.ESC+"[>0;276;0c"):this._terminal.is("rxvt-unicode")?this._terminal.send(r.C0.ESC+"[>85;95;0c"):this._terminal.is("linux")?this._terminal.send(t[0]+"c"):this._terminal.is("screen")&&this._terminal.send(r.C0.ESC+"[>83;40003;0c")):this._terminal.is("xterm")||this._terminal.is("rxvt-unicode")||this._terminal.is("screen")?this._terminal.send(r.C0.ESC+"[?1;2c"):this._terminal.is("linux")&&this._terminal.send(r.C0.ESC+"[?6c"))},t.prototype.linePosAbsolute=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.y=e-1,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1)},t.prototype.VPositionRelative=function(t){var e=t[0];e<1&&(e=1),this._terminal.buffer.y+=e,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x>=this._terminal.cols&&this._terminal.buffer.x--},t.prototype.HVPosition=function(t){t[0]<1&&(t[0]=1),t[1]<1&&(t[1]=1),this._terminal.buffer.y=t[0]-1,this._terminal.buffer.y>=this._terminal.rows&&(this._terminal.buffer.y=this._terminal.rows-1),this._terminal.buffer.x=t[1]-1,this._terminal.buffer.x>=this._terminal.cols&&(this._terminal.buffer.x=this._terminal.cols-1)},t.prototype.tabClear=function(t){var e=t[0];e<=0?delete this._terminal.buffer.tabs[this._terminal.buffer.x]:3===e&&(this._terminal.buffer.tabs={})},t.prototype.setMode=function(t){if(t.length>1)for(var e=0;e1e3,this._terminal.mouseEvents=!0,this._terminal.element.classList.add("enable-mouse-events"),this._terminal.selectionManager.disable(),this._terminal.log("Binding to mouse events.");break;case 1004:this._terminal.sendFocus=!0;break;case 1005:this._terminal.utfMouse=!0;break;case 1006:this._terminal.sgrMouse=!0;break;case 1015:this._terminal.urxvtMouse=!0;break;case 25:this._terminal.cursorHidden=!1;break;case 1049:case 47:case 1047:this._terminal.buffers.activateAltBuffer(),this._terminal.selectionManager.setBuffer(this._terminal.buffer),this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!0}}else switch(t[0]){case 4:this._terminal.insertMode=!0}},t.prototype.resetMode=function(t){if(t.length>1)for(var e=0;e>18,n=this._terminal.curAttr>>9&511,s=511&this._terminal.curAttr,a=0;a=30&&e<=37?n=e-30:e>=40&&e<=47?s=e-40:e>=90&&e<=97?n=(e+=8)-90:e>=100&&e<=107?s=(e+=8)-100:0===e?(r=this._terminal.defAttr>>18,n=this._terminal.defAttr>>9&511,s=511&this._terminal.defAttr):1===e?r|=o.FLAGS.BOLD:4===e?r|=o.FLAGS.UNDERLINE:5===e?r|=o.FLAGS.BLINK:7===e?r|=o.FLAGS.INVERSE:8===e?r|=o.FLAGS.INVISIBLE:2===e?r|=o.FLAGS.DIM:22===e?(r&=~o.FLAGS.BOLD,r&=~o.FLAGS.DIM):24===e?r&=~o.FLAGS.UNDERLINE:25===e?r&=~o.FLAGS.BLINK:27===e?r&=~o.FLAGS.INVERSE:28===e?r&=~o.FLAGS.INVISIBLE:39===e?n=this._terminal.defAttr>>9&511:49===e?s=511&this._terminal.defAttr:38===e?2===t[a+1]?(a+=2,-1===(n=this._terminal.matchColor(255&t[a],255&t[a+1],255&t[a+2]))&&(n=511),a+=2):5===t[a+1]&&(n=e=255&t[a+=2]):48===e?2===t[a+1]?(a+=2,-1===(s=this._terminal.matchColor(255&t[a],255&t[a+1],255&t[a+2]))&&(s=511),a+=2):5===t[a+1]&&(s=e=255&t[a+=2]):100===e?(n=this._terminal.defAttr>>9&511,s=511&this._terminal.defAttr):this._terminal.error("Unknown SGR attribute: %d.",e);this._terminal.curAttr=r<<18|n<<9|s}else this._terminal.curAttr=this._terminal.defAttr},t.prototype.deviceStatus=function(t){if(this._terminal.prefix){if("?"===this._terminal.prefix)switch(t[0]){case 6:this._terminal.send(r.C0.ESC+"[?"+(this._terminal.buffer.y+1)+";"+(this._terminal.buffer.x+1)+"R")}}else switch(t[0]){case 5:this._terminal.send(r.C0.ESC+"[0n");break;case 6:this._terminal.send(r.C0.ESC+"["+(this._terminal.buffer.y+1)+";"+(this._terminal.buffer.x+1)+"R")}},t.prototype.softReset=function(t){this._terminal.cursorHidden=!1,this._terminal.insertMode=!1,this._terminal.originMode=!1,this._terminal.wraparoundMode=!0,this._terminal.applicationKeypad=!1,this._terminal.viewport.syncScrollArea(),this._terminal.applicationCursor=!1,this._terminal.buffer.scrollTop=0,this._terminal.buffer.scrollBottom=this._terminal.rows-1,this._terminal.curAttr=this._terminal.defAttr,this._terminal.buffer.x=this._terminal.buffer.y=0,this._terminal.charset=null,this._terminal.glevel=0,this._terminal.charsets=[null]},t.prototype.setCursorStyle=function(t){var e=t[0]<1?1:t[0];switch(e){case 1:case 2:this._terminal.setOption("cursorStyle","block");break;case 3:case 4:this._terminal.setOption("cursorStyle","underline");break;case 5:case 6:this._terminal.setOption("cursorStyle","bar")}var i=e%2==1;this._terminal.setOption("cursorBlink",i)},t.prototype.setScrollRegion=function(t){this._terminal.prefix||(this._terminal.buffer.scrollTop=(t[0]||1)-1,this._terminal.buffer.scrollBottom=(t[1]&&t[1]<=this._terminal.rows?t[1]:this._terminal.rows)-1,this._terminal.buffer.x=0,this._terminal.buffer.y=0)},t.prototype.saveCursor=function(t){this._terminal.buffer.savedX=this._terminal.buffer.x,this._terminal.buffer.savedY=this._terminal.buffer.y},t.prototype.restoreCursor=function(t){this._terminal.buffer.x=this._terminal.buffer.savedX||0,this._terminal.buffer.y=this._terminal.buffer.savedY||0},t}();i.InputHandler=l},{"./Buffer":1,"./CharWidth":3,"./Charsets":4,"./EscapeSequences":6,"./renderer/Types":27}],9:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=t("./Types"),o=t("./input/MouseZoneManager"),a=t("./EventEmitter"),l=new RegExp("(?:^|[^\\da-z\\.-]+)((https?:\\/\\/)((([\\da-z\\.-]+)\\.([a-z\\.]{2,6}))|((\\d{1,3}\\.){3}\\d{1,3})|(localhost))(:\\d{1,5})?(\\/[\\/\\w\\.\\-%~]*)*(\\?[0-9\\w\\[\\]\\(\\)\\/\\?\\!#@$%&'*+,:;~\\=\\.\\-]*)?(#[0-9\\w\\[\\]\\(\\)\\/\\?\\!#@$%&'*+,:;~\\=\\.\\-]*)?)($|[^\\/\\w\\.\\-%]+)"),c=0,h=function(t){function e(e){var i=t.call(this)||this;return i._terminal=e,i._linkMatchers=[],i._nextLinkMatcherId=c,i._rowsToLinkify={start:null,end:null},i.registerLinkMatcher(l,null,{matchIndex:1}),i}return n(e,t),e.prototype.attachToDom=function(t){this._mouseZoneManager=t},e.prototype.linkifyRows=function(t,i){var r=this;this._mouseZoneManager&&(this._rowsToLinkify.start?(this._rowsToLinkify.start=this._rowsToLinkify.starti?this._rowsToLinkify.end:i):(this._rowsToLinkify.start=t,this._rowsToLinkify.end=i),this._mouseZoneManager.clearAll(t,i),this._rowsTimeoutId&&clearTimeout(this._rowsTimeoutId),this._rowsTimeoutId=setTimeout(function(){return r._linkifyRows()},e.TIME_BEFORE_LINKIFY))},e.prototype._linkifyRows=function(){this._rowsTimeoutId=null;for(var t=this._rowsToLinkify.start;t<=this._rowsToLinkify.end;t++)this._linkifyRow(t);this._rowsToLinkify.start=null,this._rowsToLinkify.end=null},e.prototype.setHypertextLinkHandler=function(t){this._linkMatchers[c].handler=t},e.prototype.setHypertextValidationCallback=function(t){this._linkMatchers[c].validationCallback=t},e.prototype.registerLinkMatcher=function(t,e,i){if(void 0===i&&(i={}),this._nextLinkMatcherId!==c&&!e)throw new Error("handler must be defined");var r={id:this._nextLinkMatcherId++,regex:t,handler:e,matchIndex:i.matchIndex,validationCallback:i.validationCallback,hoverTooltipCallback:i.tooltipCallback,hoverLeaveCallback:i.leaveCallback,priority:i.priority||0};return this._addLinkMatcherToList(r),r.id},e.prototype._addLinkMatcherToList=function(t){if(0!==this._linkMatchers.length){for(var e=this._linkMatchers.length-1;e>=0;e--)if(t.priority<=this._linkMatchers[e].priority)return void this._linkMatchers.splice(e+1,0,t);this._linkMatchers.splice(0,0,t)}else this._linkMatchers.push(t)},e.prototype.deregisterLinkMatcher=function(t){for(var e=1;e=this._terminal.buffer.lines.length))for(var i=this._terminal.buffer.translateBufferLineToString(e,!1),r=0;r0&&this._doLinkifyRow(t,c,i,r+l)}},e.prototype._addLink=function(t,e,i,r){var n=this;this._mouseZoneManager.add(new o.MouseZone(t+1,t+1+i.length,e+1,function(t){if(r.handler)return r.handler(t,i);window.open(i,"_blank")},function(r){n.emit(s.LinkHoverEventTypes.HOVER,{x:t,y:e,length:i.length}),n._terminal.element.style.cursor="pointer"},function(o){n.emit(s.LinkHoverEventTypes.TOOLTIP,{x:t,y:e,length:i.length}),r.hoverTooltipCallback&&r.hoverTooltipCallback(o,i)},function(){n.emit(s.LinkHoverEventTypes.LEAVE,{x:t,y:e,length:i.length}),n._terminal.element.style.cursor="",r.hoverLeaveCallback&&r.hoverLeaveCallback()}))},e.TIME_BEFORE_LINKIFY=200,e}(a.EventEmitter);i.Linkifier=h},{"./EventEmitter":7,"./Types":14,"./input/MouseZoneManager":17}],10:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=t("./EscapeSequences"),n=t("./Charsets"),s={};s[r.C0.BEL]=function(t,e){return e.bell()},s[r.C0.LF]=function(t,e){return e.lineFeed()},s[r.C0.VT]=s[r.C0.LF],s[r.C0.FF]=s[r.C0.LF],s[r.C0.CR]=function(t,e){return e.carriageReturn()},s[r.C0.BS]=function(t,e){return e.backspace()},s[r.C0.HT]=function(t,e){return e.tab()},s[r.C0.SO]=function(t,e){return e.shiftOut()},s[r.C0.SI]=function(t,e){return e.shiftIn()},s[r.C0.ESC]=function(t,e){return t.setState(l.ESCAPED)};var o={"[":function(t,e){e.params=[],e.currentParam=0,t.setState(l.CSI_PARAM)},"]":function(t,e){e.params=[],e.currentParam=0,t.setState(l.OSC)},P:function(t,e){e.params=[],e.currentParam=0,t.setState(l.DCS)},_:function(t,e){t.setState(l.IGNORE)},"^":function(t,e){t.setState(l.IGNORE)},c:function(t,e){e.reset()},E:function(t,e){e.buffer.x=0,e.index(),t.setState(l.NORMAL)},D:function(t,e){e.index(),t.setState(l.NORMAL)},M:function(t,e){e.reverseIndex(),t.setState(l.NORMAL)},"%":function(t,e){e.setgLevel(0),e.setgCharset(0,n.DEFAULT_CHARSET),t.setState(l.NORMAL),t.skipNextChar()}};o[r.C0.CAN]=function(t){return t.setState(l.NORMAL)};var a={"?":function(t){return t.setPrefix("?")},">":function(t){return t.setPrefix(">")},"!":function(t){return t.setPrefix("!")},0:function(t){return t.setParam(10*t.getParam())},1:function(t){return t.setParam(10*t.getParam()+1)},2:function(t){return t.setParam(10*t.getParam()+2)},3:function(t){return t.setParam(10*t.getParam()+3)},4:function(t){return t.setParam(10*t.getParam()+4)},5:function(t){return t.setParam(10*t.getParam()+5)},6:function(t){return t.setParam(10*t.getParam()+6)},7:function(t){return t.setParam(10*t.getParam()+7)},8:function(t){return t.setParam(10*t.getParam()+8)},9:function(t){return t.setParam(10*t.getParam()+9)},$:function(t){return t.setPostfix("$")},'"':function(t){return t.setPostfix('"')}," ":function(t){return t.setPostfix(" ")},"'":function(t){return t.setPostfix("'")},";":function(t){return t.finalizeParam()}};a[r.C0.CAN]=function(t){return t.setState(l.NORMAL)};var l,c={};c["@"]=function(t,e,i){return t.insertChars(e)},c.A=function(t,e,i){return t.cursorUp(e)},c.B=function(t,e,i){return t.cursorDown(e)},c.C=function(t,e,i){return t.cursorForward(e)},c.D=function(t,e,i){return t.cursorBackward(e)},c.E=function(t,e,i){return t.cursorNextLine(e)},c.F=function(t,e,i){return t.cursorPrecedingLine(e)},c.G=function(t,e,i){return t.cursorCharAbsolute(e)},c.H=function(t,e,i){return t.cursorPosition(e)},c.I=function(t,e,i){return t.cursorForwardTab(e)},c.J=function(t,e,i){return t.eraseInDisplay(e)},c.K=function(t,e,i){return t.eraseInLine(e)},c.L=function(t,e,i){return t.insertLines(e)},c.M=function(t,e,i){return t.deleteLines(e)},c.P=function(t,e,i){return t.deleteChars(e)},c.S=function(t,e,i){return t.scrollUp(e)},c.T=function(t,e,i){e.length<2&&!i&&t.scrollDown(e)},c.X=function(t,e,i){return t.eraseChars(e)},c.Z=function(t,e,i){return t.cursorBackwardTab(e)},c["`"]=function(t,e,i){return t.charPosAbsolute(e)},c.a=function(t,e,i){return t.HPositionRelative(e)},c.b=function(t,e,i){return t.repeatPrecedingCharacter(e)},c.c=function(t,e,i){return t.sendDeviceAttributes(e)},c.d=function(t,e,i){return t.linePosAbsolute(e)},c.e=function(t,e,i){return t.VPositionRelative(e)},c.f=function(t,e,i){return t.HVPosition(e)},c.g=function(t,e,i){return t.tabClear(e)},c.h=function(t,e,i){return t.setMode(e)},c.l=function(t,e,i){return t.resetMode(e)},c.m=function(t,e,i){return t.charAttributes(e)},c.n=function(t,e,i){return t.deviceStatus(e)},c.p=function(t,e,i){switch(i){case"!":t.softReset(e)}},c.q=function(t,e,i,r){" "===r&&t.setCursorStyle(e)},c.r=function(t,e){return t.setScrollRegion(e)},c.s=function(t,e){return t.saveCursor(e)},c.u=function(t,e){return t.restoreCursor(e)},c[r.C0.CAN]=function(t,e,i,r,n){return n.setState(l.NORMAL)},function(t){t[t.NORMAL=0]="NORMAL",t[t.ESCAPED=1]="ESCAPED",t[t.CSI_PARAM=2]="CSI_PARAM",t[t.CSI=3]="CSI",t[t.OSC=4]="OSC",t[t.CHARSET=5]="CHARSET",t[t.DCS=6]="DCS",t[t.IGNORE=7]="IGNORE"}(l=i.ParserState||(i.ParserState={}));var h=function(){function t(t,e){this._inputHandler=t,this._terminal=e,this._state=l.NORMAL}return t.prototype.parse=function(t){var e,i,h,u,f=t.length,p=this._terminal.buffer.x,d=this._terminal.buffer.y;for(this._terminal.debug&&this._terminal.log("data: "+t),this._position=0,this._terminal.surrogate_high&&(t=this._terminal.surrogate_high+t,this._terminal.surrogate_high="");this._position":this._terminal.log("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._state=l.NORMAL;break;default:this._state=l.NORMAL,this._terminal.error("Unknown ESC control: %s.",i)}break;case l.CHARSET:i in n.CHARSETS?(e=n.CHARSETS[i],"/"===i&&this.skipNextChar()):e=n.DEFAULT_CHARSET,this._terminal.setgCharset(this._terminal.gcharset,e),this._terminal.gcharset=null,this._state=l.NORMAL;break;case l.OSC:if(i===r.C0.ESC||i===r.C0.BEL){switch(i===r.C0.ESC&&this._position++,this._terminal.params.push(this._terminal.currentParam),this._terminal.params[0]){case 0:case 1:case 2:this._terminal.params[1]&&(this._terminal.title=this._terminal.params[1],this._terminal.handleTitle(this._terminal.title))}this._terminal.params=[],this._terminal.currentParam=0,this._state=l.NORMAL}else this._terminal.params.length?this._terminal.currentParam+=i:i>="0"&&i<="9"?this._terminal.currentParam=10*this._terminal.currentParam+i.charCodeAt(0)-48:";"===i&&(this._terminal.params.push(this._terminal.currentParam),this._terminal.currentParam="");break;case l.CSI_PARAM:if(i in a){a[i](this);break}this.finalizeParam(),this._state=l.CSI;case l.CSI:i in c?(this._terminal.debug&&this._terminal.log("CSI "+(this._terminal.prefix?this._terminal.prefix:"")+" "+(this._terminal.params?this._terminal.params.join(";"):"")+" "+(this._terminal.postfix?this._terminal.postfix:"")+" "+i),c[i](this._inputHandler,this._terminal.params,this._terminal.prefix,this._terminal.postfix,this)):this._terminal.error("Unknown CSI code: %s.",i),this._state=l.NORMAL,this._terminal.prefix="",this._terminal.postfix="";break;case l.DCS:if(i===r.C0.ESC||i===r.C0.BEL){i===r.C0.ESC&&this._position++;var m=void 0,_=void 0;switch(this._terminal.prefix){case"":break;case"$q":switch(_=!1,m=this._terminal.currentParam){case'"q':m='0"q';break;case'"p':m='61"p';break;case"r":m=this._terminal.buffer.scrollTop+1+";"+(this._terminal.buffer.scrollBottom+1)+"r";break;case"m":m="0m";break;default:this._terminal.error("Unknown DCS Pt: %s.",m),m=""}this._terminal.send(r.C0.ESC+"P"+ +_+"$r"+m+r.C0.ESC+"\\");break;case"+p":break;case"+q":m=this._terminal.currentParam,_=!1,this._terminal.send(r.C0.ESC+"P"+ +_+"+r"+m+r.C0.ESC+"\\");break;default:this._terminal.error("Unknown DCS prefix: %s.",this._terminal.prefix)}this._terminal.currentParam=0,this._terminal.prefix="",this._state=l.NORMAL}else this._terminal.currentParam?this._terminal.currentParam+=i:this._terminal.prefix||"$"===i||"+"===i?2===this._terminal.prefix.length?this._terminal.currentParam=i:this._terminal.prefix+=i:this._terminal.currentParam=i;break;case l.IGNORE:i!==r.C0.ESC&&i!==r.C0.BEL||(i===r.C0.ESC&&this._position++,this._state=l.NORMAL)}}return this._terminal.buffer.x===p&&this._terminal.buffer.y===d||this._terminal.emit("cursormove"),this._state},t.prototype.setState=function(t){this._state=t},t.prototype.setPrefix=function(t){this._terminal.prefix=t},t.prototype.setPostfix=function(t){this._terminal.postfix=t},t.prototype.setParam=function(t){this._terminal.currentParam=t},t.prototype.getParam=function(){return this._terminal.currentParam},t.prototype.finalizeParam=function(){this._terminal.params.push(this._terminal.currentParam),this._terminal.currentParam=0},t.prototype.skipNextChar=function(){this._position++},t}();i.Parser=h},{"./Charsets":4,"./EscapeSequences":6}],11:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s,o=t("./utils/MouseHelper"),a=t("./utils/Browser"),l=t("./EventEmitter"),c=t("./SelectionModel"),h=t("./Buffer"),u=String.fromCharCode(160),f=new RegExp(u,"g");!function(t){t[t.NORMAL=0]="NORMAL",t[t.WORD=1]="WORD",t[t.LINE=2]="LINE"}(s||(s={}));var p=function(t){function e(e,i,r){var n=t.call(this)||this;return n._terminal=e,n._buffer=i,n._charMeasure=r,n._enabled=!0,n._initListeners(),n.enable(),n._model=new c.SelectionModel(e),n._activeSelectionMode=s.NORMAL,n}return n(e,t),e.prototype._initListeners=function(){var t=this;this._mouseMoveListener=function(e){return t._onMouseMove(e)},this._mouseUpListener=function(e){return t._onMouseUp(e)},this._buffer.lines.on("trim",function(e){return t._onTrim(e)})},e.prototype.disable=function(){this.clearSelection(),this._enabled=!1},e.prototype.enable=function(){this._enabled=!0},e.prototype.setBuffer=function(t){this._buffer=t,this.clearSelection()},Object.defineProperty(e.prototype,"selectionStart",{get:function(){return this._model.finalSelectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectionEnd",{get:function(){return this._model.finalSelectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasSelection",{get:function(){var t=this._model.finalSelectionStart,e=this._model.finalSelectionEnd;return!(!t||!e)&&(t[0]!==e[0]||t[1]!==e[1])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectionText",{get:function(){var t=this._model.finalSelectionStart,e=this._model.finalSelectionEnd;if(!t||!e)return"";var i=t[1]===e[1]?e[0]:null,r=[];r.push(this._buffer.translateBufferLineToString(t[1],!0,t[0],i));for(var n=t[1]+1;n<=e[1]-1;n++){var s=this._buffer.lines.get(n),o=this._buffer.translateBufferLineToString(n,!0);s.isWrapped?r[r.length-1]+=o:r.push(o)}if(t[1]!==e[1]){s=this._buffer.lines.get(e[1]),o=this._buffer.translateBufferLineToString(e[1],!0,0,e[0]);s.isWrapped?r[r.length-1]+=o:r.push(o)}return r.map(function(t){return t.replace(f," ")}).join(a.isMSWindows?"\r\n":"\n")},enumerable:!0,configurable:!0}),e.prototype.clearSelection=function(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh()},e.prototype.refresh=function(t){var e=this;(this._refreshAnimationFrame||(this._refreshAnimationFrame=window.requestAnimationFrame(function(){return e._refresh()})),a.isLinux&&t)&&(this.selectionText.length&&this.emit("newselection",this.selectionText))},e.prototype._refresh=function(){this._refreshAnimationFrame=null,this.emit("refresh",{start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd})},e.prototype.selectAll=function(){this._model.isSelectAllActive=!0,this.refresh(),this._terminal.emit("selection")},e.prototype._onTrim=function(t){this._model.onTrim(t)&&this.refresh()},e.prototype._getMouseBufferCoords=function(t){var e=this._terminal.mouseHelper.getCoords(t,this._terminal.element,this._charMeasure,this._terminal.options.lineHeight,this._terminal.cols,this._terminal.rows,!0);return e?(e[0]--,e[1]--,e[1]+=this._terminal.buffer.ydisp,e):null},e.prototype._getMouseEventScrollAmount=function(t){var e=o.MouseHelper.getCoordsRelativeToElement(t,this._terminal.element)[1],i=this._terminal.rows*Math.ceil(this._charMeasure.height*this._terminal.options.lineHeight);return e>=0&&e<=i?0:(e>i&&(e-=i),e=Math.min(Math.max(e,-50),50),(e/=50)/Math.abs(e)+Math.round(14*e))},e.prototype.shouldForceSelection=function(t){return a.isMac?t.altKey:t.shiftKey},e.prototype.onMouseDown=function(t){if((2!==t.button||!this.hasSelection)&&0===t.button){if(!this._enabled){if(!this.shouldForceSelection(t))return;t.stopPropagation()}t.preventDefault(),this._dragScrollAmount=0,this._enabled&&t.shiftKey?this._onIncrementalClick(t):1===t.detail?this._onSingleClick(t):2===t.detail?this._onDoubleClick(t):3===t.detail&&this._onTripleClick(t),this._addMouseDownListeners(),this.refresh(!0)}},e.prototype._addMouseDownListeners=function(){var t=this;this._terminal.element.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._terminal.element.ownerDocument.addEventListener("mouseup",this._mouseUpListener),this._dragScrollIntervalTimer=setInterval(function(){return t._dragScroll()},50)},e.prototype._removeMouseDownListeners=function(){this._terminal.element.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._terminal.element.ownerDocument.removeEventListener("mouseup",this._mouseUpListener),clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=null},e.prototype._onIncrementalClick=function(t){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(t))},e.prototype._onSingleClick=function(t){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=s.NORMAL,this._model.selectionStart=this._getMouseBufferCoords(t),this._model.selectionStart){this._model.selectionEnd=null;var e=this._buffer.lines.get(this._model.selectionStart[1]);if(e)if(!(e.length>=this._model.selectionStart[0]))0===e[this._model.selectionStart[0]][h.CHAR_DATA_WIDTH_INDEX]&&this._model.selectionStart[0]++}},e.prototype._onDoubleClick=function(t){var e=this._getMouseBufferCoords(t);e&&(this._activeSelectionMode=s.WORD,this._selectWordAt(e))},e.prototype._onTripleClick=function(t){var e=this._getMouseBufferCoords(t);e&&(this._activeSelectionMode=s.LINE,this._selectLineAt(e[1]))},e.prototype._onMouseMove=function(t){t.stopImmediatePropagation();var e=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(t),this._model.selectionEnd){if(this._activeSelectionMode===s.LINE?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._terminal.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]0?this._model.selectionEnd=[this._terminal.cols-1,this._terminal.buffer.ydisp+this._terminal.rows]:this._model.selectionEnd=[0,this._terminal.buffer.ydisp],this.refresh())},e.prototype._onMouseUp=function(t){this._removeMouseDownListeners(),this.hasSelection&&this._terminal.emit("selection")},e.prototype._convertViewportColToCharacterIndex=function(t,e){for(var i=e[0],r=0;e[0]>=r;r++){var n=t[r];0===n[h.CHAR_DATA_WIDTH_INDEX]?i--:n[h.CHAR_DATA_CHAR_INDEX].length>1&&e[0]!==r&&(i+=n[h.CHAR_DATA_CHAR_INDEX].length-1)}return i},e.prototype.setSelection=function(t,e,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[t,e],this._model.selectionStartLength=i,this.refresh()},e.prototype._getWordAt=function(t){var e=this._buffer.lines.get(t[1]);if(!e)return null;var i=this._buffer.translateBufferLineToString(t[1],!1),r=this._convertViewportColToCharacterIndex(e,t),n=r,s=t[0]-r,o=0,a=0,l=0,c=0;if(" "===i.charAt(r)){for(;r>0&&" "===i.charAt(r-1);)r--;for(;n1&&(c+=e[f][h.CHAR_DATA_CHAR_INDEX].length-1,n+=e[f][h.CHAR_DATA_CHAR_INDEX].length-1);u>0&&r>0&&!this._isCharWordSeparator(e[u-1]);){0===(p=e[u-1])[h.CHAR_DATA_WIDTH_INDEX]?(o++,u--):p[h.CHAR_DATA_CHAR_INDEX].length>1&&(l+=p[h.CHAR_DATA_CHAR_INDEX].length-1,r-=p[h.CHAR_DATA_CHAR_INDEX].length-1),r--,u--}for(;f1&&(c+=p[h.CHAR_DATA_CHAR_INDEX].length-1,n+=p[h.CHAR_DATA_CHAR_INDEX].length-1),n++,f++}}return n++,{start:r+s-o+l,length:Math.min(this._terminal.cols,n-r+o+a-l-c)}},e.prototype._selectWordAt=function(t){var e=this._getWordAt(t);e&&(this._model.selectionStart=[e.start,t[1]],this._model.selectionStartLength=e.length)},e.prototype._selectToWordAt=function(t){var e=this._getWordAt(t);e&&(this._model.selectionEnd=[this._model.areSelectionValuesReversed()?e.start:e.start+e.length,t[1]])},e.prototype._isCharWordSeparator=function(t){return 0!==t[h.CHAR_DATA_WIDTH_INDEX]&&" ()[]{}'\"".indexOf(t[h.CHAR_DATA_CHAR_INDEX])>=0},e.prototype._selectLineAt=function(t){this._model.selectionStart=[0,t],this._model.selectionStartLength=this._terminal.cols},e}(l.EventEmitter);i.SelectionManager=p},{"./Buffer":1,"./EventEmitter":7,"./SelectionModel":12,"./utils/Browser":28,"./utils/MouseHelper":32}],12:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(t){this._terminal=t,this.clearSelection()}return t.prototype.clearSelection=function(){this.selectionStart=null,this.selectionEnd=null,this.isSelectAllActive=!1,this.selectionStartLength=0},Object.defineProperty(t.prototype,"finalSelectionStart",{get:function(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"finalSelectionEnd",{get:function(){return this.isSelectAllActive?[this._terminal.cols,this._terminal.buffer.ybase+this._terminal.rows-1]:this.selectionStart?!this.selectionEnd||this.areSelectionValuesReversed()?[this.selectionStart[0]+this.selectionStartLength,this.selectionStart[1]]:this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]?[Math.max(this.selectionStart[0]+this.selectionStartLength,this.selectionEnd[0]),this.selectionEnd[1]]:this.selectionEnd:null},enumerable:!0,configurable:!0}),t.prototype.areSelectionValuesReversed=function(){var t=this.selectionStart,e=this.selectionEnd;return!(!t||!e)&&(t[1]>e[1]||t[1]===e[1]&&t[0]>e[0])},t.prototype.onTrim=function(t){return this.selectionStart&&(this.selectionStart[1]-=t),this.selectionEnd&&(this.selectionEnd[1]-=t),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)},t}();i.SelectionModel=r},{}],13:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=t("./BufferSet"),o=t("./Buffer"),a=t("./CompositionHelper"),l=t("./EventEmitter"),c=t("./Viewport"),h=t("./handlers/Clipboard"),u=t("./EscapeSequences"),f=t("./InputHandler"),p=t("./Parser"),d=t("./renderer/Renderer"),m=t("./Linkifier"),_=t("./SelectionManager"),y=t("./utils/CharMeasure"),g=t("./utils/Browser"),v=t("./utils/MouseHelper"),b=t("./utils/Sounds"),C=t("./renderer/ColorManager"),w=t("./input/MouseZoneManager"),x=t("./renderer/CharAtlas"),k="undefined"!=typeof window?window.document:null,A={cols:80,rows:24,convertEol:!1,termName:"xterm",cursorBlink:!1,cursorStyle:"block",bellSound:b.BellSound,bellStyle:"none",enableBold:!0,fontFamily:"courier-new, courier, monospace",fontSize:15,lineHeight:1,letterSpacing:0,scrollback:1e3,screenKeys:!1,debug:!1,cancelEvents:!1,disableStdin:!1,useFlowControl:!1,tabStopWidth:8,theme:null},S=function(t){function e(e){void 0===e&&(e={});var i=t.call(this)||this;return i.browser=g,i.options=e,i.setup(),i}return n(e,t),e.prototype.setup=function(){var t=this;Object.keys(A).forEach(function(e){null==t.options[e]&&(t.options[e]=A[e]),t[e]=t.options[e]}),this.parent=k?k.body:null,this.cols=this.options.cols,this.rows=this.options.rows,this.options.handler&&this.on("data",this.options.handler),this.cursorState=0,this.cursorHidden=!1,this.sendDataQueue="",this.customKeyEventHandler=null,this.applicationKeypad=!1,this.applicationCursor=!1,this.originMode=!1,this.insertMode=!1,this.wraparoundMode=!0,this.bracketedPasteMode=!1,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.readable=!0,this.writable=!0,this.defAttr=131840,this.curAttr=131840,this.params=[],this.currentParam=0,this.prefix="",this.postfix="",this.writeBuffer=[],this.writeInProgress=!1,this.xoffSentToCatchUp=!1,this.writeStopped=!1,this.surrogate_high="",this.userScrolling=!1,this.inputHandler=new f.InputHandler(this),this.parser=new p.Parser(this.inputHandler,this),this.renderer=this.renderer||null,this.selectionManager=this.selectionManager||null,this.linkifier=this.linkifier||new m.Linkifier(this),this._mouseZoneManager=this._mouseZoneManager||null,this.buffers=new s.BufferSet(this),this.buffer=this.buffers.active,this.buffers.on("activate",function(e){t.buffer=e}),this.selectionManager&&this.selectionManager.setBuffer(this.buffer)},e.prototype.eraseAttr=function(){return-512&this.defAttr|511&this.curAttr},e.prototype.focus=function(){this.textarea&&this.textarea.focus()},Object.defineProperty(e.prototype,"isFocused",{get:function(){return k.activeElement===this.textarea},enumerable:!0,configurable:!0}),e.prototype.getOption=function(t){if(!(t in A))throw new Error('No option with key "'+t+'"');return void 0!==this.options[t]?this.options[t]:this[t]},e.prototype.setOption=function(t,e){if(!(t in A))throw new Error('No option with key "'+t+'"');switch(t){case"bellStyle":e||(e="none");break;case"cursorStyle":e||(e="block");break;case"lineHeight":if(e<1)return void console.warn(t+" cannot be less than 1, value: "+e);case"tabStopWidth":if(e<1)return void console.warn(t+" cannot be less than 1, value: "+e);break;case"theme":if(this.renderer)return void this._setTheme(e);break;case"scrollback":if((e=Math.min(e,o.MAX_BUFFER_SIZE))<0)return void console.warn(t+" cannot be less than 0, value: "+e);if(this.options[t]!==e){var i=this.rows+e;if(this.buffer.lines.length>i){var r=this.buffer.lines.length-i,n=this.buffer.ydisp-r<0;this.buffer.lines.trimStart(r),this.buffer.ybase=Math.max(this.buffer.ybase-r,0),this.buffer.ydisp=Math.max(this.buffer.ydisp-r,0),n&&this.refresh(0,this.rows-1)}}}switch(this[t]=e,this.options[t]=e,t){case"fontFamily":case"fontSize":this.renderer.clear(),this.charMeasure.measure(this.options);break;case"enableBold":case"letterSpacing":case"lineHeight":this.renderer.clear(),this.renderer.onResize(this.cols,this.rows,!1),this.refresh(0,this.rows-1);case"scrollback":this.buffers.resize(this.cols,this.rows),this.viewport.syncScrollArea();break;case"tabStopWidth":this.buffers.setupTabStops();break;case"bellSound":case"bellStyle":this.syncBellSound()}this.renderer&&this.renderer.onOptionsChanged()},e.prototype._onTextAreaFocus=function(){this.sendFocus&&this.send(u.C0.ESC+"[I"),this.element.classList.add("focus"),this.showCursor(),this.emit("focus")},e.prototype.blur=function(){return this.textarea.blur()},e.prototype._onTextAreaBlur=function(){this.refresh(this.buffer.y,this.buffer.y),this.sendFocus&&this.send(u.C0.ESC+"[O"),this.element.classList.remove("focus"),this.emit("blur")},e.prototype.initGlobal=function(){var t=this;this.bindKeys(),E(this.element,"copy",function(e){t.hasSelection()&&h.copyHandler(e,t,t.selectionManager)});var e=function(e){return h.pasteHandler(e,t)};E(this.textarea,"paste",e),E(this.element,"paste",e),g.isFirefox?E(this.element,"mousedown",function(e){2===e.button&&h.rightClickHandler(e,t.textarea,t.selectionManager)}):E(this.element,"contextmenu",function(e){h.rightClickHandler(e,t.textarea,t.selectionManager)}),g.isLinux&&E(this.element,"auxclick",function(e){1===e.button&&h.moveTextAreaUnderMouseCursor(e,t.textarea)})},e.prototype.bindKeys=function(){var t=this,e=this;E(this.element,"keydown",function(t){k.activeElement===this&&e._keyDown(t)},!0),E(this.element,"keypress",function(t){k.activeElement===this&&e._keyPress(t)},!0),E(this.element,"keyup",function(e){(function(t){return 16===t.keyCode||17===t.keyCode||18===t.keyCode})(e)||t.focus()},!0),E(this.textarea,"keydown",function(e){t._keyDown(e)},!0),E(this.textarea,"keypress",function(e){t._keyPress(e),t.textarea.value=""},!0),E(this.textarea,"compositionstart",function(){return t.compositionHelper.compositionstart()}),E(this.textarea,"compositionupdate",function(e){return t.compositionHelper.compositionupdate(e)}),E(this.textarea,"compositionend",function(){return t.compositionHelper.compositionend()}),this.on("refresh",function(){return t.compositionHelper.updateCompositionElements()}),this.on("refresh",function(e){return t.queueLinkification(e.start,e.end)})},e.prototype.open=function(t){var e=this;if(this.parent=t||this.parent,!this.parent)throw new Error("Terminal requires a parent element.");this.context=this.parent.ownerDocument.defaultView,this.document=this.parent.ownerDocument,this.body=this.document.body,x.initialize(this.document),this.element=this.document.createElement("div"),this.element.classList.add("terminal"),this.element.classList.add("xterm"),this.element.setAttribute("tabindex","0"),this.parent.appendChild(this.element);var i=k.createDocumentFragment();this.viewportElement=k.createElement("div"),this.viewportElement.classList.add("xterm-viewport"),i.appendChild(this.viewportElement),this.viewportScrollArea=k.createElement("div"),this.viewportScrollArea.classList.add("xterm-scroll-area"),this.viewportElement.appendChild(this.viewportScrollArea),this._mouseZoneManager=new w.MouseZoneManager(this),this.on("scroll",function(){return e._mouseZoneManager.clearAll()}),this.linkifier.attachToDom(this._mouseZoneManager),this.helperContainer=k.createElement("div"),this.helperContainer.classList.add("xterm-helpers"),i.appendChild(this.helperContainer),this.textarea=k.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this.textarea.addEventListener("focus",function(){return e._onTextAreaFocus()}),this.textarea.addEventListener("blur",function(){return e._onTextAreaBlur()}),this.helperContainer.appendChild(this.textarea),this.compositionView=k.createElement("div"),this.compositionView.classList.add("composition-view"),this.compositionHelper=new a.CompositionHelper(this.textarea,this.compositionView,this),this.helperContainer.appendChild(this.compositionView),this.charSizeStyleElement=k.createElement("style"),this.helperContainer.appendChild(this.charSizeStyleElement),this.charMeasure=new y.CharMeasure(k,this.helperContainer),this.syncBellSound(),this.element.appendChild(i),this.renderer=new d.Renderer(this,this.options.theme),this.options.theme=null,this.viewport=new c.Viewport(this,this.viewportElement,this.viewportScrollArea,this.charMeasure),this.viewport.onThemeChanged(this.renderer.colorManager.colors),this.on("cursormove",function(){return e.renderer.onCursorMove()}),this.on("resize",function(){return e.renderer.onResize(e.cols,e.rows,!1)}),this.on("blur",function(){return e.renderer.onBlur()}),this.on("focus",function(){return e.renderer.onFocus()}),window.addEventListener("resize",function(){return e.renderer.onWindowResize(window.devicePixelRatio)}),this.charMeasure.on("charsizechanged",function(){return e.renderer.onResize(e.cols,e.rows,!0)}),this.renderer.on("resize",function(t){return e.viewport.syncScrollArea()}),this.selectionManager=new _.SelectionManager(this,this.buffer,this.charMeasure),this.element.addEventListener("mousedown",function(t){return e.selectionManager.onMouseDown(t)}),this.selectionManager.on("refresh",function(t){return e.renderer.onSelectionChanged(t.start,t.end)}),this.selectionManager.on("newselection",function(t){e.textarea.value=t,e.textarea.focus(),e.textarea.select()}),this.on("scroll",function(){e.viewport.syncScrollArea(),e.selectionManager.refresh()}),this.viewportElement.addEventListener("scroll",function(){return e.selectionManager.refresh()}),this.mouseHelper=new v.MouseHelper(this.renderer),this.charMeasure.measure(this.options),this.refresh(0,this.rows-1),this.initGlobal(),this.bindMouse()},e.prototype._setTheme=function(t){var e=this.renderer.setTheme(t);this.viewport&&this.viewport.onThemeChanged(e)},e.applyAddon=function(t){t.apply(e)},e.prototype.bindMouse=function(){var t=this,e=this.element,i=this,r=32;function n(t){var e,n;if(e=function(t){var e,r,n,s,o;switch(t.overrideType||t.type){case"mousedown":e=null!=t.button?+t.button:null!=t.which?t.which-1:null,g.isMSIE&&(e=1===e?0:4===e?1:e);break;case"mouseup":e=3;break;case"DOMMouseScroll":e=t.detail<0?64:65;break;case"wheel":e=t.wheelDeltaY>0?64:65}r=t.shiftKey?4:0,n=t.metaKey?8:0,s=t.ctrlKey?16:0,o=r|n|s,i.vt200Mouse?o&=s:i.normalMouse||(o=0);return e=32+(o<<2)+e}(t),n=i.mouseHelper.getRawByteCoords(t,i.element,i.charMeasure,i.options.lineHeight,i.cols,i.rows))switch(a(e,n),t.overrideType||t.type){case"mousedown":r=e;break;case"mouseup":r=32}}function s(t){var e=r,n=i.mouseHelper.getRawByteCoords(t,i.element,i.charMeasure,i.options.lineHeight,i.cols,i.rows);n&&a(e+=32,n)}function o(t,e){if(i.utfMouse){if(2047===e)return void t.push(0);e<127?t.push(e):(e>2047&&(e=2047),t.push(192|e>>6),t.push(128|63&e))}else{if(255===e)return void t.push(0);e>127&&(e=127),t.push(e)}}function a(t,e){if(i.vt300Mouse){t&=3,e.x-=32,e.y-=32;var r=u.C0.ESC+"[24";if(0===t)r+="1";else if(1===t)r+="3";else if(2===t)r+="5";else{if(3===t)return;r+="0"}return r+="~["+e.x+","+e.y+"]\r",void i.send(r)}if(i.decLocator)return t&=3,e.x-=32,e.y-=32,0===t?t=2:1===t?t=4:2===t?t=6:3===t&&(t=3),void i.send(u.C0.ESC+"["+t+";"+(3===t?4:0)+";"+e.y+";"+e.x+";"+e.page||"0&w");if(i.urxvtMouse)return e.x-=32,e.y-=32,e.x++,e.y++,void i.send(u.C0.ESC+"["+t+";"+e.x+";"+e.y+"M");if(i.sgrMouse)return e.x-=32,e.y-=32,void i.send(u.C0.ESC+"[<"+((3==(3&t)?-4&t:t)-32)+";"+e.x+";"+e.y+(3==(3&t)?"m":"M"));var n=[];o(n,t),o(n,e.x),o(n,e.y),i.send(u.C0.ESC+"[M"+String.fromCharCode.apply(String,n))}E(e,"mousedown",function(e){if(e.preventDefault(),t.focus(),t.mouseEvents&&!t.selectionManager.shouldForceSelection(e)){if(n(e),t.vt200Mouse)return e.overrideType="mouseup",n(e),t.cancel(e);if(t.normalMouse&&E(t.document,"mousemove",s),!t.x10Mouse){var i=function(e){return n(e),t.normalMouse&&L(t.document,"mousemove",s),L(t.document,"mouseup",i),t.cancel(e)};E(t.document,"mouseup",i)}return t.cancel(e)}}),E(e,"wheel",function(e){t.mouseEvents&&(t.x10Mouse||t.vt300Mouse||t.decLocator||(n(e),e.preventDefault()))}),E(e,"wheel",function(e){if(!t.mouseEvents)return t.viewport.onWheel(e),t.cancel(e)}),E(e,"touchstart",function(e){if(!t.mouseEvents)return t.viewport.onTouchStart(e),t.cancel(e)}),E(e,"touchmove",function(e){if(!t.mouseEvents)return t.viewport.onTouchMove(e),t.cancel(e)})},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.readable=!1,this.writable=!1,this.handler=function(){},this.write=function(){},this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)},e.prototype.refresh=function(t,e){this.renderer&&this.renderer.queueRefresh(t,e)},e.prototype.queueLinkification=function(t,e){this.linkifier&&this.linkifier.linkifyRows(t,e)},e.prototype.showCursor=function(){this.cursorState||(this.cursorState=1,this.refresh(this.buffer.y,this.buffer.y))},e.prototype.scroll=function(t){var e=this.blankLine(void 0,t),i=this.buffer.ybase+this.buffer.scrollTop,r=this.buffer.ybase+this.buffer.scrollBottom;if(0===this.buffer.scrollTop){var n=this.buffer.lines.length===this.buffer.lines.maxLength;r===this.buffer.lines.length-1?this.buffer.lines.push(e):this.buffer.lines.splice(r+1,0,e),n?this.userScrolling&&(this.buffer.ydisp=Math.max(this.buffer.ydisp-1,0)):(this.buffer.ybase++,this.userScrolling||this.buffer.ydisp++)}else{var s=r-i+1;this.buffer.lines.shiftElements(i+1,s-1,-1),this.buffer.lines.set(r,e)}this.userScrolling||(this.buffer.ydisp=this.buffer.ybase),this.updateRange(this.buffer.scrollTop),this.updateRange(this.buffer.scrollBottom),this.emit("scroll",this.buffer.ydisp)},e.prototype.scrollLines=function(t,e){if(t<0){if(0===this.buffer.ydisp)return;this.userScrolling=!0}else t+this.buffer.ydisp>=this.buffer.ybase&&(this.userScrolling=!1);var i=this.buffer.ydisp;this.buffer.ydisp=Math.max(Math.min(this.buffer.ydisp+t,this.buffer.ybase),0),i!==this.buffer.ydisp&&(e||this.emit("scroll",this.buffer.ydisp),this.refresh(0,this.rows-1))},e.prototype.scrollPages=function(t){this.scrollLines(t*(this.rows-1))},e.prototype.scrollToTop=function(){this.scrollLines(-this.buffer.ydisp)},e.prototype.scrollToBottom=function(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)},e.prototype.write=function(t){var e=this;this.writeBuffer.push(t),this.options.useFlowControl&&!this.xoffSentToCatchUp&&this.writeBuffer.length>=5&&(this.send(u.C0.DC3),this.xoffSentToCatchUp=!0),!this.writeInProgress&&this.writeBuffer.length>0&&(this.writeInProgress=!0,setTimeout(function(){e.innerWrite()}))},e.prototype.innerWrite=function(){for(var t=this,e=this.writeBuffer.splice(0,300);e.length>0;){var i=e.shift();this.xoffSentToCatchUp&&0===e.length&&0===this.writeBuffer.length&&(this.send(u.C0.DC1),this.xoffSentToCatchUp=!1),this.refreshStart=this.buffer.y,this.refreshEnd=this.buffer.y;var r=this.parser.parse(i);this.parser.setState(r),this.updateRange(this.buffer.y),this.refresh(this.refreshStart,this.refreshEnd)}this.writeBuffer.length>0?setTimeout(function(){return t.innerWrite()},0):this.writeInProgress=!1},e.prototype.writeln=function(t){this.write(t+"\r\n")},e.prototype.attachCustomKeyEventHandler=function(t){this.customKeyEventHandler=t},e.prototype.setHypertextLinkHandler=function(t){if(!this.linkifier)throw new Error("Cannot attach a hypertext link handler before Terminal.open is called");this.linkifier.setHypertextLinkHandler(t),this.refresh(0,this.rows-1)},e.prototype.setHypertextValidationCallback=function(t){if(!this.linkifier)throw new Error("Cannot attach a hypertext validation callback before Terminal.open is called");this.linkifier.setHypertextValidationCallback(t),this.refresh(0,this.rows-1)},e.prototype.registerLinkMatcher=function(t,e,i){if(this.linkifier){var r=this.linkifier.registerLinkMatcher(t,e,i);return this.refresh(0,this.rows-1),r}return 0},e.prototype.deregisterLinkMatcher=function(t){this.linkifier&&this.linkifier.deregisterLinkMatcher(t)&&this.refresh(0,this.rows-1)},e.prototype.hasSelection=function(){return!!this.selectionManager&&this.selectionManager.hasSelection},e.prototype.getSelection=function(){return this.selectionManager?this.selectionManager.selectionText:""},e.prototype.clearSelection=function(){this.selectionManager&&this.selectionManager.clearSelection()},e.prototype.selectAll=function(){this.selectionManager&&this.selectionManager.selectAll()},e.prototype._keyDown=function(t){if(this.customKeyEventHandler&&!1===this.customKeyEventHandler(t))return!1;if(!this.compositionHelper.keydown(t))return this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;var e=this._evaluateKeyEscapeSequence(t);return e.key===u.C0.DC3?this.writeStopped=!0:e.key===u.C0.DC1&&(this.writeStopped=!1),e.scrollLines?(this.scrollLines(e.scrollLines),this.cancel(t,!0)):!!T(this.browser,t)||(e.cancel&&this.cancel(t,!0),!e.key||(this.emit("keydown",t),this.emit("key",e.key,t),this.showCursor(),this.handler(e.key),this.cancel(t,!0)))},e.prototype._evaluateKeyEscapeSequence=function(t){var e={cancel:!1,key:void 0,scrollLines:void 0},i=(t.shiftKey?1:0)|(t.altKey?2:0)|(t.ctrlKey?4:0)|(t.metaKey?8:0);switch(t.keyCode){case 0:"UIKeyInputUpArrow"===t.key?this.applicationCursor?e.key=u.C0.ESC+"OA":e.key=u.C0.ESC+"[A":"UIKeyInputLeftArrow"===t.key?this.applicationCursor?e.key=u.C0.ESC+"OD":e.key=u.C0.ESC+"[D":"UIKeyInputRightArrow"===t.key?this.applicationCursor?e.key=u.C0.ESC+"OC":e.key=u.C0.ESC+"[C":"UIKeyInputDownArrow"===t.key&&(this.applicationCursor?e.key=u.C0.ESC+"OB":e.key=u.C0.ESC+"[B");break;case 8:if(t.shiftKey){e.key=u.C0.BS;break}e.key=u.C0.DEL;break;case 9:if(t.shiftKey){e.key=u.C0.ESC+"[Z";break}e.key=u.C0.HT,e.cancel=!0;break;case 13:e.key=u.C0.CR,e.cancel=!0;break;case 27:e.key=u.C0.ESC,e.cancel=!0;break;case 37:i?(e.key=u.C0.ESC+"[1;"+(i+1)+"D",e.key===u.C0.ESC+"[1;3D"&&(e.key=this.browser.isMac?u.C0.ESC+"b":u.C0.ESC+"[1;5D")):this.applicationCursor?e.key=u.C0.ESC+"OD":e.key=u.C0.ESC+"[D";break;case 39:i?(e.key=u.C0.ESC+"[1;"+(i+1)+"C",e.key===u.C0.ESC+"[1;3C"&&(e.key=this.browser.isMac?u.C0.ESC+"f":u.C0.ESC+"[1;5C")):this.applicationCursor?e.key=u.C0.ESC+"OC":e.key=u.C0.ESC+"[C";break;case 38:i?(e.key=u.C0.ESC+"[1;"+(i+1)+"A",e.key===u.C0.ESC+"[1;3A"&&(e.key=u.C0.ESC+"[1;5A")):this.applicationCursor?e.key=u.C0.ESC+"OA":e.key=u.C0.ESC+"[A";break;case 40:i?(e.key=u.C0.ESC+"[1;"+(i+1)+"B",e.key===u.C0.ESC+"[1;3B"&&(e.key=u.C0.ESC+"[1;5B")):this.applicationCursor?e.key=u.C0.ESC+"OB":e.key=u.C0.ESC+"[B";break;case 45:t.shiftKey||t.ctrlKey||(e.key=u.C0.ESC+"[2~");break;case 46:e.key=i?u.C0.ESC+"[3;"+(i+1)+"~":u.C0.ESC+"[3~";break;case 36:i?e.key=u.C0.ESC+"[1;"+(i+1)+"H":this.applicationCursor?e.key=u.C0.ESC+"OH":e.key=u.C0.ESC+"[H";break;case 35:i?e.key=u.C0.ESC+"[1;"+(i+1)+"F":this.applicationCursor?e.key=u.C0.ESC+"OF":e.key=u.C0.ESC+"[F";break;case 33:t.shiftKey?e.scrollLines=-(this.rows-1):e.key=u.C0.ESC+"[5~";break;case 34:t.shiftKey?e.scrollLines=this.rows-1:e.key=u.C0.ESC+"[6~";break;case 112:e.key=i?u.C0.ESC+"[1;"+(i+1)+"P":u.C0.ESC+"OP";break;case 113:e.key=i?u.C0.ESC+"[1;"+(i+1)+"Q":u.C0.ESC+"OQ";break;case 114:e.key=i?u.C0.ESC+"[1;"+(i+1)+"R":u.C0.ESC+"OR";break;case 115:e.key=i?u.C0.ESC+"[1;"+(i+1)+"S":u.C0.ESC+"OS";break;case 116:e.key=i?u.C0.ESC+"[15;"+(i+1)+"~":u.C0.ESC+"[15~";break;case 117:e.key=i?u.C0.ESC+"[17;"+(i+1)+"~":u.C0.ESC+"[17~";break;case 118:e.key=i?u.C0.ESC+"[18;"+(i+1)+"~":u.C0.ESC+"[18~";break;case 119:e.key=i?u.C0.ESC+"[19;"+(i+1)+"~":u.C0.ESC+"[19~";break;case 120:e.key=i?u.C0.ESC+"[20;"+(i+1)+"~":u.C0.ESC+"[20~";break;case 121:e.key=i?u.C0.ESC+"[21;"+(i+1)+"~":u.C0.ESC+"[21~";break;case 122:e.key=i?u.C0.ESC+"[23;"+(i+1)+"~":u.C0.ESC+"[23~";break;case 123:e.key=i?u.C0.ESC+"[24;"+(i+1)+"~":u.C0.ESC+"[24~";break;default:!t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?this.browser.isMac||!t.altKey||t.ctrlKey||t.metaKey?this.browser.isMac&&!t.altKey&&!t.ctrlKey&&t.metaKey&&65===t.keyCode&&this.selectAll():t.keyCode>=65&&t.keyCode<=90?e.key=u.C0.ESC+String.fromCharCode(t.keyCode+32):192===t.keyCode?e.key=u.C0.ESC+"`":t.keyCode>=48&&t.keyCode<=57&&(e.key=u.C0.ESC+(t.keyCode-48)):t.keyCode>=65&&t.keyCode<=90?e.key=String.fromCharCode(t.keyCode-64):32===t.keyCode?e.key=String.fromCharCode(0):t.keyCode>=51&&t.keyCode<=55?e.key=String.fromCharCode(t.keyCode-51+27):56===t.keyCode?e.key=String.fromCharCode(127):219===t.keyCode?e.key=String.fromCharCode(27):220===t.keyCode?e.key=String.fromCharCode(28):221===t.keyCode&&(e.key=String.fromCharCode(29))}return e},e.prototype.setgLevel=function(t){this.glevel=t,this.charset=this.charsets[t]},e.prototype.setgCharset=function(t,e){this.charsets[t]=e,this.glevel===t&&(this.charset=e)},e.prototype._keyPress=function(t){var e;if(this.customKeyEventHandler&&!1===this.customKeyEventHandler(t))return!1;if(this.cancel(t),t.charCode)e=t.charCode;else if(null==t.which)e=t.keyCode;else{if(0===t.which||0===t.charCode)return!1;e=t.which}return!(!e||(t.altKey||t.ctrlKey||t.metaKey)&&!T(this.browser,t))&&(e=String.fromCharCode(e),this.emit("keypress",e,t),this.emit("key",e,t),this.showCursor(),this.handler(e),!0)},e.prototype.send=function(t){var e=this;this.sendDataQueue||setTimeout(function(){e.handler(e.sendDataQueue),e.sendDataQueue=""},1),this.sendDataQueue+=t},e.prototype.bell=function(){var t=this;this.emit("bell"),this.soundBell()&&this.bellAudioElement.play(),this.visualBell()&&(this.element.classList.add("visual-bell-active"),clearTimeout(this.visualBellTimer),this.visualBellTimer=window.setTimeout(function(){t.element.classList.remove("visual-bell-active")},200))},e.prototype.log=function(t,e){this.options.debug&&this.context.console&&this.context.console.log&&this.context.console.log(t,e)},e.prototype.error=function(t,e){this.options.debug&&this.context.console&&this.context.console.error&&this.context.console.error(t,e)},e.prototype.resize=function(t,e){isNaN(t)||isNaN(e)||(t!==this.cols||e!==this.rows?(t<1&&(t=1),e<1&&(e=1),this.buffers.resize(t,e),this.cols=t,this.rows=e,this.buffers.setupTabStops(this.cols),this.charMeasure.measure(this.options),this.refresh(0,this.rows-1),this.emit("resize",{cols:t,rows:e})):this.charMeasure.width&&this.charMeasure.height||this.charMeasure.measure(this.options))},e.prototype.updateRange=function(t){tthis.refreshEnd&&(this.refreshEnd=t)},e.prototype.maxRange=function(){this.refreshStart=0,this.refreshEnd=this.rows-1},e.prototype.eraseRight=function(t,e){var i=this.buffer.lines.get(this.buffer.ybase+e);if(i){for(var r=[this.eraseAttr()," ",1,32];tthis.buffer.scrollBottom&&(this.buffer.y--,this.scroll()),this.buffer.x>=this.cols&&this.buffer.x--},e.prototype.reverseIndex=function(){if(this.buffer.y===this.buffer.scrollTop){var t=this.buffer.scrollBottom-this.buffer.scrollTop;this.buffer.lines.shiftElements(this.buffer.y+this.buffer.ybase,t,1),this.buffer.lines.set(this.buffer.y+this.buffer.ybase,this.blankLine(!0)),this.updateRange(this.buffer.scrollTop),this.updateRange(this.buffer.scrollBottom)}else this.buffer.y--},e.prototype.reset=function(){this.options.rows=this.rows,this.options.cols=this.cols;var t=this.customKeyEventHandler,e=this.inputHandler,i=this.buffers;this.setup(),this.customKeyEventHandler=t,this.inputHandler=e,this.buffers=i,this.refresh(0,this.rows-1),this.viewport.syncScrollArea()},e.prototype.tabSet=function(){this.buffer.tabs[this.buffer.x]=!0},e.prototype.cancel=function(t,e){if(this.options.cancelEvents||e)return t.preventDefault(),t.stopPropagation(),!1},e.prototype.matchColor=function(t,e,i){return function(t,e,i){var r=t<<16|e<<8|i;if(null!=R[r])return R[r];for(var n,s,o,a,l,c=1/0,h=-1,u=0;u47)}var M=function(){for(var t,e=C.DEFAULT_ANSI_COLORS.map(function(t){return t=t.substring(1),[parseInt(t.substring(0,2),16),parseInt(t.substring(2,4),16),parseInt(t.substring(4,6),16)]}),i=[0,95,135,175,215,255],r=0;r<216;r++)e.push([i[r/36%6|0],i[r/6%6|0],i[r%6]]);for(r=0;r<24;r++)t=8+10*r,e.push([t,t,t]);return e}(),R={};function B(t,e,i,r,n,s){return Math.pow(30*(t-r),2)+Math.pow(59*(e-n),2)+Math.pow(11*(i-s),2)}},{"./Buffer":1,"./BufferSet":2,"./CompositionHelper":5,"./EscapeSequences":6,"./EventEmitter":7,"./InputHandler":8,"./Linkifier":9,"./Parser":10,"./SelectionManager":11,"./Viewport":15,"./handlers/Clipboard":16,"./input/MouseZoneManager":17,"./renderer/CharAtlas":19,"./renderer/ColorManager":20,"./renderer/Renderer":24,"./utils/Browser":28,"./utils/CharMeasure":29,"./utils/MouseHelper":32,"./utils/Sounds":33}],14:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),function(t){t.HOVER="linkhover",t.TOOLTIP="linktooltip",t.LEAVE="linkleave"}(i.LinkHoverEventTypes||(i.LinkHoverEventTypes={}))},{}],15:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(t,e,i,r){var n=this;this.terminal=t,this.viewportElement=e,this.scrollArea=i,this.charMeasure=r,this.currentRowHeight=0,this.lastRecordedBufferLength=0,this.lastRecordedViewportHeight=0,this.lastRecordedBufferHeight=0,this.viewportElement.addEventListener("scroll",this.onScroll.bind(this)),setTimeout(function(){return n.syncScrollArea()},0)}return t.prototype.onThemeChanged=function(t){this.viewportElement.style.backgroundColor=t.background},t.prototype.refresh=function(){if(this.charMeasure.height>0){this.currentRowHeight=this.terminal.renderer.dimensions.scaledCellHeight/window.devicePixelRatio,this.lastRecordedViewportHeight!==this.terminal.renderer.dimensions.canvasHeight&&(this.lastRecordedViewportHeight=this.terminal.renderer.dimensions.canvasHeight,this.viewportElement.style.height=this.lastRecordedViewportHeight+"px");var t=Math.round(this.currentRowHeight*this.lastRecordedBufferLength);this.lastRecordedBufferHeight!==t&&(this.lastRecordedBufferHeight=t,this.scrollArea.style.height=this.lastRecordedBufferHeight+"px")}},t.prototype.syncScrollArea=function(){this.lastRecordedBufferLength!==this.terminal.buffer.lines.length?(this.lastRecordedBufferLength=this.terminal.buffer.lines.length,this.refresh()):this.lastRecordedViewportHeight!==this.terminal.renderer.dimensions.canvasHeight?this.refresh():this.terminal.renderer.dimensions.scaledCellHeight/window.devicePixelRatio!==this.currentRowHeight&&this.refresh();var t=this.terminal.buffer.ydisp*this.currentRowHeight;this.viewportElement.scrollTop!==t&&(this.viewportElement.scrollTop=t)},t.prototype.onScroll=function(t){var e=Math.round(this.viewportElement.scrollTop/this.currentRowHeight)-this.terminal.buffer.ydisp;this.terminal.scrollLines(e,!0)},t.prototype.onWheel=function(t){if(0!==t.deltaY){var e=1;t.deltaMode===WheelEvent.DOM_DELTA_LINE?e=this.currentRowHeight:t.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(e=this.currentRowHeight*this.terminal.rows),this.viewportElement.scrollTop+=t.deltaY*e,t.preventDefault()}},t.prototype.onTouchStart=function(t){this.lastTouchY=t.touches[0].pageY},t.prototype.onTouchMove=function(t){var e=this.lastTouchY-t.touches[0].pageY;this.lastTouchY=t.touches[0].pageY,0!==e&&(this.viewportElement.scrollTop+=e,t.preventDefault())},t}();i.Viewport=r},{}],16:[function(t,e,i){"use strict";function r(t,e){return e?t.replace(/\r?\n/g,"\r"):t}function n(t,e){return e?"[200~"+t+"[201~":t}function s(t,e){e.style.position="fixed",e.style.width="20px",e.style.height="20px",e.style.left=t.clientX-10+"px",e.style.top=t.clientY-10+"px",e.style.zIndex="1000",e.focus(),setTimeout(function(){e.style.position=null,e.style.width=null,e.style.height=null,e.style.left=null,e.style.top=null,e.style.zIndex=null},4)}Object.defineProperty(i,"__esModule",{value:!0}),i.prepareTextForTerminal=r,i.bracketTextForPaste=n,i.copyHandler=function(t,e,i){e.browser.isMSIE?window.clipboardData.setData("Text",i.selectionText):t.clipboardData.setData("text/plain",i.selectionText),t.preventDefault()},i.pasteHandler=function(t,e){t.stopPropagation();var i=function(i){i=n(i=r(i,e.browser.isMSWindows),e.bracketedPasteMode),e.handler(i),e.textarea.value="",e.emit("paste",i),e.cancel(t)};e.browser.isMSIE?window.clipboardData&&i(window.clipboardData.getData("Text")):t.clipboardData&&i(t.clipboardData.getData("text/plain"))},i.moveTextAreaUnderMouseCursor=s,i.rightClickHandler=function(t,e,i){s(t,e),e.value=i.selectionText,e.select()}},{}],17:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(t){var e=this;this._terminal=t,this._zones=[],this._areZonesActive=!1,this._tooltipTimeout=null,this._currentZone=null,this._lastHoverCoords=[null,null],this._terminal.element.addEventListener("mousedown",function(t){return e._onMouseDown(t)}),this._mouseMoveListener=function(t){return e._onMouseMove(t)},this._clickListener=function(t){return e._onClick(t)}}return t.prototype.add=function(t){this._zones.push(t),1===this._zones.length&&this._activate()},t.prototype.clearAll=function(t,e){if(0!==this._zones.length){e||(t=0,e=this._terminal.rows-1);for(var i=0;it&&r.y<=e+1&&(this._currentZone&&this._currentZone===r&&(this._currentZone.leaveCallback(),this._currentZone=null),this._zones.splice(i--,1))}0===this._zones.length&&this._deactivate()}},t.prototype._activate=function(){this._areZonesActive||(this._areZonesActive=!0,this._terminal.element.addEventListener("mousemove",this._mouseMoveListener),this._terminal.element.addEventListener("click",this._clickListener))},t.prototype._deactivate=function(){this._areZonesActive&&(this._areZonesActive=!1,this._terminal.element.removeEventListener("mousemove",this._mouseMoveListener),this._terminal.element.removeEventListener("click",this._clickListener))},t.prototype._onMouseMove=function(t){this._lastHoverCoords[0]===t.pageX&&this._lastHoverCoords[1]===t.pageY||(this._onHover(t),this._lastHoverCoords=[t.pageX,t.pageY])},t.prototype._onHover=function(t){var e=this,i=this._findZoneEventAt(t);i!==this._currentZone&&(this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=null,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout)),i&&(this._currentZone=i,i.hoverCallback&&i.hoverCallback(t),this._tooltipTimeout=setTimeout(function(){return e._onTooltip(t)},500)))},t.prototype._onTooltip=function(t){this._tooltipTimeout=null;var e=this._findZoneEventAt(t);e&&e.tooltipCallback&&e.tooltipCallback(t)},t.prototype._onMouseDown=function(t){this._areZonesActive&&(this._findZoneEventAt(t)&&(t.preventDefault(),t.stopImmediatePropagation()))},t.prototype._onClick=function(t){var e=this._findZoneEventAt(t);e&&(e.clickCallback(t),t.preventDefault(),t.stopImmediatePropagation())},t.prototype._findZoneEventAt=function(t){var e=this._terminal.mouseHelper.getCoords(t,this._terminal.element,this._terminal.charMeasure,this._terminal.options.lineHeight,this._terminal.cols,this._terminal.rows);if(!e)return null;for(var i=0;ie[0])return r}return null},t}();i.MouseZoneManager=r;var n=function(){return function(t,e,i,r,n,s,o){this.x1=t,this.x2=e,this.y=i,this.clickCallback=r,this.hoverCallback=n,this.tooltipCallback=s,this.leaveCallback=o}}();i.MouseZone=n},{}],18:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=t("./CharAtlas"),n=t("../Buffer");i.INVERTED_DEFAULT_COLOR=-1;var s=function(){function t(t,e,i,r,n){this._alpha=r,this._colors=n,this._scaledCharWidth=0,this._scaledCharHeight=0,this._scaledCellWidth=0,this._scaledCellHeight=0,this._scaledCharLeft=0,this._scaledCharTop=0,this._canvas=document.createElement("canvas"),this._canvas.id="xterm-"+e+"-layer",this._canvas.style.zIndex=i.toString(),this._ctx=this._canvas.getContext("2d",{alpha:r}),this._ctx.scale(window.devicePixelRatio,window.devicePixelRatio),r||this.clearAll(),t.appendChild(this._canvas)}return t.prototype.onOptionsChanged=function(t){},t.prototype.onBlur=function(t){},t.prototype.onFocus=function(t){},t.prototype.onCursorMove=function(t){},t.prototype.onGridChanged=function(t,e,i){},t.prototype.onSelectionChanged=function(t,e,i){},t.prototype.onThemeChanged=function(t,e){this._refreshCharAtlas(t,e)},t.prototype._refreshCharAtlas=function(t,e){var i=this;if(!(this._scaledCharWidth<=0&&this._scaledCharHeight<=0)){this._charAtlas=null;var n=r.acquireCharAtlas(t,this._colors,this._scaledCharWidth,this._scaledCharHeight);n instanceof HTMLCanvasElement?this._charAtlas=n:n.then(function(t){return i._charAtlas=t})}},t.prototype.resize=function(t,e,i){this._scaledCellWidth=e.scaledCellWidth,this._scaledCellHeight=e.scaledCellHeight,this._scaledCharWidth=e.scaledCharWidth,this._scaledCharHeight=e.scaledCharHeight,this._scaledCharLeft=e.scaledCharLeft,this._scaledCharTop=e.scaledCharTop,this._canvas.width=e.scaledCanvasWidth,this._canvas.height=e.scaledCanvasHeight,this._canvas.style.width=e.canvasWidth+"px",this._canvas.style.height=e.canvasHeight+"px",this._alpha||this.clearAll(),i&&this._refreshCharAtlas(t,this._colors)},t.prototype.fillCells=function(t,e,i,r){this._ctx.fillRect(t*this._scaledCellWidth,e*this._scaledCellHeight,i*this._scaledCellWidth,r*this._scaledCellHeight)},t.prototype.fillBottomLineAtCells=function(t,e,i){void 0===i&&(i=1),this._ctx.fillRect(t*this._scaledCellWidth,(e+1)*this._scaledCellHeight-window.devicePixelRatio-1,i*this._scaledCellWidth,window.devicePixelRatio)},t.prototype.fillLeftLineAtCell=function(t,e){this._ctx.fillRect(t*this._scaledCellWidth,e*this._scaledCellHeight,window.devicePixelRatio,this._scaledCellHeight)},t.prototype.strokeRectAtCell=function(t,e,i,r){this._ctx.lineWidth=window.devicePixelRatio,this._ctx.strokeRect(t*this._scaledCellWidth+window.devicePixelRatio/2,e*this._scaledCellHeight+window.devicePixelRatio/2,i*this._scaledCellWidth-window.devicePixelRatio,r*this._scaledCellHeight-window.devicePixelRatio)},t.prototype.clearAll=function(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._colors.background,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))},t.prototype.clearCells=function(t,e,i,r){this._alpha?this._ctx.clearRect(t*this._scaledCellWidth,e*this._scaledCellHeight,i*this._scaledCellWidth,r*this._scaledCellHeight):(this._ctx.fillStyle=this._colors.background,this._ctx.fillRect(t*this._scaledCellWidth,e*this._scaledCellHeight,i*this._scaledCellWidth,r*this._scaledCellHeight))},t.prototype.fillCharTrueColor=function(t,e,i,r){this._ctx.font=t.options.fontSize*window.devicePixelRatio+"px "+t.options.fontFamily,this._ctx.textBaseline="top",this._clipRow(t,r),this._ctx.fillText(e[n.CHAR_DATA_CHAR_INDEX],i*this._scaledCellWidth+this._scaledCharLeft,r*this._scaledCellHeight+this._scaledCharTop)},t.prototype.drawChar=function(t,e,i,n,s,o,a,l,c,h){var u=0;a<256?u=a+2:c&&t.options.enableBold&&(u=1);var f=i<256,p=u>1&&a<16&&(a<8||c),d=a>=256,m=l>=256;if(this._charAtlas&&f&&(p||d)&&m){var _=this._scaledCharWidth+r.CHAR_ATLAS_CELL_SPACING,y=this._scaledCharHeight+r.CHAR_ATLAS_CELL_SPACING;h&&(this._ctx.globalAlpha=.5),c&&!t.options.enableBold&&u>1&&(u-=8),this._ctx.drawImage(this._charAtlas,i*_,u*y,_,this._scaledCharHeight,s*this._scaledCellWidth+this._scaledCharLeft,o*this._scaledCellHeight+this._scaledCharTop,_,this._scaledCharHeight)}else this._drawUncachedChar(t,e,n,a,s,o,c,h)},t.prototype._drawUncachedChar=function(t,e,r,n,s,o,a,l){this._ctx.save(),this._ctx.font=t.options.fontSize*window.devicePixelRatio+"px "+t.options.fontFamily,a&&t.options.enableBold&&(this._ctx.font="bold "+this._ctx.font),this._ctx.textBaseline="top",n===i.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._colors.background:this._ctx.fillStyle=n<256?this._colors.ansi[n]:this._colors.foreground,this._clipRow(t,o),l&&(this._ctx.globalAlpha=.5),this._ctx.fillText(e,s*this._scaledCellWidth+this._scaledCharLeft,o*this._scaledCellHeight+this._scaledCharTop),this._ctx.restore()},t.prototype._clipRow=function(t,e){this._ctx.beginPath(),this._ctx.rect(0,e*this._scaledCellHeight,t.cols*this._scaledCellWidth,this._scaledCellHeight),this._ctx.clip()},t}();i.BaseRenderLayer=s},{"../Buffer":1,"./CharAtlas":19}],19:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=t("../utils/Browser");i.CHAR_ATLAS_CELL_SPACING=1;var n,s=[];function o(t,e){for(var i=0;i=0){if(o(h.config,a))return h.bitmap;1===h.ownedBy.length?s.splice(l,1):h.ownedBy.splice(c,1);break}}for(l=0;l=t.rows)this._clearCursor();else{var n=t.buffer.lines.get(i)[t.buffer.x];if(n){if(!t.isFocused)return this._clearCursor(),this._ctx.save(),this._ctx.fillStyle=this._colors.cursor,this._renderBlurCursor(t,t.buffer.x,r,n),this._ctx.restore(),this._state.x=t.buffer.x,this._state.y=r,this._state.isFocused=!1,this._state.style=t.options.cursorStyle,void(this._state.width=n[s.CHAR_DATA_WIDTH_INDEX]);if(!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isCursorVisible){if(this._state){if(this._state.x===t.buffer.x&&this._state.y===r&&this._state.isFocused===t.isFocused&&this._state.style===t.options.cursorStyle&&this._state.width===n[s.CHAR_DATA_WIDTH_INDEX])return;this._clearCursor()}this._ctx.save(),this._cursorRenderers[t.options.cursorStyle||"block"](t,t.buffer.x,r,n),this._ctx.restore(),this._state.x=t.buffer.x,this._state.y=r,this._state.isFocused=!1,this._state.style=t.options.cursorStyle,this._state.width=n[s.CHAR_DATA_WIDTH_INDEX]}else this._clearCursor()}}}else this._clearCursor()},e.prototype._clearCursor=function(){this._state&&(this.clearCells(this._state.x,this._state.y,this._state.width,1),this._state={x:null,y:null,isFocused:null,style:null,width:null})},e.prototype._renderBarCursor=function(t,e,i,r){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor,this.fillLeftLineAtCell(e,i),this._ctx.restore()},e.prototype._renderBlockCursor=function(t,e,i,r){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor,this.fillCells(e,i,r[s.CHAR_DATA_WIDTH_INDEX],1),this._ctx.fillStyle=this._colors.cursorAccent,this.fillCharTrueColor(t,r,e,i),this._ctx.restore()},e.prototype._renderUnderlineCursor=function(t,e,i,r){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor,this.fillBottomLineAtCells(e,i),this._ctx.restore()},e.prototype._renderBlurCursor=function(t,e,i,r){this._ctx.save(),this._ctx.strokeStyle=this._colors.cursor,this.strokeRectAtCell(e,i,r[s.CHAR_DATA_WIDTH_INDEX],1),this._ctx.restore()},e}(o.BaseRenderLayer);i.CursorRenderLayer=a;var l=function(){function t(t,e){this.renderCallback=e,this.isCursorVisible=!0,t.isFocused&&this._restartInterval()}return Object.defineProperty(t.prototype,"isPaused",{get:function(){return!(this._blinkStartTimeout||this._blinkInterval)},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},t.prototype.restartBlinkAnimation=function(t){var e=this;this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){e.renderCallback(),e._animationFrame=null})))},t.prototype._restartInterval=function(t){var e=this;void 0===t&&(t=600),this._blinkInterval&&window.clearInterval(this._blinkInterval),this._blinkStartTimeout=setTimeout(function(){if(e._animationTimeRestarted){var t=600-(Date.now()-e._animationTimeRestarted);if(e._animationTimeRestarted=null,t>0)return void e._restartInterval(t)}e.isCursorVisible=!1,e._animationFrame=window.requestAnimationFrame(function(){e.renderCallback(),e._animationFrame=null}),e._blinkInterval=setInterval(function(){if(e._animationTimeRestarted){var t=600-(Date.now()-e._animationTimeRestarted);return e._animationTimeRestarted=null,void e._restartInterval(t)}e.isCursorVisible=!e.isCursorVisible,e._animationFrame=window.requestAnimationFrame(function(){e.renderCallback(),e._animationFrame=null})},600)},t)},t.prototype.pause=function(){this.isCursorVisible=!0,this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},t.prototype.resume=function(t){this._animationTimeRestarted=null,this._restartInterval(),this.restartBlinkAnimation(t)},t}()},{"../Buffer":1,"./BaseRenderLayer":18}],22:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(){this.cache=[]}return t.prototype.resize=function(t,e){for(var i=0;i4)t=0,e=this._terminal.rows-1;else{t=this._refreshRowsQueue[0].start,e=this._refreshRowsQueue[0].end;for(var r=1;re&&(e=this._refreshRowsQueue[r].end)}this._refreshRowsQueue=[],this._refreshAnimationFrame=null,t=Math.max(t,0),e=Math.min(e,this._terminal.rows-1),this._renderLayers.forEach(function(r){return r.onGridChanged(i._terminal,t,e)}),this._terminal.emit("refresh",{start:t,end:e})},e.prototype._updateDimensions=function(){this._terminal.charMeasure.width&&this._terminal.charMeasure.height&&(this.dimensions.scaledCharWidth=Math.floor(this._terminal.charMeasure.width*window.devicePixelRatio),this.dimensions.scaledCharHeight=Math.ceil(this._terminal.charMeasure.height*window.devicePixelRatio),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._terminal.options.lineHeight),this.dimensions.scaledCharTop=1===this._terminal.options.lineHeight?0:Math.round((this.dimensions.scaledCellHeight-this.dimensions.scaledCharHeight)/2),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._terminal.options.letterSpacing),this.dimensions.scaledCharLeft=Math.floor(this._terminal.options.letterSpacing/2),this.dimensions.scaledCanvasHeight=this._terminal.rows*this.dimensions.scaledCellHeight,this.dimensions.scaledCanvasWidth=this._terminal.cols*this.dimensions.scaledCellWidth,this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._terminal.rows,this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._terminal.cols)},e}(t("../EventEmitter").EventEmitter);i.Renderer=h},{"../EventEmitter":7,"./ColorManager":20,"./CursorRenderLayer":21,"./LinkRenderLayer":23,"./SelectionRenderLayer":25,"./TextRenderLayer":26}],25:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=function(t){function e(e,i,r){var n=t.call(this,e,"selection",i,!0,r)||this;return n._state={start:null,end:null},n}return n(e,t),e.prototype.resize=function(e,i,r){t.prototype.resize.call(this,e,i,r),this._state={start:null,end:null}},e.prototype.reset=function(t){this._state.start&&this._state.end&&(this._state={start:null,end:null},this.clearAll())},e.prototype.onSelectionChanged=function(t,e,i){if(this._state.start!==e&&this._state.end!==i&&(this.clearAll(),e&&i)){var r=e[1]-t.buffer.ydisp,n=i[1]-t.buffer.ydisp,s=Math.max(r,0),o=Math.min(n,t.rows-1);if(!(s>=t.rows||o<0)){var a=r===s?e[0]:0,l=s===o?i[0]:t.cols;this._ctx.fillStyle=this._colors.selection,this.fillCells(a,s,l-a,1);var c=Math.max(o-s-1,0);if(this.fillCells(0,s+1,t.cols,c),s!==o){var h=n===o?i[0]:t.cols;this.fillCells(0,o,h,1)}this._state.start=[e[0],e[1]],this._state.end=[i[0],i[1]]}}},e}(t("./BaseRenderLayer").BaseRenderLayer);i.SelectionRenderLayer=s},{"./BaseRenderLayer":18}],26:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=t("../Buffer"),o=t("./Types"),a=t("./GridCache"),l=t("./BaseRenderLayer"),c=function(t){function e(e,i,r){var n=t.call(this,e,"text",i,!1,r)||this;return n._characterOverlapCache={},n._state=new a.GridCache,n}return n(e,t),e.prototype.resize=function(e,i,r){t.prototype.resize.call(this,e,i,r);var n=e.options.fontSize*window.devicePixelRatio+"px "+e.options.fontFamily;this._characterWidth===i.scaledCharWidth&&this._characterFont===n||(this._characterWidth=i.scaledCharWidth,this._characterFont=n,this._characterOverlapCache={}),this._state.clear(),this._state.resize(e.cols,e.rows)},e.prototype.reset=function(t){this._state.clear(),this.clearAll()},e.prototype.onGridChanged=function(t,e,i){if(0!==this._state.cache.length)for(var r=e;r<=i;r++){var n=r+t.buffer.ydisp,a=t.buffer.lines.get(n);this.clearCells(0,r,t.cols,1);for(var c=0;c0){var m=a[c-1];if(this._isOverlapping(m))continue}var _=p>>18,y=511&p,g=y>=256,v=_&o.FLAGS.INVISIBLE,b=_&o.FLAGS.INVERSE;if(u&&(32!==u||!g||b)&&!v){0!==d&&this._isOverlapping(h)&&c>9&511;if(b){var w=y;y=C,256===(C=w)&&(C=l.INVERTED_DEFAULT_COLOR),257===y&&(y=l.INVERTED_DEFAULT_COLOR)}y<256&&(this._ctx.save(),this._ctx.fillStyle=y===l.INVERTED_DEFAULT_COLOR?this._colors.foreground:this._colors.ansi[y],this.fillCells(c,r,d,1),this._ctx.restore()),this._ctx.save(),_&o.FLAGS.BOLD&&(this._ctx.font="bold "+this._ctx.font,C<8&&(C+=8)),_&o.FLAGS.UNDERLINE&&(C===l.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._colors.background:this._ctx.fillStyle=C<256?this._colors.ansi[C]:this._colors.foreground,this.fillBottomLineAtCells(c,r)),this.drawChar(t,f,u,d,c,r,C,y,!!(_&o.FLAGS.BOLD),!!(_&o.FLAGS.DIM)),this._ctx.restore()}}}}},e.prototype._isOverlapping=function(t){if(1!==t[s.CHAR_DATA_WIDTH_INDEX])return!1;if(t[s.CHAR_DATA_CODE_INDEX]<256)return!1;var e=t[s.CHAR_DATA_CHAR_INDEX];if(this._characterOverlapCache.hasOwnProperty(e))return this._characterOverlapCache[e];this._ctx.save(),this._ctx.font=this._characterFont;var i=Math.floor(this._ctx.measureText(e).width)>this._characterWidth;return this._ctx.restore(),this._characterOverlapCache[e]=i,i},e.prototype._clearChar=function(t,e){var i=1,r=this._state.cache[t][e];r&&2===r[s.CHAR_DATA_WIDTH_INDEX]&&(i=2),this.clearCells(t,e,i,1)},e}(l.BaseRenderLayer);i.TextRenderLayer=c},{"../Buffer":1,"./BaseRenderLayer":18,"./GridCache":22,"./Types":27}],27:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),function(t){t[t.BOLD=1]="BOLD",t[t.UNDERLINE=2]="UNDERLINE",t[t.BLINK=4]="BLINK",t[t.INVERSE=8]="INVERSE",t[t.INVISIBLE=16]="INVISIBLE",t[t.DIM=32]="DIM"}(i.FLAGS||(i.FLAGS={}))},{}],28:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=t("./Generic"),n="undefined"==typeof navigator,s=n?"node":navigator.userAgent,o=n?"node":navigator.platform;i.isFirefox=!!~s.indexOf("Firefox"),i.isMSIE=!!~s.indexOf("MSIE")||!!~s.indexOf("Trident"),i.isMac=r.contains(["Macintosh","MacIntel","MacPPC","Mac68K"],o),i.isIpad="iPad"===o,i.isIphone="iPhone"===o,i.isMSWindows=r.contains(["Windows","Win16","Win32","WinCE"],o),i.isLinux=o.indexOf("Linux")>=0},{"./Generic":31}],29:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=function(t){function e(e,i){var r=t.call(this)||this;return r._document=e,r._parentElement=i,r._measureElement=r._document.createElement("span"),r._measureElement.style.position="absolute",r._measureElement.style.top="0",r._measureElement.style.left="-9999em",r._measureElement.style.lineHeight="normal",r._measureElement.textContent="W",r._measureElement.setAttribute("aria-hidden","true"),r._parentElement.appendChild(r._measureElement),r}return n(e,t),Object.defineProperty(e.prototype,"width",{get:function(){return this._width},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"height",{get:function(){return this._height},enumerable:!0,configurable:!0}),e.prototype.measure=function(t){this._measureElement.style.fontFamily=t.fontFamily,this._measureElement.style.fontSize=t.fontSize+"px";var e=this._measureElement.getBoundingClientRect();0!==e.width&&0!==e.height&&(this._width===e.width&&this._height===e.height||(this._width=e.width,this._height=Math.ceil(e.height),this.emit("charsizechanged")))},e}(t("../EventEmitter").EventEmitter);i.CharMeasure=s},{"../EventEmitter":7}],30:[function(t,e,i){"use strict";var r,n=this&&this.__extends||(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},function(t,e){function i(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(i,"__esModule",{value:!0});var s=function(t){function e(e){var i=t.call(this)||this;return i._maxLength=e,i._array=new Array(i._maxLength),i._startIndex=0,i._length=0,i}return n(e,t),Object.defineProperty(e.prototype,"maxLength",{get:function(){return this._maxLength},set:function(t){if(this._maxLength!==t){for(var e=new Array(t),i=0;ithis._length)for(var e=this._length;e=t;n--)this._array[this._getCyclicIndex(n+i.length)]=this._array[this._getCyclicIndex(n)];for(n=0;nthis.maxLength){var s=this._length+i.length-this.maxLength;this._startIndex+=s,this._length=this.maxLength,this.emit("trim",s)}else this._length+=i.length}},e.prototype.trimStart=function(t){t>this._length&&(t=this._length),this._startIndex+=t,this._length-=t,this.emit("trim",t)},e.prototype.shiftElements=function(t,e,i){if(!(e<=0)){if(t<0||t>=this._length)throw new Error("start argument out of range");if(t+i<0)throw new Error("Cannot shift elements in list beyond index 0");if(i>0){for(var r=e-1;r>=0;r--)this.set(t+r+i,this.get(t+r));var n=t+e+i-this._length;if(n>0)for(this._length+=n;this._length>this.maxLength;)this._length--,this._startIndex++,this.emit("trim",1)}else for(r=0;r=0}},{}],32:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(t){this._renderer=t}return t.getCoordsRelativeToElement=function(t,e){if(null==t.pageX)return null;for(var i=e,r=t.pageX,n=t.pageY;e;)r-=e.offsetLeft,n-=e.offsetTop,e="offsetParent"in e?e.offsetParent:e.parentElement;for(e=i;e&&e!==e.ownerDocument.body;)r+=e.scrollLeft,n+=e.scrollTop,e=e.parentElement;return[r,n]},t.prototype.getCoords=function(e,i,r,n,s,o,a){if(!r.width||!r.height)return null;var l=t.getCoordsRelativeToElement(e,i);return l?(l[0]=Math.ceil((l[0]+(a?this._renderer.dimensions.actualCellWidth/2:0))/this._renderer.dimensions.actualCellWidth),l[1]=Math.ceil(l[1]/this._renderer.dimensions.actualCellHeight),l[0]=Math.min(Math.max(l[0],1),s+(a?1:0)),l[1]=Math.min(Math.max(l[1],1),o),l):null},t.prototype.getRawByteCoords=function(t,e,i,r,n,s){var o=this.getCoords(t,e,i,r,n,s),a=o[0],l=o[1];return{x:a+=32,y:l+=32}},t}();i.MouseHelper=r},{}],33:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.BellSound="data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg=="},{}],34:[function(t,e,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=t("./Terminal");e.exports=r.Terminal},{"./Terminal":13}]},{},[34])(34)},t.exports=n()},function(t,e,i){var r,n;n=function(){return function t(e,i,n){function s(a,l){if(!i[a]){if(!e[a]){if(!l&&("function"==typeof r&&r))return r(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var h=i[a]={exports:{}};e[a][0].call(h.exports,function(t){var i=e[a][1][t];return s(i||t)},h,h.exports,t,e,i,n)}return i[a].exports}for(var o="function"==typeof r&&r,a=0;a1&&void 0!==arguments[1]?arguments[1]:{}).asNewDefault,i=void 0!==e&&e,r=Object.keys(B),n=i?function(t){return~r.indexOf(t)&&!~M.indexOf(t)}:function(t){return~r.indexOf(t)};Object.keys(t).forEach(function(e){n(e)&&(B[e]=t[e])})}c.FontAwesomeConfig=B;var H=c||{};H.___FONT_AWESOME___||(H.___FONT_AWESOME___={}),H.___FONT_AWESOME___.styles||(H.___FONT_AWESOME___.styles={}),H.___FONT_AWESOME___.hooks||(H.___FONT_AWESOME___.hooks={}),H.___FONT_AWESOME___.shims||(H.___FONT_AWESOME___.shims=[]);var D=H.___FONT_AWESOME___,I=[],P=!1;d&&((P=(h.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(h.readyState))||h.addEventListener("DOMContentLoaded",function t(){h.removeEventListener("DOMContentLoaded",t),P=1,I.map(function(t){return t()})}));var N=function(t){d&&(P?setTimeout(t,0):I.push(t))},F=_,j={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function z(t){if(t&&d){var e=h.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var i=h.head.childNodes,r=null,n=i.length-1;n>-1;n--){var s=i[n],o=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=s)}return h.head.insertBefore(e,r),t}}var W=0;function U(){return++W}function q(t){for(var e=[],i=(t||[]).length>>>0;i--;)e[i]=t[i];return e}function X(t){return t.classList?q(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(t){return t})}function V(t,e){var i,r=e.split("-"),n=r[0],s=r.slice(1).join("-");return n!==t||""===s||(i=s,~k.indexOf(i))?null:s}function K(t){return(""+t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function G(t){return Object.keys(t||{}).reduce(function(e,i){return e+(i+": ")+t[i]+";"},"")}function Z(t){return t.size!==j.size||t.x!==j.x||t.y!==j.y||t.rotate!==j.rotate||t.flipX||t.flipY}function Y(t){var e=t.transform,i=t.containerWidth,r=t.iconWidth;return{outer:{transform:"translate("+i/2+" 256)"},inner:{transform:"translate("+32*e.x+", "+32*e.y+") "+" "+("scale("+e.size/16*(e.flipX?-1:1)+", "+e.size/16*(e.flipY?-1:1)+") ")+" "+("rotate("+e.rotate+" 0 0)")},path:{transform:"translate("+r/2*-1+" -256)"}}}var Q={x:0,y:0,width:"100%",height:"100%"},J=function(t){var e=t.children,i=t.attributes,r=t.main,n=t.mask,s=t.transform,o=r.width,a=r.icon,l=n.width,c=n.icon,h=Y({transform:s,containerWidth:l,iconWidth:o}),u={tag:"rect",attributes:E({},Q,{fill:"white"})},f={tag:"g",attributes:E({},h.inner),children:[{tag:"path",attributes:E({},a.attributes,h.path,{fill:"black"})}]},p={tag:"g",attributes:E({},h.outer),children:[f]},d="mask-"+U(),m="clip-"+U(),_={tag:"defs",children:[{tag:"clipPath",attributes:{id:m},children:[c]},{tag:"mask",attributes:E({},Q,{id:d,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[u,p]}]};return e.push(_,{tag:"rect",attributes:E({fill:"currentColor","clip-path":"url(#"+m+")",mask:"url(#"+d+")"},Q)}),{children:e,attributes:i}},$=function(t){var e=t.children,i=t.attributes,r=t.main,n=t.transform,s=G(t.styles);if(s.length>0&&(i.style=s),Z(n)){var o=Y({transform:n,containerWidth:r.width,iconWidth:r.width});e.push({tag:"g",attributes:E({},o.outer),children:[{tag:"g",attributes:E({},o.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:E({},r.icon.attributes,o.path)}]}]})}else e.push(r.icon);return{children:e,attributes:i}},tt=function(t){var e=t.children,i=t.main,r=t.mask,n=t.attributes,s=t.styles,o=t.transform;if(Z(o)&&i.found&&!r.found){var a={x:i.width/i.height/2,y:.5};n.style=G(E({},s,{"transform-origin":a.x+o.x/16+"em "+(a.y+o.y/16)+"em"}))}return[{tag:"svg",attributes:n,children:e}]},et=function(t){var e=t.prefix,i=t.iconName,r=t.children,n=t.attributes,s=t.symbol,o=!0===s?e+"-"+B.familyPrefix+"-"+i:s;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:E({},n,{id:o}),children:r}]}]};function it(t){var e=t.icons,i=e.main,r=e.mask,n=t.prefix,s=t.iconName,o=t.transform,a=t.symbol,l=t.title,c=t.extra,h=t.watchable,u=void 0!==h&&h,f=r.found?r:i,p=f.width,d=f.height,m="fa-w-"+Math.ceil(p/d*16),_=[B.replacementClass,s?B.familyPrefix+"-"+s:"",m].concat(c.classes).join(" "),g={children:[],attributes:E({},c.attributes,{"data-prefix":n,"data-icon":s,class:_,role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 "+p+" "+d})};u&&(g.attributes[y]=""),l&&g.children.push({tag:"title",attributes:{id:g.attributes["aria-labelledby"]||"title-"+U()},children:[l]});var v=E({},g,{prefix:n,iconName:s,main:i,mask:r,transform:o,symbol:a,styles:c.styles}),b=r.found&&i.found?J(v):$(v),C=b.children,w=b.attributes;return v.children=C,v.attributes=w,a?et(v):tt(v)}function rt(t){var e=t.content,i=t.width,r=t.height,n=t.transform,s=t.title,o=t.extra,a=t.watchable,l=void 0!==a&&a,c=E({},o.attributes,s?{title:s}:{},{class:o.classes.join(" ")});l&&(c[y]="");var h=E({},o.styles);Z(n)&&(h.transform=function(t){var e=t.transform,i=t.width,r=void 0===i?_:i,n=t.height,s=void 0===n?_:n,o=t.startCentered,a=void 0!==o&&o,l="";return l+=a&&m?"translate("+(e.x/F-r/2)+"em, "+(e.y/F-s/2)+"em) ":a?"translate(calc(-50% + "+e.x/F+"em), calc(-50% + "+e.y/F+"em)) ":"translate("+e.x/F+"em, "+e.y/F+"em) ",l+="scale("+e.size/F*(e.flipX?-1:1)+", "+e.size/F*(e.flipY?-1:1)+") ",l+="rotate("+e.rotate+"deg) "}({transform:n,startCentered:!0,width:i,height:r}),h["-webkit-transform"]=h.transform);var u=G(h);u.length>0&&(c.style=u);var f=[];return f.push({tag:"span",attributes:c,children:[e]}),s&&f.push({tag:"span",attributes:{class:"sr-only"},children:[s]}),f}var nt=function(){},st=B.measurePerformance&&f&&f.mark&&f.measure?f:{mark:nt,measure:nt},ot=function(t){st.mark('FA "5.0.5" '+t+" ends"),st.measure('FA "5.0.5" '+t,'FA "5.0.5" '+t+" begins",'FA "5.0.5" '+t+" ends")},at={begin:function(t){return st.mark('FA "5.0.5" '+t+" begins"),function(){return ot(t)}},end:ot},lt=function(t,e,i,r){var n,s,o,a=Object.keys(t),l=a.length,c=void 0!==r?function(t,e){return function(i,r,n,s){return t.call(e,i,r,n,s)}}(e,r):e;for(void 0===i?(n=1,o=t[a[0]]):(n=0,o=i);n"+s.map(vt).join("")+""}var bt=function(){};function Ct(t){return"string"==typeof(t.getAttribute?t.getAttribute(y):null)}var wt={replace:function(t){var e=t[0],i=t[1].map(function(t){return vt(t)}).join("\n");if(e.parentNode&&e.outerHTML)e.outerHTML=i+(B.keepOriginalSource&&"svg"!==e.tagName.toLowerCase()?"\x3c!-- "+e.outerHTML+" --\x3e":"");else if(e.parentNode){var r=document.createElement("span");e.parentNode.replaceChild(r,e),r.outerHTML=i}},nest:function(t){var e=t[0],i=t[1];if(~X(e).indexOf(B.replacementClass))return wt.replace(t);var r=new RegExp(B.familyPrefix+"-.*");delete i[0].attributes.style;var n=i[0].attributes.class.split(" ").reduce(function(t,e){return e===B.replacementClass||e.match(r)?t.toSvg.push(e):t.toNode.push(e),t},{toNode:[],toSvg:[]});i[0].attributes.class=n.toSvg.join(" ");var s=i.map(function(t){return vt(t)}).join("\n");e.setAttribute("class",n.toNode.join(" ")),e.setAttribute(y,""),e.innerHTML=s}};function xt(t,e){var i="function"==typeof e?e:bt;0===t.length?i():(c.requestAnimationFrame||function(t){return t()})(function(){var e=!0===B.autoReplaceSvg?wt.replace:wt[B.autoReplaceSvg]||wt.replace,r=at.begin("mutate");t.map(e),r(),i()})}var kt=!1;var At=function(t){var e=t.getAttribute("style"),i=[];return e&&(i=e.split(";").reduce(function(t,e){var i=e.split(":"),r=i[0],n=i.slice(1);return r&&n.length>0&&(t[r]=n.join(":").trim()),t},{})),i};var St=function(t){var e,i,r=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),s=void 0!==t.innerText?t.innerText.trim():"",o=yt(X(t));return r&&n&&(o.prefix=r,o.iconName=n),o.prefix&&s.length>1?o.iconName=(e=o.prefix,i=t.innerText,ft[e][i]):o.prefix&&1===s.length&&(o.iconName=function(t,e){return ut[t][e]}(o.prefix,function(t){for(var e="",i=0;i-1&&qt(n.nextSibling),qt(n),n=null),r&&!n){var s=i.getPropertyValue("content"),o=h.createElement("i");o.setAttribute("class",""+zt[r[1]]),o.setAttribute(g,e),o.innerText=3===s.length?s.substr(1,1):s,":before"===e?t.insertBefore(o,t.firstChild):t.appendChild(o)}})})}(),kt=!1,e()}}function Vt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(d){var i=h.documentElement.classList,r=function(t){return i.add(v+"-"+t)},n=function(t){return i.remove(v+"-"+t)},s=Object.keys(Nt),o=["."+Ft+":not(["+y+"])"].concat(s.map(function(t){return"."+t+":not(["+y+"])"})).join(", ");if(0!==o.length){var a=q(t.querySelectorAll(o));if(a.length>0){r("pending"),n("complete");var l=at.begin("onTree"),c=a.reduce(function(t,e){try{var i=Ut(e);i&&t.push(i)}catch(t){b||t instanceof Bt&&console.error(t)}return t},[]);l(),xt(c,function(){r("active"),r("complete"),n("pending"),"function"==typeof e&&e()})}}}}function Kt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=Ut(t);i&&xt([i],e)}var Gt=function(){var t="svg-inline--fa",e=B.familyPrefix,i=B.replacementClass,r='svg:not(:root).svg-inline--fa {\n overflow: visible; }\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -.125em; }\n .svg-inline--fa.fa-lg {\n vertical-align: -.225em; }\n .svg-inline--fa.fa-w-1 {\n width: 0.0625em; }\n .svg-inline--fa.fa-w-2 {\n width: 0.125em; }\n .svg-inline--fa.fa-w-3 {\n width: 0.1875em; }\n .svg-inline--fa.fa-w-4 {\n width: 0.25em; }\n .svg-inline--fa.fa-w-5 {\n width: 0.3125em; }\n .svg-inline--fa.fa-w-6 {\n width: 0.375em; }\n .svg-inline--fa.fa-w-7 {\n width: 0.4375em; }\n .svg-inline--fa.fa-w-8 {\n width: 0.5em; }\n .svg-inline--fa.fa-w-9 {\n width: 0.5625em; }\n .svg-inline--fa.fa-w-10 {\n width: 0.625em; }\n .svg-inline--fa.fa-w-11 {\n width: 0.6875em; }\n .svg-inline--fa.fa-w-12 {\n width: 0.75em; }\n .svg-inline--fa.fa-w-13 {\n width: 0.8125em; }\n .svg-inline--fa.fa-w-14 {\n width: 0.875em; }\n .svg-inline--fa.fa-w-15 {\n width: 0.9375em; }\n .svg-inline--fa.fa-w-16 {\n width: 1em; }\n .svg-inline--fa.fa-w-17 {\n width: 1.0625em; }\n .svg-inline--fa.fa-w-18 {\n width: 1.125em; }\n .svg-inline--fa.fa-w-19 {\n width: 1.1875em; }\n .svg-inline--fa.fa-w-20 {\n width: 1.25em; }\n .svg-inline--fa.fa-pull-left {\n margin-right: .3em;\n width: auto; }\n .svg-inline--fa.fa-pull-right {\n margin-left: .3em;\n width: auto; }\n .svg-inline--fa.fa-border {\n height: 1.5em; }\n .svg-inline--fa.fa-li {\n width: 2em; }\n .svg-inline--fa.fa-fw {\n width: 1.25em; }\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0; }\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -.125em;\n width: 1em; }\n .fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n\n.fa-layers-text, .fa-layers-counter {\n display: inline-block;\n position: absolute;\n text-align: center; }\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: .25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right; }\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right; }\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left; }\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right; }\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left; }\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -.0667em; }\n\n.fa-xs {\n font-size: .75em; }\n\n.fa-sm {\n font-size: .875em; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit; }\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: .1em;\n padding: .2em .25em .15em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none; }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0; }\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1em; }\n\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto; }\n';if("fa"!==e||i!==t){var n=new RegExp("\\.fa\\-","g"),s=new RegExp("\\."+t,"g");r=r.replace(n,"."+e+"-").replace(s,"."+i)}return r};var Zt=function(){function t(){A(this,t),this.definitions={}}return S(t,[{key:"add",value:function(){for(var t=this,e=arguments.length,i=Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},i=e.transform,r=void 0===i?j:i,n=e.symbol,s=void 0!==n&&n,o=e.mask,a=void 0===o?null:o,l=e.title,c=void 0===l?null:l,h=e.classes,u=void 0===h?[]:h,f=e.attributes,p=void 0===f?{}:f,d=e.styles,m=void 0===d?{}:d;if(t){var _=t.prefix,y=t.iconName,g=t.icon;return $t(E({type:"icon"},t),function(){return Jt(),B.autoA11y&&(c?p["aria-labelledby"]=B.replacementClass+"-title-"+U():p["aria-hidden"]="true"),it({icons:{main:Yt(g),mask:a?Yt(a.icon):{found:!1,width:null,height:null,icon:{}}},prefix:_,iconName:y,transform:E({},j,r),symbol:s,title:c,extra:{attributes:p,styles:m,classes:u}})})}},function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(t||{}).icon?t:te(t||{}),r=e.mask;return r&&(r=(r||{}).icon?r:te(r||{})),ee(i,E({},e,{mask:r}))}),ne={noAuto:function(){var t;O({autoReplaceSvg:t=!1,observeMutations:t})},dom:{i2svg:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(d){Jt();var e=t.node,i=void 0===e?h:e,r=t.callback,n=void 0===r?function(){}:r;B.searchPseudoElements&&Xt(i),Vt(i,n)}},css:Gt,insertCss:function(){z(Gt())}},library:ie,parse:{transform:function(t){return Et(t)}},findIconDefinition:te,icon:re,text:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.transform,r=void 0===i?j:i,n=e.title,s=void 0===n?null:n,o=e.classes,a=void 0===o?[]:o,l=e.attributes,c=void 0===l?{}:l,h=e.styles,u=void 0===h?{}:h;return $t({type:"text",content:t},function(){return Jt(),rt({content:t,transform:E({},j,r),title:s,extra:{attributes:c,styles:u,classes:[B.familyPrefix+"-layers-text"].concat(L(a))}})})},layer:function(t){return $t({type:"layer"},function(){Jt();var e=[];return t(function(t){e=Array.isArray(t)?t.map(function(t){e=e.concat(t.abstract)}):e.concat(t.abstract)}),[{tag:"span",attributes:{class:B.familyPrefix+"-layers"},children:e}]})}},se=function(){d&&B.autoReplaceSvg&&ne.dom.i2svg({node:h})};Object.defineProperty(ne,"config",{get:function(){return B},set:function(t){O(t)}}),d&&function(t){try{t()}catch(t){if(!b)throw t}}(function(){p&&(c.FontAwesome||(c.FontAwesome=ne),N(function(){Object.keys(D.styles).length>0&&se(),B.observeMutations&&"function"==typeof MutationObserver&&function(t){if(u){var e=t.treeCallback,i=t.nodeCallback,r=t.pseudoElementsCallback,n=new u(function(t){kt||q(t).forEach(function(t){if("childList"===t.type&&t.addedNodes.length>0&&!Ct(t.addedNodes[0])&&(B.searchPseudoElements&&r(t.target),e(t.target)),"attributes"===t.type&&t.target.parentNode&&B.searchPseudoElements&&r(t.target.parentNode),"attributes"===t.type&&Ct(t.target)&&~x.indexOf(t.attributeName))if("class"===t.attributeName){var n=yt(X(t.target)),s=n.prefix,o=n.iconName;s&&t.target.setAttribute("data-prefix",s),o&&t.target.setAttribute("data-icon",o)}else i(t.target)})});d&&n.observe(h.getElementsByTagName("body")[0],{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}({treeCallback:Vt,nodeCallback:Kt,pseudoElementsCallback:Xt})})),D.hooks=E({},D.hooks,{addPack:function(t,e){D.styles[t]=E({},D.styles[t]||{},e),dt(),se()},addShims:function(t){var e;(e=D.shims).push.apply(e,L(t)),dt(),se()}})});ne.config;e.a=ne}).call(e,i(5))},function(t,e){var i,r,n=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(t){if(i===setTimeout)return setTimeout(t,0);if((i===s||!i)&&setTimeout)return i=setTimeout,setTimeout(t,0);try{return i(t,0)}catch(e){try{return i.call(null,t,0)}catch(e){return i.call(this,t,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:s}catch(t){i=s}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var l,c=[],h=!1,u=-1;function f(){h&&l&&(h=!1,l.length?c=l.concat(c):u=-1,c.length&&p())}function p(){if(!h){var t=a(f);h=!0;for(var e=c.length;e;){for(l=c,c=[];++u1)for(var i=1;i - - Web SSH full - - - - -
- -
-
- - -
-
-
- - - - diff --git a/src/client-min.htm b/src/client-min.htm deleted file mode 100644 index 38aef92..0000000 --- a/src/client-min.htm +++ /dev/null @@ -1,27 +0,0 @@ - - - Web SSH min - - - - -
- -
-
- - -
-
-
- - - - diff --git a/public/client-min.htm b/src/client.htm similarity index 80% rename from public/client-min.htm rename to src/client.htm index 38aef92..82c2760 100644 --- a/public/client-min.htm +++ b/src/client.htm @@ -1,8 +1,10 @@ - Web SSH min + WebSSH2 + -
@@ -21,6 +23,7 @@
+ diff --git a/src/css/style.css b/src/css/style.css index b94bcb6..7c83f42 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -1,11 +1,11 @@ body { - font-family: helvetica, sans-serif, arial; - font-size: 1em; - color: #111; - background-color: rgb(0, 0, 0); - color: rgb(240, 240, 240); - height: 100%; - margin: 0; + font-family: helvetica, sans-serif, arial; + font-size: 1em; + color: #111; + background-color: rgb(0, 0, 0); + color: rgb(240, 240, 240); + height: 100%; + margin: 0; } #header { color: rgb(240, 240, 240); @@ -17,6 +17,8 @@ body { text-align: center; flex: 0 1 auto; z-index: 99; + height:19px; + display: none; } .box { display: block; @@ -24,7 +26,7 @@ body { } #terminal-container { display: block; - width: 100%; + width: calc(100% - 1 px); margin: 0 auto; padding: 2px; height: calc(100% - 19px); @@ -88,13 +90,13 @@ body { display: inline-block; } .dropup-content { - display: none; - position: absolute; - background-color: #f1f1f1; - font-size: 16px; - min-width: 160px; - bottom: 18px; - z-index: 101; + display: none; + position: absolute; + background-color: #f1f1f1; + font-size: 16px; + min-width: 160px; + bottom: 18px; + z-index: 101; } .dropup-content a { color: #777; diff --git a/src/js/index.js b/src/js/index.js index e9a3283..fbcb664 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -63,10 +63,8 @@ if (document.location.pathname) { socket.on('connect', function () { socket.emit('geometry', term.cols, term.rows) - console.log('geometry cols: ' + term.cols + ' rows: ' + term.rows) }) socket.on('setTerminalOpts', function (data) { - console.log('terminalOpts: ' + JSON.stringify(data)) term.setOption('cursorBlink', data.cursorBlink) term.setOption('scrollback', data.scrollback) term.setOption('tabStopWidth', data.tabStopWidth) @@ -85,7 +83,13 @@ socket.on('title', function (data) { }).on('headerBackground', function (data) { document.getElementById('header').style.backgroundColor = data }).on('header', function (data) { - document.getElementById('header').innerHTML = data + if (data) { + document.getElementById('header').innerHTML = data + document.getElementById('header').style.display = 'block' + // header is 19px and footer is 19px, recaculate new terminal-container and resize + document.getElementById('terminal-container').style.height = 'calc(100% - 38px)' + resizeScreen() + } }).on('footer', function (data) { sessionFooter = data document.getElementById('footer').innerHTML = data diff --git a/webpack.common.js b/webpack.common.js index ea56548..e89345c 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -10,8 +10,7 @@ module.exports = { plugins: [ new CleanWebpackPlugin(['./public']), new CopyWebpackPlugin([ - './src/client-full.htm', - './src/client-min.htm', + './src/client.htm', './src/favicon.ico' ]), new ExtractTextPlugin('[name].css') @@ -26,7 +25,14 @@ module.exports = { test: /\.css$/, use: ExtractTextPlugin.extract({ fallback: 'style-loader', - use: 'css-loader' + use: [ + { + loader: 'css-loader', + options: { + minimize: {discardComments: {removeAll: true}} + } + } + ] }) } ] diff --git a/webpack.prod.js b/webpack.prod.js index f84e17f..b4cbf31 100644 --- a/webpack.prod.js +++ b/webpack.prod.js @@ -1,7 +1,17 @@ const merge = require('webpack-merge') -// const UglifyJSPlugin = require('uglifyjs-webpack-plugin') +const UglifyJSPlugin = require('uglifyjs-webpack-plugin') const common = require('./webpack.common.js') module.exports = merge(common, { - + plugins: [ + new UglifyJSPlugin({ + uglifyOptions: { + ie8: false, + output: { + comments: false, + beautify: false + } + } + }) + ] })