{"version":3,"sources":["webpack:///./node_modules/xterm/lib/renderer/CharacterJoinerRegistry.js","webpack:///./node_modules/xterm/lib/common/Clone.js","webpack:///./node_modules/xterm/lib/common/EventEmitter2.js","webpack:///./node_modules/xterm/lib/renderer/dom/DomRendererRowFactory.js","webpack:///./node_modules/xterm/lib/renderer/BaseRenderLayer.js","webpack:///./node_modules/xterm/lib/Clipboard.js","webpack:///./node_modules/xterm/lib/AccessibilityManager.js","webpack:///./node_modules/xterm/lib/renderer/SelectionRenderLayer.js","webpack:///./src/views/Container/ConsoleContainer.vue?36dc","webpack:///./node_modules/xterm/lib/common/Types.js","webpack:///./node_modules/xterm/lib/ui/RenderDebouncer.js","webpack:///./node_modules/xterm/lib/renderer/dom/DomRenderer.js","webpack:///./node_modules/xterm/lib/Buffer.js","webpack:///./node_modules/xterm/lib/ui/Lifecycle.js","webpack:///./node_modules/xterm/lib/renderer/Renderer.js","webpack:///./node_modules/xterm/lib/core/input/Keyboard.js","webpack:///./node_modules/xterm/lib/renderer/atlas/CharAtlasCache.js","webpack:///./src/views/Container/ConsoleContainer.vue?7eee","webpack:///./src/components/container/ConsoleForm.vue?2ce0","webpack:///src/components/container/ConsoleForm.vue","webpack:///./src/components/container/ConsoleForm.vue?c882","webpack:///./src/components/container/ConsoleForm.vue","webpack:///./src/components/container/ConsoleCmd.vue?dbaa","webpack:///src/components/container/ConsoleCmd.vue","webpack:///./src/components/container/ConsoleCmd.vue?c989","webpack:///./src/components/container/ConsoleCmd.vue","webpack:///src/views/Container/ConsoleContainer.vue","webpack:///./src/views/Container/ConsoleContainer.vue?f896","webpack:///./src/views/Container/ConsoleContainer.vue","webpack:///./node_modules/xterm/lib/SoundManager.js","webpack:///./node_modules/xterm/lib/renderer/atlas/DynamicCharAtlas.js","webpack:///./node_modules/xterm/lib/public/Terminal.js","webpack:///./node_modules/xterm/lib/core/buffer/BufferLine.js","webpack:///./src/components/Back.vue?0e21","webpack:///src/components/Back.vue","webpack:///./src/components/Back.vue?ba4f","webpack:///./src/components/Back.vue","webpack:///./node_modules/xterm/lib/core/buffer/BufferReflow.js","webpack:///./node_modules/xterm/lib/common/TypedArrayUtils.js","webpack:///./node_modules/xterm/lib/common/data/EscapeSequences.js","webpack:///./node_modules/xterm/lib/core/input/TextDecoder.js","webpack:///./node_modules/xterm/lib/renderer/atlas/NoneCharAtlas.js","webpack:///./node_modules/xterm/lib/renderer/atlas/BaseCharAtlas.js","webpack:///./node_modules/xterm/lib/Strings.js","webpack:///./node_modules/xterm/lib/common/EventEmitter.js","webpack:///./node_modules/xterm/lib/SelectionManager.js","webpack:///./node_modules/xterm/lib/renderer/RenderCoordinator.js","webpack:///./node_modules/xterm/lib/renderer/atlas/StaticCharAtlas.js","webpack:///./node_modules/xterm/lib/renderer/TextRenderLayer.js","webpack:///./node_modules/xterm/lib/renderer/atlas/CharAtlasUtils.js","webpack:///./node_modules/xterm/lib/ui/ColorManager.js","webpack:///./node_modules/xterm/lib/renderer/CursorRenderLayer.js","webpack:///./node_modules/xterm/lib/renderer/atlas/CharAtlasGenerator.js","webpack:///./node_modules/xterm/lib/CompositionHelper.js","webpack:///./node_modules/xterm/lib/CharWidth.js","webpack:///./node_modules/xterm/lib/core/data/Charsets.js","webpack:///./node_modules/xterm/lib/Terminal.js","webpack:///./node_modules/xterm/lib/handlers/AltClickHandler.js","webpack:///./node_modules/xterm/lib/EscapeSequenceParser.js","webpack:///./node_modules/element-ui/lib/switch.js","webpack:///./node_modules/xterm/lib/renderer/atlas/LRUMap.js","webpack:///./node_modules/xterm/lib/Linkifier.js","webpack:///./node_modules/xterm/lib/core/buffer/Marker.js","webpack:///./node_modules/xterm/lib/public/AddonManager.js","webpack:///./node_modules/xterm/lib/MouseHelper.js","webpack:///./src/components/container/ConsoleCmd.vue?2b5f","webpack:///./node_modules/xterm/lib/MouseZoneManager.js","webpack:///./node_modules/xterm/lib/renderer/atlas/Types.js","webpack:///./node_modules/xterm/lib/common/CircularList.js","webpack:///./node_modules/xterm/lib/SelectionModel.js","webpack:///./node_modules/xterm/lib/renderer/LinkRenderLayer.js","webpack:///./node_modules/xterm/lib/InputHandler.js","webpack:///./node_modules/xterm/lib/common/Lifecycle.js","webpack:///./node_modules/xterm/lib/common/Platform.js","webpack:///./node_modules/xterm/lib/CharMeasure.js","webpack:///./node_modules/xterm/lib/renderer/GridCache.js","webpack:///./node_modules/xterm/lib/BufferSet.js","webpack:///./node_modules/xterm/lib/ui/ScreenDprMonitor.js","webpack:///./node_modules/xterm/lib/WindowsMode.js","webpack:///./node_modules/xterm/lib/Viewport.js"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","defineProperty","exports","value","BufferLine_1","JoinedCellData","_super","firstCell","chars","width","_this","call","content","combinedData","fg","bg","_width","isCombined","getWidth","getChars","getCode","setFromCharData","Error","getAsCharData","AttributeData","CharacterJoinerRegistry","_terminal","_characterJoiners","_nextCharacterJoinerId","_workCell","CellData","registerCharacterJoiner","handler","joiner","id","push","deregisterCharacterJoiner","joinerId","i","length","splice","getJoinedCharacters","row","line","buffer","lines","get","ranges","lineStr","translateToString","rangeStartColumn","currentStringIndex","rangeStartStringIndex","rangeAttrFG","getFg","rangeAttrBG","getBg","x","getTrimmedLength","loadCell","joinedRanges","_getJoinedRanges","WHITESPACE_CELL_CHAR","cols","startIndex","endIndex","lineData","startCol","text","substring","joinerRanges","j","_mergeRanges","_stringRangesToCellRanges","currentRangeIndex","currentRangeStarted","currentRange","length_1","getString","newRange","inRange","range","Math","max","min","clone","val","depth","clonedObject","isArray","key","EventEmitter2","_listeners","_event","listener","disposable","dispose","enumerable","configurable","fire","data","queue","undefined","Types_1","BOLD_CLASS","DIM_CLASS","ITALIC_CLASS","UNDERLINE_CLASS","CURSOR_CLASS","CURSOR_BLINK_CLASS","CURSOR_STYLE_BLOCK_CLASS","CURSOR_STYLE_BAR_CLASS","CURSOR_STYLE_UNDERLINE_CLASS","DomRendererRowFactory","_terminalOptions","_document","createRow","isCursorRow","cursorStyle","cursorX","cursorBlink","cellWidth","fragment","createDocumentFragment","lineLength","NULL_CELL_CODE","charElement","createElement","style","classList","add","isBold","enableBold","isItalic","isDim","isUnderline","textContent","swapColor","isInverse","isFgRGB","getAttribute","toColorRGB","getFgColor","join","setAttribute","isFgPalette","drawBoldTextInBrightColors","INVERTED_DEFAULT_COLOR","isBgRGB","getBgColor","isBgPalette","appendChild","Types_2","CharAtlasCache_1","BaseRenderLayer","_container","zIndex","_alpha","_colors","_scaledCharWidth","_scaledCharHeight","_scaledCellWidth","_scaledCellHeight","_scaledCharLeft","_scaledCharTop","_currentGlyphIdentifier","code","bold","dim","italic","_canvas","document","toString","_initCanvas","removeChild","_charAtlas","_ctx","getContext","alpha","clearAll","onOptionsChanged","terminal","onBlur","onFocus","onCursorMove","onGridChanged","startRow","endRow","onSelectionChanged","start","end","columnSelectMode","setColors","colorSet","_refreshCharAtlas","setTransparency","oldCanvas","cloneNode","replaceChild","rows","acquireCharAtlas","warmUp","resize","scaledCellWidth","scaledCellHeight","scaledCharWidth","scaledCharHeight","scaledCharLeft","scaledCharTop","scaledCanvasWidth","height","scaledCanvasHeight","canvasWidth","canvasHeight","fillCells","y","fillRect","fillBottomLineAtCells","window","devicePixelRatio","fillLeftLineAtCell","strokeRectAtCell","lineWidth","strokeRect","clearRect","fillStyle","background","css","clearCells","fillCharTrueColor","cell","font","_getFont","textBaseline","_clipRow","fillText","drawChars","_drawUncachedChars","isBgDefault","isFgDefault","DEFAULT_COLOR","drawInBrightColor","options","WHITESPACE_CELL_CODE","atlasDidDraw","draw","save","ansi","foreground","globalAlpha","DIM_OPACITY","restore","beginPath","rect","clip","fontWeight","fontWeightBold","fontStyle","fontSize","fontFamily","prepareTextForTerminal","replace","bracketTextForPaste","bracketedPasteMode","copyHandler","ev","term","selectionManager","browser","isMSIE","clipboardData","setData","selectionText","preventDefault","pasteHandler","stopPropagation","dispatchPaste","textarea","emit","cancel","getData","moveTextAreaUnderMouseCursor","pos","screenElement","getBoundingClientRect","left","clientX","top","clientY","position","focus","setTimeout","rightClickHandler","shouldSelectWord","isClickInSelection","selectWordAtCursor","select","Strings","Platform_1","RenderDebouncer_1","Lifecycle_1","Lifecycle_2","ScreenDprMonitor_1","MAX_ROWS_TO_READ","AccessibilityManager","_dimensions","_liveRegionLineCount","_charsToConsume","_charsToAnnounce","_accessibilityTreeRoot","_rowContainer","_rowElements","_createAccessibilityTreeNode","_topBoundaryFocusListener","e","_onBoundaryFocus","_bottomBoundaryFocusListener","addEventListener","_refreshRowsDimensions","_renderRowsDebouncer","RenderDebouncer","_renderRows","bind","_refreshRows","_liveRegion","element","insertAdjacentElement","register","onResize","_onResize","onRender","onScroll","addDisposableListener","char","_onChar","onLineFeed","spaceCount","_onTab","onKey","_onKey","_clearLiveRegion","_screenDprMonitor","ScreenDprMonitor","setListener","addDisposableDomListener","boundaryElement","target","beforeBoundaryElement","posInSet","lastRowPos","relatedTarget","topBoundaryElement","bottomBoundaryElement","pop","shift","removeEventListener","newElement","unshift","scrollLines","stopImmediatePropagation","children","tabIndex","_refreshRowDimensions","shiftedChar","tooMuchOutput","isMac","parentNode","keyChar","refresh","setSize","translateBufferLineToString","ydisp","blankLine","_announceCharacters","actualCellHeight","setDimensions","dimensions","Disposable","BaseRenderLayer_1","SelectionRenderLayer","container","colors","_clearState","_state","reset","_didStateChange","viewportStartRow","viewportEndRow","viewportCappedStartRow","viewportCappedEndRow","selection","startRowEndCol","middleRowsCount","endCol","_areCoordinatesEqual","coord1","coord2","_renderCallback","_animationFrame","cancelAnimationFrame","rowStart","rowEnd","rowCount","_rowCount","_rowStart","_rowEnd","requestAnimationFrame","_innerRefresh","DomRendererRowFactory_1","TERMINAL_CLASS_PREFIX","ROW_CONTAINER_CLASS","FG_CLASS_PREFIX","BG_CLASS_PREFIX","FOCUS_CLASS","SELECTION_CLASS","nextTerminalId","DomRenderer","_terminalClass","lineHeight","_refreshRowElements","_selectionContainer","actualCellWidth","_updateDimensions","_injectCss","_rowFactory","linkifier","onLinkHover","_onLinkHover","onLinkLeave","_onLinkLeave","remove","_themeStyleElement","_dimensionsStyleElement","charMeasure","ceil","round","letterSpacing","floor","forEach","overflow","styles","_terminalSelector","innerHTML","_viewportElement","cursor","cursorAccent","c","onDevicePixelRatioChange","onCharSizeChanged","documentFragment","_createSelectionElement","endCol_1","colStart","colEnd","clear","renderRows","cursorAbsoluteY","ybase","rowElement","_setCellUnderline","x1","x2","y1","y2","enabled","span","textDecoration","CircularList_1","BufferReflow_1","Marker_1","MAX_BUFFER_SIZE","Buffer","_hasScrollback","savedCurAttrData","DEFAULT_ATTR_DATA","markers","_nullCell","fromCharData","NULL_CELL_CHAR","NULL_CELL_WIDTH","_whitespaceCell","WHITESPACE_CELL_WIDTH","_cols","_rows","getNullCell","attr","getWhitespaceCell","getBlankLine","isWrapped","BufferLine","maxLength","absoluteY","relativeY","_getCorrectBufferLength","correctBufferLength","scrollback","fillViewportRows","fillAttr","CircularList","scrollTop","scrollBottom","setupTabStops","newCols","newRows","nullCell","newMaxLength","addToY","amountToTrim","trimStart","savedY","savedX","_isReflowEnabled","_reflow","windowsMode","_reflowLarger","_reflowSmaller","toRemove","reflowLargerGetLinesToRemove","newLayoutResult","reflowLargerCreateNewLayout","reflowLargerApplyNewLayout","layout","_reflowLargerAdjustViewport","countRemoved","viewportAdjustments","toInsert","countToInsert","nextLine","wrappedLines","lastLineLength","destLineLengths","reflowSmallerGetNewLineLengths","linesToAdd","trimmedLines","newLines","newLine","apply","destLineIndex","destCol","srcLineIndex","srcCol","cellsToCopy","copyCellsFrom","wrappedLinesIndex","getWrappedLineTrimmedLength","setCell","insertEvents","originalLines","originalLinesLength","originalLineIndex","nextToInsertIndex","nextToInsert","countInsertedSoFar","nextI","set","index","amount","insertCountEmitted","onInsertEmitter","onTrimEmitter","stringIndexToBufferIndex","lineIndex","stringIndex","trimRight","CHAR_DATA_WIDTH_INDEX","CHAR_DATA_CHAR_INDEX","getWrappedRangeForLine","first","last","tabs","prevStop","tabStopWidth","nextStop","addMarker","marker","Marker","onTrim","onInsert","event","onDelete","onDispose","_removeMarker","indexOf","iterator","startOverscan","endOverscan","BufferStringIterator","_buffer","_trimRight","_startIndex","_endIndex","_startOverscan","_endOverscan","_current","hasNext","next","result","node","type","useCapture","TextRenderLayer_1","SelectionRenderLayer_1","CursorRenderLayer_1","LinkRenderLayer_1","CharacterJoinerRegistry_1","Renderer","allowTransparency","_characterJoinerRegistry","_renderLayers","TextRenderLayer","LinkRenderLayer","CursorRenderLayer","_devicePixelRatio","l","_runOperation","operation","EscapeSequences_1","KEYCODE_KEY_MAPPINGS","48","49","50","51","52","53","54","55","56","57","186","187","188","189","190","191","192","219","220","221","222","evaluateKeyboardEvent","applicationCursorMode","macOptionIsMeta","modifiers","shiftKey","altKey","ctrlKey","metaKey","keyCode","C0","ESC","BS","DEL","HT","CR","US","keyMapping","String","fromCharCode","CharAtlasUtils_1","DynamicCharAtlas_1","NoneCharAtlas_1","StaticCharAtlas_1","charAtlasImplementations","default","charAtlasCache","newConfig","generateConfig","entry","ownedByIndex","ownedBy","configEquals","config","atlas","newEntry","experimentalCharAtlas","removeTerminalFromCache","render","_vm","_h","$createElement","_c","_self","attrs","$t","directives","name","rawName","isShow","expression","staticClass","on","submit","user","websocketBack","_e","staticRenderFns","ref","diyCommand","model","callback","$$v","$set","staticStyle","onSubmit","_v","_s","command","methods","$emit","component","path","str","props","mounted","$route","params","localStorage","getItem","ip","split","socket","ws","close","$router","go","WebSocket","convertEol","xterm","open","getElementById","onerror","showClose","message","onmessage","reader","onload","write","readAsText","onopen","attachCustomKeyEventHandler","arrayBuffer","beforeDestroy","components","Back","ConsoleForm","ConsoleCmd","DEFAULT_BELL_SOUND","SoundManager","_audioContext","audioContextCtor","AudioContext","webkitAudioContext","console","warn","playBellSound","ctx","audioContext","bellAudioSource","createBufferSource","decodeAudioData","_base64ToArrayBuffer","_removeMimeType","bellSound","connect","destination","base64","binaryString","atob","len","bytes","Uint8Array","charCodeAt","dataURI","splitUri","BaseCharAtlas_1","ColorManager_1","CharAtlasGenerator_1","LRUMap_1","TEXTURE_WIDTH","TEXTURE_HEIGHT","TRANSPARENT_COLOR","rgba","FRAME_CACHE_DRAW_LIMIT","GLYPH_BITMAP_COMMIT_DELAY","getGlyphCacheKey","glyph","DynamicCharAtlas","_config","_drawToCacheCount","_glyphsWaitingOnBitmap","_bitmapCommitTimeout","_bitmap","_cacheCanvas","_cacheCtx","tmpCanvas","_tmpCtx","_height","capacity","_cacheMap","prealloc","clearTimeout","beginFrame","_canCache","glyphKey","cacheValue","_drawFromCache","size","peek","cacheValue_1","_drawToCache","_toCoordinateX","_toCoordinateY","isEmpty","cacheX","cacheY","drawImage","inBitmap","_getColorFromAnsiIndex","idx","DEFAULT_ANSI_COLORS","_getBackgroundColor","_getForegroundColor","backgroundColor","globalCompositeOperation","imageData","getImageData","clearColor","putImageData","_addGlyphToBitmap","isFirefox","isSafari","_generateBitmap","glyphsMovingToBitmap","createImageBitmap","then","bitmap","Terminal_1","AddonManager_1","Terminal","_core","_addonManager","AddonManager","onSelectionChange","onData","onTitleChange","BufferApiView","blur","off","columns","writeln","parent","customKeyEventHandler","addCsiHandler","flag","addOscHandler","ident","registerLinkMatcher","regex","deregisterLinkMatcher","matcherId","cursorYOffset","hasSelection","column","getSelection","getSelectionPosition","clearSelection","selectAll","selectLines","destroy","scrollPages","pageCount","scrollToTop","scrollToBottom","scrollToLine","writeUtf8","getOption","setOption","applyAddon","addon","loadAddon","getLine","BufferLineApiView","_line","getCell","BufferCellApiView","startColumn","endColumn","_x","TextDecoder_1","DEFAULT_ATTR","CHAR_DATA_ATTR_INDEX","CHAR_DATA_CODE_INDEX","CELL_SIZE","fromColorRGB","newObj","isBlink","isInvisible","getFgColorMode","getBgColorMode","freeze","arguments","obj","stringFromCodePoint","combined","second","fillCellData","_combined","_data","Uint32Array","cp","hasWidth","hasContent","getCodePoint","setCellFromCodePoint","codePoint","addCodepointToCell","insertCells","n","deleteCells","replaceCells","subarray","keys","parseInt","fill","copyFrom","el","src","applyInReverse","srcData","srcCombinedKeys","title","goBack","oldCols","bufferAbsoluteY","srcTrimmedTineLength","srcRemainingCells","destRemainingCells","countToRemove","i_1","nextToRemoveIndex","nextToRemoveStart","countRemovedSoFar","onDeleteEmitter","newLayout","newLayoutLines","newLineLengths","cellsNeeded","map","reduce","srcLine","cellsAvailable","oldTrimmedLength","endsWithWide","endsInNull","followingLineStartsWithWide","array","fillFallback","concat","a","NUL","SOH","STX","ETX","EOT","ENQ","ACK","BEL","LF","VT","FF","SO","SI","DLE","DC1","DC2","DC3","DC4","NAK","SYN","ETB","CAN","EM","SUB","FS","GS","RS","SP","C1","PAD","HOP","BPH","NBH","IND","NEL","SSA","ESA","HTS","HTJ","VTS","PLD","PLU","RI","SS2","SS3","DCS","PU1","PU2","STS","CCH","MW","SPA","EPA","SOS","SGCI","SCI","CSI","ST","OSC","PM","APC","utf32ToString","codepoint","StringToUtf32","_interim","decode","input","startPos","Utf8ToUtf32","interim","byte1","byte2","byte3","byte4","discardInterim","tmp","missing","fourStop","NoneCharAtlas","BaseCharAtlas","_didWarmUp","_doWarmUp","promptLabel","EventEmitter","_events","disposed","removeAllListeners","args","_i","emitMayRemoveListeners","listeners","MouseHelper_1","Browser","SelectionModel_1","AltClickHandler_1","EventEmitter2_1","DRAG_SCROLL_MAX_THRESHOLD","DRAG_SCROLL_MAX_SPEED","DRAG_SCROLL_INTERVAL","ALT_CLICK_MOVE_CURSOR_TIME","WORD_SEPARATORS","NON_BREAKING_SPACE_CHAR","ALL_NON_BREAKING_SPACE_REGEX","RegExp","SelectionManager","_charMeasure","_enabled","_onLinuxMouseSelection","_onRedrawRequest","_onSelectionChange","_initListeners","enable","_model","SelectionModel","_activeSelectionMode","_removeMouseDownListeners","buffers","active","_mouseMoveListener","_onMouseMove","_mouseUpListener","_onMouseUp","initBuffersListeners","_trimListener","_onTrim","onBufferActivate","_onBufferActivate","disable","finalSelectionStart","finalSelectionEnd","lineText","bufferLine","formattedResult","isMSWindows","isLinuxMouseSelection","_refreshAnimationFrame","_refresh","isLinux","coords","_getMouseBufferCoords","_areCoordsInSelection","_selectWordAt","selectionEnd","isSelectAllActive","selectionStart","needsRefresh","mouseHelper","getCoords","_getMouseEventScrollAmount","offset","MouseHelper","getCoordsRelativeToElement","terminalHeight","abs","shouldForceSelection","macOptionClickForcesSelection","onMouseDown","_mouseDownTimeStamp","timeStamp","button","_dragScrollAmount","_onIncrementalClick","detail","_onSingleClick","_onDoubleClick","_onTripleClick","_addMouseDownListeners","ownerDocument","_dragScrollIntervalTimer","setInterval","_dragScroll","clearInterval","selectionStartLength","shouldColumnSelect","_selectLineAt","previousSelectionEnd","_selectToWordAt","timeElapsed","AltClickHandler","move","activeBuffer","_convertViewportColToCharacterIndex","charIndex","setSelection","col","_getWordAt","allowWhitespaceOnlySelection","followWrappedLinesAbove","followWrappedLinesBelow","charOffset","leftWideCharCount","rightWideCharCount","leftLongCharOffset","rightLongCharOffset","charAt","length_2","_isCharWordSeparator","length_3","length_4","slice","trim","previousBufferLine","previousLineWordPosition","nextBufferLine","nextLineWordPosition","wordPosition","areSelectionValuesReversed","wrappedRange","RenderCoordinator","_renderer","_isPaused","_needsFullRefresh","_canvasWidth","_canvasHeight","_onDimensionsChange","_onRender","_onRefreshRequest","_renderDebouncer","observer_1","IntersectionObserver","_onIntersectionChange","threshold","observe","disconnect","intersectionRatio","refreshRows","_fireOnCanvasResize","changeOptions","setRenderer","renderer","_fullRefresh","StaticCharAtlas","_canvasFactory","canvas","generateStaticCharAtlasTexture","HTMLCanvasElement","_texture","texture","_isCached","colorIndex","isAscii","isBasicColor","isDefaultColor","isDefaultBackground","is256Color","charAtlasCellWidth","CHAR_ATLAS_CELL_SPACING","charAtlasCellHeight","GridCache_1","characterJoinerRegistry","_characterOverlapCache","GridCache","terminalFont","_characterWidth","_characterFont","_forEachCell","firstRow","lastRow","joinerRegistry","isJoined","lastCharX","_isOverlapping","_drawBackground","startX","startY","prevFillStyle","nextFillStyle","_drawForeground","cache","overlaps","measureText","clonedColors","colorCode","DEFAULT_FOREGROUND","fromHex","DEFAULT_BACKGROUND","DEFAULT_CURSOR","DEFAULT_CURSOR_ACCENT","DEFAULT_SELECTION","toPaddedHex","s","v","r","g","ch","ColorManager","_litmusColor","createLinearGradient","setTheme","theme","_parseColor","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","fallback","BLINK_INTERVAL","_cell","isFocused","_cursorRenderers","_renderBarCursor","_renderBlockCursor","_renderUnderlineCursor","_clearCursor","_cursorBlinkStateManager","pause","resume","CursorBlinkStateManager","_render","restartBlinkAnimation","isPaused","triggeredByAnimationFrame","cursorState","cursorHidden","cursorY","viewportRelativeCursorY","_renderBlurCursor","isCursorVisible","strokeStyle","_restartInterval","_blinkStartTimeout","_blinkInterval","_animationTimeRestarted","Date","now","timeToStart","time","context","canvasFactory","cellHeight","getFont","charAtlasImageData","color","CompositionHelper","_textarea","_compositionView","_isComposing","_isSendingComposition","_compositionPosition","compositionstart","compositionupdate","updateCompositionElements","compositionend","_finalizeComposition","keydown","_handleAnyTextareaChanges","waitForPropagation","_clearTextareaPosition","currentCompositionPosition_1","oldValue","newValue","diff","dontRecurse","isCursorInViewport","cursorTop","cursorLeft","compositionViewBounds","TypedArrayUtils_1","getStringCellWidth","wcwidth","opts","COMBINING_BMP","COMBINING_HIGH","bisearch","ucs","mid","wcwidthHigh","control","table","nul","num","CHARSETS","DEFAULT_CHARSET","BufferSet_1","Buffer_1","CompositionHelper_1","EventEmitter_1","Viewport_1","Clipboard_1","InputHandler_1","Renderer_1","Linkifier_1","SelectionManager_1","CharMeasure_1","SoundManager_1","MouseZoneManager_1","AccessibilityManager_1","DomRenderer_1","Keyboard_1","Clone_1","WindowsMode_1","RenderCoordinator_1","WRITE_BUFFER_PAUSE_THRESHOLD","WRITE_TIMEOUT_MS","WRITE_BUFFER_LENGTH_THRESHOLD","MINIMUM_COLS","MINIMUM_ROWS","CONSTRUCTOR_ONLY_OPTIONS","DEFAULT_OPTIONS","termName","bellStyle","screenKeys","screenReaderMode","debug","cancelEvents","disableStdin","useFlowControl","rightClickSelectsWord","rendererType","_blankLine","_onCursorMove","_onData","_onLineFeed","_onScroll","_onTitleChange","_setup","domEvent","_windowsMode","_customKeyEventHandler","_parent","body","applicationKeypad","applicationCursor","originMode","insertMode","wraparoundMode","charset","gcharset","glevel","charsets","curAttrData","_eraseAttrData","currentParam","writeBuffer","writeBufferUtf8","_writeInProgress","_xoffSentToCatchUp","_userScrolling","_inputHandler","InputHandler","Linkifier","_mouseZoneManager","soundManager","BufferSet","applyWindowsMode","eraseAttrData","preventScroll","activeElement","hasFocus","error","_setTheme","newBufferLength","_renderCoordinator","measure","_createRenderer","viewport","syncScrollArea","_accessibilityManager","_onTextAreaFocus","sendFocus","updateCursorStyle","showCursor","_onTextAreaBlur","_initGlobal","_bindKeys","pasteHandlerWrapper","self","_keyDown","_keyPress","wasModifierKeyOnlyEvent","_keyUp","_compositionHelper","_queueLinkification","_context","defaultView","dir","_viewportScrollArea","_helperContainer","MouseZoneManager","attachToDom","CharMeasure","_theme","_colorManager","Viewport","onThemeChange","onDimensionsChange","onRedrawRequest","onLinuxMouseSelection","toggle","mouseEvents","bindMouse","pressed","sendButton","getButton","getRawByteCoords","sendEvent","overrideType","sendMove","encode","utfMouse","_vt300Mouse","data_1","_decLocator","page","urxvtMouse","sgrMouse","meta","ctrl","mod","which","deltaY","vt200Mouse","normalMouse","moveHandler","x10Mouse","hasScrollback","getLinesScrolled","sequence","onWheel","onTouchStart","onTouchMove","linkifyRows","scroll","eraseAttr","topRow","bottomRow","willBufferBeTrimmed","isFull","recycle","scrollRegionHeight","shiftElements","updateRange","disp","suppressScrollEvent","oldYdisp","scrollAmount","_isDisposed","_innerWriteUtf8","bufferOffset","startTime","_refreshStart","_refreshEnd","parseUtf8","_innerWrite","parse","normal","scrollCount","_isThirdLevelShift","thirdLevelKey","setgLevel","setgCharset","charCode","bell","_soundBell","_visualBell","_visualBellTimer","log","isNaN","maxRange","is","handleTitle","reverseIndex","inputHandler","writeInProgress","xoffSentToCatchUp","userScrolling","tabSet","force","_mouseEvent","_a","_lines","_startCol","_startRow","coordinates","coordinate","_endCol","_endRow","_arrowSequences","_moveHorizontallyOnly","_resetStartingRow","_moveToRequestedRow","_moveToRequestedCol","repeat","_bufferLine","_wrappedRowsForRow","_sequence","rowsToMove","_wrappedRowsCount","_verticalDirection","direction","_horizontalDirection","wrappedRows","currentRow","lineWraps","forward","currentCol","bufferStr","count","rpt","low","high","arr","TransitionTable","state","action","addMany","codes","PRINTABLES","EXECUTABLES","NON_ASCII_PRINTABLE","VT500_TRANSITION_TABLE","states","DcsDummy","hook","collect","put","unhook","EscapeSequenceParser","TRANSITIONS","initialState","currentState","_osc","_params","_collect","_printHandlerFb","_executeHandlerFb","_csiHandlerFb","_escHandlerFb","_oscHandlerFb","identifier","_dcsHandlerFb","_errorHandlerFb","_printHandler","_executeHandlers","_csiHandlers","_escHandlers","_oscHandlers","_dcsHandlers","_activeDcsHandler","_errorHandler","setEscHandler","setPrintHandler","clearPrintHandler","setExecuteHandler","clearExecuteHandler","setExecuteHandlerFallback","handlerList","handlerIndex","setCsiHandler","clearCsiHandler","setCsiHandlerFallback","collectAndFlag","clearEscHandler","setEscHandlerFallback","setOscHandler","clearOscHandler","setOscHandlerFallback","setDcsHandler","clearDcsHandler","setDcsHandlerFallback","setErrorHandler","clearErrorHandler","transition","print","dcs","osc","dcsHandler","inject","abort","handlers","j_1","handlers_1","j_2","module","modules","installedModules","__webpack_require__","moduleId","m","getter","o","Symbol","toStringTag","t","mode","__esModule","ns","object","property","0","__webpack_exports__","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","11","22","4","88","class","switchDisabled","checked","role","click","$event","switchValue","activeValue","inactiveValue","disabled","change","handleChange","_k","inactiveIconClass","inactiveText","coreWidth","activeIconClass","activeText","_withStripped","emitter_","emitter_default","focus_","focus_default","migrating_","migrating_default","componentvue_type_script_lang_js_","mixins","elForm","Boolean","Number","activeColor","inactiveColor","validateEvent","created","computed","watch","$refs","setBackgroundColor","dispatch","$nextTick","newColor","core","borderColor","getMigratingConfig","src_componentvue_type_script_lang_js_","componentNormalizer","__file","src_component","install","Vue","LRUMap","_map","_head","_tail","_nodePool","_unlinkNode","prev","_appendNode","tail","nodePool","peekValue","head","CharWidth_1","_linkMatchers","_nextLinkMatcherId","_onLinkTooltip","_rowsToLinkify","mouseZoneManager","_rowsTimeoutId","_linkifyRows","TIME_BEFORE_LINKIFY","absoluteRowIndexStart","absoluteRowIndexEnd","overscanLineLimit","OVERSCAN_CHAR_LIMIT","_doLinkifyRow","matcher","matchIndex","validationCallback","hoverTooltipCallback","tooltipCallback","hoverLeaveCallback","leaveCallback","willLinkActivate","priority","_addLinkMatcherToList","rowIndex","match","rex","source","flags","_loop_1","uri","this_1","lastIndex","bufferIndex","isValid","_addLink","exec","state_1","MouseZone","_createLinkHoverEvent","_id","_nextId","isDisposed","_onDispose","_addons","instance","loadedAddon","_wrappedAddonDispose","activate","colCount","isSelection","HOVER_DURATION","_zones","_areZonesActive","_tooltipTimeout","_currentZone","_lastHoverCoords","_onMouseDown","_mouseLeaveListener","_onMouseLeave","_clickListener","_onClick","_deactivate","zone","_activate","pageX","pageY","_onHover","_findZoneEventAt","hoverCallback","_onTooltip","_initialSelectionLength","currentSelectionLength","clickCallback","_maxLength","_array","_length","newArray","_getCyclicIndex","newLength","deleteCount","items","countToTrim","expandListBy","startPlusLength","_clearCurrentLink","middleRowCount","Charsets_1","EscapeSequenceParser_1","GLEVEL","DECRQSS","pt","STYLES","_parser","_parseBuffer","_stringDecoder","_utf8Decoder","insertChars","cursorUp","cursorDown","cursorForward","cursorBackward","cursorNextLine","cursorPrecedingLine","cursorCharAbsolute","cursorPosition","cursorForwardTab","eraseInDisplay","eraseInLine","insertLines","deleteLines","deleteChars","scrollUp","scrollDown","eraseChars","cursorBackwardTab","charPosAbsolute","hPositionRelative","repeatPrecedingCharacter","sendDeviceAttributes","linePosAbsolute","vPositionRelative","hVPosition","tabClear","setMode","resetMode","charAttributes","deviceStatus","softReset","setCursorStyle","setScrollRegion","saveCursor","restoreCursor","lineFeed","carriageReturn","backspace","tab","shiftOut","shiftIn","setTitle","keypadApplicationMode","keypadNumericMode","selectDefaultCharset","selectCharset","cursorStartX","cursorStartY","chWidth","curAttr","bufferRow","originalX","param","_eraseInBufferLine","clearWrap","_resetBufferLine","scrollBackSize","scrollBottomRowsOffset","scrollBottomAbsolute","savedCols","activateAltBuffer","activateNormalBuffer","isBlinking","level","_disposables","unregister","isNode","navigator","userAgent","platform","contains","test","isIpad","isIphone","parentElement","_onCharSizeChanged","_parentElement","_measureElement","geometry","adjustedHeight","_normal","_alt","_activeBuffer","inactiveBuffer","_currentDevicePixelRatio","_listener","clearListener","_outerListener","_updateDpr","_resolutionMediaMatchList","removeListener","matchMedia","addListener","lastChar","FALLBACK_SCROLL_BAR_WIDTH","_scrollArea","scrollBarWidth","_currentRowHeight","_lastRecordedBufferLength","_lastRecordedViewportHeight","_lastRecordedBufferHeight","_lastScrollTop","_wheelPartialScroll","_ignoreNextScrollEvent","offsetWidth","onDimensionsChance","offsetHeight","newBufferHeight","newScrollTop","offsetParent","newRow","_getPixelsScrolled","deltaMode","WheelEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","_lastTouchY","touches"],"mappings":"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KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ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","file":"js/ConsoleContainer.b66ecebe.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferLine_1 = require(\"../core/buffer/BufferLine\");\nvar JoinedCellData = (function (_super) {\n __extends(JoinedCellData, _super);\n function JoinedCellData(firstCell, chars, width) {\n var _this = _super.call(this) || this;\n _this.content = 0;\n _this.combinedData = '';\n _this.fg = firstCell.fg;\n _this.bg = firstCell.bg;\n _this.combinedData = chars;\n _this._width = width;\n return _this;\n }\n JoinedCellData.prototype.isCombined = function () {\n return 2097152;\n };\n JoinedCellData.prototype.getWidth = function () {\n return this._width;\n };\n JoinedCellData.prototype.getChars = function () {\n return this.combinedData;\n };\n JoinedCellData.prototype.getCode = function () {\n return 0x1FFFFF;\n };\n JoinedCellData.prototype.setFromCharData = function (value) {\n throw new Error('not implemented');\n };\n JoinedCellData.prototype.getAsCharData = function () {\n return [this.fg, this.getChars(), this.getWidth(), this.getCode()];\n };\n return JoinedCellData;\n}(BufferLine_1.AttributeData));\nexports.JoinedCellData = JoinedCellData;\nvar CharacterJoinerRegistry = (function () {\n function CharacterJoinerRegistry(_terminal) {\n this._terminal = _terminal;\n this._characterJoiners = [];\n this._nextCharacterJoinerId = 0;\n this._workCell = new BufferLine_1.CellData();\n }\n CharacterJoinerRegistry.prototype.registerCharacterJoiner = function (handler) {\n var joiner = {\n id: this._nextCharacterJoinerId++,\n handler: handler\n };\n this._characterJoiners.push(joiner);\n return joiner.id;\n };\n CharacterJoinerRegistry.prototype.deregisterCharacterJoiner = function (joinerId) {\n for (var i = 0; i < this._characterJoiners.length; i++) {\n if (this._characterJoiners[i].id === joinerId) {\n this._characterJoiners.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n CharacterJoinerRegistry.prototype.getJoinedCharacters = function (row) {\n if (this._characterJoiners.length === 0) {\n return [];\n }\n var line = this._terminal.buffer.lines.get(row);\n if (line.length === 0) {\n return [];\n }\n var ranges = [];\n var lineStr = line.translateToString(true);\n var rangeStartColumn = 0;\n var currentStringIndex = 0;\n var rangeStartStringIndex = 0;\n var rangeAttrFG = line.getFg(0);\n var rangeAttrBG = line.getBg(0);\n for (var x = 0; x < line.getTrimmedLength(); x++) {\n line.loadCell(x, this._workCell);\n if (this._workCell.getWidth() === 0) {\n continue;\n }\n if (this._workCell.fg !== rangeAttrFG || this._workCell.bg !== rangeAttrBG) {\n if (x - rangeStartColumn > 1) {\n var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);\n for (var i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n rangeStartColumn = x;\n rangeStartStringIndex = currentStringIndex;\n rangeAttrFG = this._workCell.fg;\n rangeAttrBG = this._workCell.bg;\n }\n currentStringIndex += this._workCell.getChars().length || BufferLine_1.WHITESPACE_CELL_CHAR.length;\n }\n if (this._terminal.cols - rangeStartColumn > 1) {\n var joinedRanges = this._getJoinedRanges(lineStr, rangeStartStringIndex, currentStringIndex, line, rangeStartColumn);\n for (var i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n return ranges;\n };\n CharacterJoinerRegistry.prototype._getJoinedRanges = function (line, startIndex, endIndex, lineData, startCol) {\n var text = line.substring(startIndex, endIndex);\n var joinedRanges = this._characterJoiners[0].handler(text);\n for (var i = 1; i < this._characterJoiners.length; i++) {\n var joinerRanges = this._characterJoiners[i].handler(text);\n for (var j = 0; j < joinerRanges.length; j++) {\n CharacterJoinerRegistry._mergeRanges(joinedRanges, joinerRanges[j]);\n }\n }\n this._stringRangesToCellRanges(joinedRanges, lineData, startCol);\n return joinedRanges;\n };\n CharacterJoinerRegistry.prototype._stringRangesToCellRanges = function (ranges, line, startCol) {\n var currentRangeIndex = 0;\n var currentRangeStarted = false;\n var currentStringIndex = 0;\n var currentRange = ranges[currentRangeIndex];\n if (!currentRange) {\n return;\n }\n for (var x = startCol; x < this._terminal.cols; x++) {\n var width = line.getWidth(x);\n var length_1 = line.getString(x).length || BufferLine_1.WHITESPACE_CELL_CHAR.length;\n if (width === 0) {\n continue;\n }\n if (!currentRangeStarted && currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n if (currentRange[1] <= currentStringIndex) {\n currentRange[1] = x;\n currentRange = ranges[++currentRangeIndex];\n if (!currentRange) {\n break;\n }\n if (currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n else {\n currentRangeStarted = false;\n }\n }\n currentStringIndex += length_1;\n }\n if (currentRange) {\n currentRange[1] = this._terminal.cols;\n }\n };\n CharacterJoinerRegistry._mergeRanges = function (ranges, newRange) {\n var inRange = false;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!inRange) {\n if (newRange[1] <= range[0]) {\n ranges.splice(i, 0, newRange);\n return ranges;\n }\n if (newRange[1] <= range[1]) {\n range[0] = Math.min(newRange[0], range[0]);\n return ranges;\n }\n if (newRange[0] < range[1]) {\n range[0] = Math.min(newRange[0], range[0]);\n inRange = true;\n }\n continue;\n }\n else {\n if (newRange[1] <= range[0]) {\n ranges[i - 1][1] = newRange[1];\n return ranges;\n }\n if (newRange[1] <= range[1]) {\n ranges[i - 1][1] = Math.max(newRange[1], range[1]);\n ranges.splice(i, 1);\n inRange = false;\n return ranges;\n }\n ranges.splice(i, 1);\n i--;\n }\n }\n if (inRange) {\n ranges[ranges.length - 1][1] = newRange[1];\n }\n else {\n ranges.push(newRange);\n }\n return ranges;\n };\n return CharacterJoinerRegistry;\n}());\nexports.CharacterJoinerRegistry = CharacterJoinerRegistry;\n//# sourceMappingURL=CharacterJoinerRegistry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction clone(val, depth) {\n if (depth === void 0) { depth = 5; }\n if (typeof val !== 'object') {\n return val;\n }\n if (val === null) {\n return null;\n }\n var clonedObject = Array.isArray(val) ? [] : {};\n for (var key in val) {\n clonedObject[key] = depth <= 1 ? val[key] : clone(val[key], depth - 1);\n }\n return clonedObject;\n}\nexports.clone = clone;\n//# sourceMappingURL=Clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter2 = (function () {\n function EventEmitter2() {\n this._listeners = [];\n }\n Object.defineProperty(EventEmitter2.prototype, \"event\", {\n get: function () {\n var _this = this;\n if (!this._event) {\n this._event = function (listener) {\n _this._listeners.push(listener);\n var disposable = {\n dispose: function () {\n for (var i = 0; i < _this._listeners.length; i++) {\n if (_this._listeners[i] === listener) {\n _this._listeners.splice(i, 1);\n return;\n }\n }\n }\n };\n return disposable;\n };\n }\n return this._event;\n },\n enumerable: true,\n configurable: true\n });\n EventEmitter2.prototype.fire = function (data) {\n var queue = [];\n for (var i = 0; i < this._listeners.length; i++) {\n queue.push(this._listeners[i]);\n }\n for (var i = 0; i < queue.length; i++) {\n queue[i].call(undefined, data);\n }\n };\n return EventEmitter2;\n}());\nexports.EventEmitter2 = EventEmitter2;\n//# sourceMappingURL=EventEmitter2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"../atlas/Types\");\nvar BufferLine_1 = require(\"../../core/buffer/BufferLine\");\nexports.BOLD_CLASS = 'xterm-bold';\nexports.DIM_CLASS = 'xterm-dim';\nexports.ITALIC_CLASS = 'xterm-italic';\nexports.UNDERLINE_CLASS = 'xterm-underline';\nexports.CURSOR_CLASS = 'xterm-cursor';\nexports.CURSOR_BLINK_CLASS = 'xterm-cursor-blink';\nexports.CURSOR_STYLE_BLOCK_CLASS = 'xterm-cursor-block';\nexports.CURSOR_STYLE_BAR_CLASS = 'xterm-cursor-bar';\nexports.CURSOR_STYLE_UNDERLINE_CLASS = 'xterm-cursor-underline';\nvar DomRendererRowFactory = (function () {\n function DomRendererRowFactory(_terminalOptions, _document) {\n this._terminalOptions = _terminalOptions;\n this._document = _document;\n this._workCell = new BufferLine_1.CellData();\n }\n DomRendererRowFactory.prototype.createRow = function (lineData, isCursorRow, cursorStyle, cursorX, cursorBlink, cellWidth, cols) {\n var fragment = this._document.createDocumentFragment();\n var lineLength = 0;\n for (var x = Math.min(lineData.length, cols) - 1; x >= 0; x--) {\n if (lineData.loadCell(x, this._workCell).getCode() !== BufferLine_1.NULL_CELL_CODE || (isCursorRow && x === cursorX)) {\n lineLength = x + 1;\n break;\n }\n }\n for (var x = 0; x < lineLength; x++) {\n lineData.loadCell(x, this._workCell);\n var width = this._workCell.getWidth();\n if (width === 0) {\n continue;\n }\n var charElement = this._document.createElement('span');\n if (width > 1) {\n charElement.style.width = cellWidth * width + \"px\";\n }\n if (isCursorRow && x === cursorX) {\n charElement.classList.add(exports.CURSOR_CLASS);\n if (cursorBlink) {\n charElement.classList.add(exports.CURSOR_BLINK_CLASS);\n }\n switch (cursorStyle) {\n case 'bar':\n charElement.classList.add(exports.CURSOR_STYLE_BAR_CLASS);\n break;\n case 'underline':\n charElement.classList.add(exports.CURSOR_STYLE_UNDERLINE_CLASS);\n break;\n default:\n charElement.classList.add(exports.CURSOR_STYLE_BLOCK_CLASS);\n break;\n }\n }\n if (this._workCell.isBold() && this._terminalOptions.enableBold) {\n charElement.classList.add(exports.BOLD_CLASS);\n }\n if (this._workCell.isItalic()) {\n charElement.classList.add(exports.ITALIC_CLASS);\n }\n if (this._workCell.isDim()) {\n charElement.classList.add(exports.DIM_CLASS);\n }\n if (this._workCell.isUnderline()) {\n charElement.classList.add(exports.UNDERLINE_CLASS);\n }\n charElement.textContent = this._workCell.getChars() || BufferLine_1.WHITESPACE_CELL_CHAR;\n var swapColor = this._workCell.isInverse();\n if (this._workCell.isFgRGB()) {\n var style = charElement.getAttribute('style') || '';\n style += (swapColor ? 'background-' : '') + \"color:rgb(\" + (BufferLine_1.AttributeData.toColorRGB(this._workCell.getFgColor())).join(',') + \");\";\n charElement.setAttribute('style', style);\n }\n else if (this._workCell.isFgPalette()) {\n var fg = this._workCell.getFgColor();\n if (this._workCell.isBold() && fg < 8 && !swapColor &&\n this._terminalOptions.enableBold && this._terminalOptions.drawBoldTextInBrightColors) {\n fg += 8;\n }\n charElement.classList.add(\"xterm-\" + (swapColor ? 'b' : 'f') + \"g-\" + fg);\n }\n else if (swapColor) {\n charElement.classList.add(\"xterm-bg-\" + Types_1.INVERTED_DEFAULT_COLOR);\n }\n if (this._workCell.isBgRGB()) {\n var style = charElement.getAttribute('style') || '';\n style += (swapColor ? '' : 'background-') + \"color:rgb(\" + (BufferLine_1.AttributeData.toColorRGB(this._workCell.getBgColor())).join(',') + \");\";\n charElement.setAttribute('style', style);\n }\n else if (this._workCell.isBgPalette()) {\n charElement.classList.add(\"xterm-\" + (swapColor ? 'f' : 'b') + \"g-\" + this._workCell.getBgColor());\n }\n else if (swapColor) {\n charElement.classList.add(\"xterm-fg-\" + Types_1.INVERTED_DEFAULT_COLOR);\n }\n fragment.appendChild(charElement);\n }\n return fragment;\n };\n return DomRendererRowFactory;\n}());\nexports.DomRendererRowFactory = DomRendererRowFactory;\n//# sourceMappingURL=DomRendererRowFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"../common/Types\");\nvar Types_2 = require(\"./atlas/Types\");\nvar CharAtlasCache_1 = require(\"./atlas/CharAtlasCache\");\nvar BufferLine_1 = require(\"../core/buffer/BufferLine\");\nvar BaseRenderLayer = (function () {\n function BaseRenderLayer(_container, id, zIndex, _alpha, _colors) {\n this._container = _container;\n this._alpha = _alpha;\n this._colors = _colors;\n this._scaledCharWidth = 0;\n this._scaledCharHeight = 0;\n this._scaledCellWidth = 0;\n this._scaledCellHeight = 0;\n this._scaledCharLeft = 0;\n this._scaledCharTop = 0;\n this._currentGlyphIdentifier = {\n chars: '',\n code: 0,\n bg: 0,\n fg: 0,\n bold: false,\n dim: false,\n italic: false\n };\n this._canvas = document.createElement('canvas');\n this._canvas.classList.add(\"xterm-\" + id + \"-layer\");\n this._canvas.style.zIndex = zIndex.toString();\n this._initCanvas();\n this._container.appendChild(this._canvas);\n }\n BaseRenderLayer.prototype.dispose = function () {\n this._container.removeChild(this._canvas);\n if (this._charAtlas) {\n this._charAtlas.dispose();\n }\n };\n BaseRenderLayer.prototype._initCanvas = function () {\n this._ctx = this._canvas.getContext('2d', { alpha: this._alpha });\n if (!this._alpha) {\n this.clearAll();\n }\n };\n BaseRenderLayer.prototype.onOptionsChanged = function (terminal) { };\n BaseRenderLayer.prototype.onBlur = function (terminal) { };\n BaseRenderLayer.prototype.onFocus = function (terminal) { };\n BaseRenderLayer.prototype.onCursorMove = function (terminal) { };\n BaseRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) { };\n BaseRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {\n if (columnSelectMode === void 0) { columnSelectMode = false; }\n };\n BaseRenderLayer.prototype.setColors = function (terminal, colorSet) {\n this._refreshCharAtlas(terminal, colorSet);\n };\n BaseRenderLayer.prototype.setTransparency = function (terminal, alpha) {\n if (alpha === this._alpha) {\n return;\n }\n var oldCanvas = this._canvas;\n this._alpha = alpha;\n this._canvas = this._canvas.cloneNode();\n this._initCanvas();\n this._container.replaceChild(this._canvas, oldCanvas);\n this._refreshCharAtlas(terminal, this._colors);\n this.onGridChanged(terminal, 0, terminal.rows - 1);\n };\n BaseRenderLayer.prototype._refreshCharAtlas = function (terminal, colorSet) {\n if (this._scaledCharWidth <= 0 && this._scaledCharHeight <= 0) {\n return;\n }\n this._charAtlas = CharAtlasCache_1.acquireCharAtlas(terminal, colorSet, this._scaledCharWidth, this._scaledCharHeight);\n this._charAtlas.warmUp();\n };\n BaseRenderLayer.prototype.resize = function (terminal, dim) {\n this._scaledCellWidth = dim.scaledCellWidth;\n this._scaledCellHeight = dim.scaledCellHeight;\n this._scaledCharWidth = dim.scaledCharWidth;\n this._scaledCharHeight = dim.scaledCharHeight;\n this._scaledCharLeft = dim.scaledCharLeft;\n this._scaledCharTop = dim.scaledCharTop;\n this._canvas.width = dim.scaledCanvasWidth;\n this._canvas.height = dim.scaledCanvasHeight;\n this._canvas.style.width = dim.canvasWidth + \"px\";\n this._canvas.style.height = dim.canvasHeight + \"px\";\n if (!this._alpha) {\n this.clearAll();\n }\n this._refreshCharAtlas(terminal, this._colors);\n };\n BaseRenderLayer.prototype.fillCells = function (x, y, width, height) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.fillBottomLineAtCells = function (x, y, width) {\n if (width === void 0) { width = 1; }\n this._ctx.fillRect(x * this._scaledCellWidth, (y + 1) * this._scaledCellHeight - window.devicePixelRatio - 1, width * this._scaledCellWidth, window.devicePixelRatio);\n };\n BaseRenderLayer.prototype.fillLeftLineAtCell = function (x, y) {\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, window.devicePixelRatio, this._scaledCellHeight);\n };\n BaseRenderLayer.prototype.strokeRectAtCell = function (x, y, width, height) {\n this._ctx.lineWidth = window.devicePixelRatio;\n 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);\n };\n BaseRenderLayer.prototype.clearAll = function () {\n if (this._alpha) {\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n }\n else {\n this._ctx.fillStyle = this._colors.background.css;\n this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\n }\n };\n BaseRenderLayer.prototype.clearCells = function (x, y, width, height) {\n if (this._alpha) {\n this._ctx.clearRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n else {\n this._ctx.fillStyle = this._colors.background.css;\n this._ctx.fillRect(x * this._scaledCellWidth, y * this._scaledCellHeight, width * this._scaledCellWidth, height * this._scaledCellHeight);\n }\n };\n BaseRenderLayer.prototype.fillCharTrueColor = function (terminal, cell, x, y) {\n this._ctx.font = this._getFont(terminal, false, false);\n this._ctx.textBaseline = 'middle';\n this._clipRow(terminal, y);\n this._ctx.fillText(cell.getChars(), x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop + this._scaledCharHeight / 2);\n };\n BaseRenderLayer.prototype.drawChars = function (terminal, cell, x, y) {\n if (cell.isFgRGB() || cell.isBgRGB()) {\n this._drawUncachedChars(terminal, cell, x, y);\n return;\n }\n var fg;\n var bg;\n if (cell.isInverse()) {\n fg = (cell.isBgDefault()) ? Types_2.INVERTED_DEFAULT_COLOR : cell.getBgColor();\n bg = (cell.isFgDefault()) ? Types_2.INVERTED_DEFAULT_COLOR : cell.getFgColor();\n }\n else {\n bg = (cell.isBgDefault()) ? Types_1.DEFAULT_COLOR : cell.getBgColor();\n fg = (cell.isFgDefault()) ? Types_1.DEFAULT_COLOR : cell.getFgColor();\n }\n var drawInBrightColor = terminal.options.drawBoldTextInBrightColors && cell.isBold() && fg < 8 && fg !== Types_2.INVERTED_DEFAULT_COLOR;\n fg += drawInBrightColor ? 8 : 0;\n this._currentGlyphIdentifier.chars = cell.getChars() || BufferLine_1.WHITESPACE_CELL_CHAR;\n this._currentGlyphIdentifier.code = cell.getCode() || BufferLine_1.WHITESPACE_CELL_CODE;\n this._currentGlyphIdentifier.bg = bg;\n this._currentGlyphIdentifier.fg = fg;\n this._currentGlyphIdentifier.bold = cell.isBold() && terminal.options.enableBold;\n this._currentGlyphIdentifier.dim = !!cell.isDim();\n this._currentGlyphIdentifier.italic = !!cell.isItalic();\n var atlasDidDraw = this._charAtlas && this._charAtlas.draw(this._ctx, this._currentGlyphIdentifier, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n if (!atlasDidDraw) {\n this._drawUncachedChars(terminal, cell, x, y);\n }\n };\n BaseRenderLayer.prototype._drawUncachedChars = function (terminal, cell, x, y) {\n this._ctx.save();\n this._ctx.font = this._getFont(terminal, cell.isBold() && terminal.options.enableBold, !!cell.isItalic());\n this._ctx.textBaseline = 'middle';\n if (cell.isInverse()) {\n if (cell.isBgDefault()) {\n this._ctx.fillStyle = this._colors.background.css;\n }\n else if (cell.isBgRGB()) {\n this._ctx.fillStyle = \"rgb(\" + BufferLine_1.AttributeData.toColorRGB(cell.getBgColor()).join(',') + \")\";\n }\n else {\n this._ctx.fillStyle = this._colors.ansi[cell.getBgColor()].css;\n }\n }\n else {\n if (cell.isFgDefault()) {\n this._ctx.fillStyle = this._colors.foreground.css;\n }\n else if (cell.isFgRGB()) {\n this._ctx.fillStyle = \"rgb(\" + BufferLine_1.AttributeData.toColorRGB(cell.getFgColor()).join(',') + \")\";\n }\n else {\n var fg = cell.getFgColor();\n if (terminal.options.drawBoldTextInBrightColors && cell.isBold() && fg < 8) {\n fg += 8;\n }\n this._ctx.fillStyle = this._colors.ansi[fg].css;\n }\n }\n this._clipRow(terminal, y);\n if (cell.isDim()) {\n this._ctx.globalAlpha = Types_2.DIM_OPACITY;\n }\n this._ctx.fillText(cell.getChars(), x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop + this._scaledCharHeight / 2);\n this._ctx.restore();\n };\n BaseRenderLayer.prototype._clipRow = function (terminal, y) {\n this._ctx.beginPath();\n this._ctx.rect(0, y * this._scaledCellHeight, terminal.cols * this._scaledCellWidth, this._scaledCellHeight);\n this._ctx.clip();\n };\n BaseRenderLayer.prototype._getFont = function (terminal, isBold, isItalic) {\n var fontWeight = isBold ? terminal.options.fontWeightBold : terminal.options.fontWeight;\n var fontStyle = isItalic ? 'italic' : '';\n return fontStyle + \" \" + fontWeight + \" \" + terminal.options.fontSize * window.devicePixelRatio + \"px \" + terminal.options.fontFamily;\n };\n return BaseRenderLayer;\n}());\nexports.BaseRenderLayer = BaseRenderLayer;\n//# sourceMappingURL=BaseRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction prepareTextForTerminal(text) {\n return text.replace(/\\r?\\n/g, '\\r');\n}\nexports.prepareTextForTerminal = prepareTextForTerminal;\nfunction bracketTextForPaste(text, bracketedPasteMode) {\n if (bracketedPasteMode) {\n return '\\x1b[200~' + text + '\\x1b[201~';\n }\n return text;\n}\nexports.bracketTextForPaste = bracketTextForPaste;\nfunction copyHandler(ev, term, selectionManager) {\n if (term.browser.isMSIE) {\n window.clipboardData.setData('Text', selectionManager.selectionText);\n }\n else {\n ev.clipboardData.setData('text/plain', selectionManager.selectionText);\n }\n ev.preventDefault();\n}\nexports.copyHandler = copyHandler;\nfunction pasteHandler(ev, term) {\n ev.stopPropagation();\n var text;\n var dispatchPaste = function (text) {\n text = prepareTextForTerminal(text);\n text = bracketTextForPaste(text, term.bracketedPasteMode);\n term.handler(text);\n term.textarea.value = '';\n term.emit('paste', text);\n term.cancel(ev);\n };\n if (term.browser.isMSIE) {\n if (window.clipboardData) {\n text = window.clipboardData.getData('Text');\n dispatchPaste(text);\n }\n }\n else {\n if (ev.clipboardData) {\n text = ev.clipboardData.getData('text/plain');\n dispatchPaste(text);\n }\n }\n}\nexports.pasteHandler = pasteHandler;\nfunction moveTextAreaUnderMouseCursor(ev, term) {\n var pos = term.screenElement.getBoundingClientRect();\n var left = ev.clientX - pos.left - 10;\n var top = ev.clientY - pos.top - 10;\n term.textarea.style.position = 'absolute';\n term.textarea.style.width = '20px';\n term.textarea.style.height = '20px';\n term.textarea.style.left = left + \"px\";\n term.textarea.style.top = top + \"px\";\n term.textarea.style.zIndex = '1000';\n term.textarea.focus();\n setTimeout(function () {\n term.textarea.style.position = null;\n term.textarea.style.width = null;\n term.textarea.style.height = null;\n term.textarea.style.left = null;\n term.textarea.style.top = null;\n term.textarea.style.zIndex = null;\n }, 200);\n}\nexports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor;\nfunction rightClickHandler(ev, term, selectionManager, shouldSelectWord) {\n moveTextAreaUnderMouseCursor(ev, term);\n if (shouldSelectWord && !selectionManager.isClickInSelection(ev)) {\n selectionManager.selectWordAtCursor(ev);\n }\n term.textarea.value = selectionManager.selectionText;\n term.textarea.select();\n}\nexports.rightClickHandler = rightClickHandler;\n//# sourceMappingURL=Clipboard.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Strings = require(\"./Strings\");\nvar Platform_1 = require(\"./common/Platform\");\nvar RenderDebouncer_1 = require(\"./ui/RenderDebouncer\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Lifecycle_2 = require(\"./common/Lifecycle\");\nvar ScreenDprMonitor_1 = require(\"./ui/ScreenDprMonitor\");\nvar MAX_ROWS_TO_READ = 20;\nvar AccessibilityManager = (function (_super) {\n __extends(AccessibilityManager, _super);\n function AccessibilityManager(_terminal, _dimensions) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._dimensions = _dimensions;\n _this._liveRegionLineCount = 0;\n _this._charsToConsume = [];\n _this._charsToAnnounce = '';\n _this._accessibilityTreeRoot = document.createElement('div');\n _this._accessibilityTreeRoot.classList.add('xterm-accessibility');\n _this._rowContainer = document.createElement('div');\n _this._rowContainer.classList.add('xterm-accessibility-tree');\n _this._rowElements = [];\n for (var i = 0; i < _this._terminal.rows; i++) {\n _this._rowElements[i] = _this._createAccessibilityTreeNode();\n _this._rowContainer.appendChild(_this._rowElements[i]);\n }\n _this._topBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 0); };\n _this._bottomBoundaryFocusListener = function (e) { return _this._onBoundaryFocus(e, 1); };\n _this._rowElements[0].addEventListener('focus', _this._topBoundaryFocusListener);\n _this._rowElements[_this._rowElements.length - 1].addEventListener('focus', _this._bottomBoundaryFocusListener);\n _this._refreshRowsDimensions();\n _this._accessibilityTreeRoot.appendChild(_this._rowContainer);\n _this._renderRowsDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._renderRows.bind(_this));\n _this._refreshRows();\n _this._liveRegion = document.createElement('div');\n _this._liveRegion.classList.add('live-region');\n _this._liveRegion.setAttribute('aria-live', 'assertive');\n _this._accessibilityTreeRoot.appendChild(_this._liveRegion);\n _this._terminal.element.insertAdjacentElement('afterbegin', _this._accessibilityTreeRoot);\n _this.register(_this._renderRowsDebouncer);\n _this.register(_this._terminal.onResize(function (e) { return _this._onResize(e.rows); }));\n _this.register(_this._terminal.onRender(function (e) { return _this._refreshRows(e.start, e.end); }));\n _this.register(_this._terminal.onScroll(function () { return _this._refreshRows(); }));\n _this.register(_this._terminal.addDisposableListener('a11y.char', function (char) { return _this._onChar(char); }));\n _this.register(_this._terminal.onLineFeed(function () { return _this._onChar('\\n'); }));\n _this.register(_this._terminal.addDisposableListener('a11y.tab', function (spaceCount) { return _this._onTab(spaceCount); }));\n _this.register(_this._terminal.onKey(function (e) { return _this._onKey(e.key); }));\n _this.register(_this._terminal.addDisposableListener('blur', function () { return _this._clearLiveRegion(); }));\n _this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n _this.register(_this._screenDprMonitor);\n _this._screenDprMonitor.setListener(function () { return _this._refreshRowsDimensions(); });\n _this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this._refreshRowsDimensions(); }));\n return _this;\n }\n AccessibilityManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._terminal.element.removeChild(this._accessibilityTreeRoot);\n this._rowElements.length = 0;\n };\n AccessibilityManager.prototype._onBoundaryFocus = function (e, position) {\n var boundaryElement = e.target;\n var beforeBoundaryElement = this._rowElements[position === 0 ? 1 : this._rowElements.length - 2];\n var posInSet = boundaryElement.getAttribute('aria-posinset');\n var lastRowPos = position === 0 ? '1' : \"\" + this._terminal.buffer.lines.length;\n if (posInSet === lastRowPos) {\n return;\n }\n if (e.relatedTarget !== beforeBoundaryElement) {\n return;\n }\n var topBoundaryElement;\n var bottomBoundaryElement;\n if (position === 0) {\n topBoundaryElement = boundaryElement;\n bottomBoundaryElement = this._rowElements.pop();\n this._rowContainer.removeChild(bottomBoundaryElement);\n }\n else {\n topBoundaryElement = this._rowElements.shift();\n bottomBoundaryElement = boundaryElement;\n this._rowContainer.removeChild(topBoundaryElement);\n }\n topBoundaryElement.removeEventListener('focus', this._topBoundaryFocusListener);\n bottomBoundaryElement.removeEventListener('focus', this._bottomBoundaryFocusListener);\n if (position === 0) {\n var newElement = this._createAccessibilityTreeNode();\n this._rowElements.unshift(newElement);\n this._rowContainer.insertAdjacentElement('afterbegin', newElement);\n }\n else {\n var newElement = this._createAccessibilityTreeNode();\n this._rowElements.push(newElement);\n this._rowContainer.appendChild(newElement);\n }\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n this._terminal.scrollLines(position === 0 ? -1 : 1);\n this._rowElements[position === 0 ? 1 : this._rowElements.length - 2].focus();\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n AccessibilityManager.prototype._onResize = function (rows) {\n this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener);\n for (var i = this._rowContainer.children.length; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop());\n }\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n this._refreshRowsDimensions();\n };\n AccessibilityManager.prototype._createAccessibilityTreeNode = function () {\n var element = document.createElement('div');\n element.setAttribute('role', 'listitem');\n element.tabIndex = -1;\n this._refreshRowDimensions(element);\n return element;\n };\n AccessibilityManager.prototype._onTab = function (spaceCount) {\n for (var i = 0; i < spaceCount; i++) {\n this._onChar(' ');\n }\n };\n AccessibilityManager.prototype._onChar = function (char) {\n var _this = this;\n if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {\n if (this._charsToConsume.length > 0) {\n var shiftedChar = this._charsToConsume.shift();\n if (shiftedChar !== char) {\n this._charsToAnnounce += char;\n }\n }\n else {\n this._charsToAnnounce += char;\n }\n if (char === '\\n') {\n this._liveRegionLineCount++;\n if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {\n this._liveRegion.textContent += Strings.tooMuchOutput;\n }\n }\n if (Platform_1.isMac) {\n if (this._liveRegion.textContent && this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) {\n setTimeout(function () {\n _this._accessibilityTreeRoot.appendChild(_this._liveRegion);\n }, 0);\n }\n }\n }\n };\n AccessibilityManager.prototype._clearLiveRegion = function () {\n this._liveRegion.textContent = '';\n this._liveRegionLineCount = 0;\n if (Platform_1.isMac) {\n if (this._liveRegion.parentNode) {\n this._accessibilityTreeRoot.removeChild(this._liveRegion);\n }\n }\n };\n AccessibilityManager.prototype._onKey = function (keyChar) {\n this._clearLiveRegion();\n this._charsToConsume.push(keyChar);\n };\n AccessibilityManager.prototype._refreshRows = function (start, end) {\n this._renderRowsDebouncer.refresh(start, end, this._terminal.rows);\n };\n AccessibilityManager.prototype._renderRows = function (start, end) {\n var buffer = this._terminal.buffer;\n var setSize = buffer.lines.length.toString();\n for (var i = start; i <= end; i++) {\n var lineData = buffer.translateBufferLineToString(buffer.ydisp + i, true);\n var posInSet = (buffer.ydisp + i + 1).toString();\n var element = this._rowElements[i];\n if (element) {\n element.textContent = lineData.length === 0 ? Strings.blankLine : lineData;\n element.setAttribute('aria-posinset', posInSet);\n element.setAttribute('aria-setsize', setSize);\n }\n }\n this._announceCharacters();\n };\n AccessibilityManager.prototype._refreshRowsDimensions = function () {\n if (!this._dimensions.actualCellHeight) {\n return;\n }\n if (this._rowElements.length !== this._terminal.rows) {\n this._onResize(this._terminal.rows);\n }\n for (var i = 0; i < this._terminal.rows; i++) {\n this._refreshRowDimensions(this._rowElements[i]);\n }\n };\n AccessibilityManager.prototype.setDimensions = function (dimensions) {\n this._dimensions = dimensions;\n this._refreshRowsDimensions();\n };\n AccessibilityManager.prototype._refreshRowDimensions = function (element) {\n element.style.height = this._dimensions.actualCellHeight + \"px\";\n };\n AccessibilityManager.prototype._announceCharacters = function () {\n if (this._charsToAnnounce.length === 0) {\n return;\n }\n this._liveRegion.textContent += this._charsToAnnounce;\n this._charsToAnnounce = '';\n };\n return AccessibilityManager;\n}(Lifecycle_2.Disposable));\nexports.AccessibilityManager = AccessibilityManager;\n//# sourceMappingURL=AccessibilityManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar SelectionRenderLayer = (function (_super) {\n __extends(SelectionRenderLayer, _super);\n function SelectionRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'selection', zIndex, true, colors) || this;\n _this._clearState();\n return _this;\n }\n SelectionRenderLayer.prototype._clearState = function () {\n this._state = {\n start: null,\n end: null,\n columnSelectMode: null,\n ydisp: null\n };\n };\n SelectionRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._clearState();\n };\n SelectionRenderLayer.prototype.reset = function (terminal) {\n if (this._state.start && this._state.end) {\n this._clearState();\n this.clearAll();\n }\n };\n SelectionRenderLayer.prototype.onSelectionChanged = function (terminal, start, end, columnSelectMode) {\n if (!this._didStateChange(start, end, columnSelectMode, terminal.buffer.ydisp)) {\n return;\n }\n this.clearAll();\n if (!start || !end) {\n this._clearState();\n return;\n }\n var viewportStartRow = start[1] - terminal.buffer.ydisp;\n var viewportEndRow = end[1] - terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1);\n if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n this._ctx.fillStyle = this._colors.selection.css;\n if (columnSelectMode) {\n var startCol = start[0];\n var width = end[0] - startCol;\n var height = viewportCappedEndRow - viewportCappedStartRow + 1;\n this.fillCells(startCol, viewportCappedStartRow, width, height);\n }\n else {\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var startRowEndCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(startCol, viewportCappedStartRow, startRowEndCol - startCol, 1);\n var middleRowsCount = Math.max(viewportCappedEndRow - viewportCappedStartRow - 1, 0);\n this.fillCells(0, viewportCappedStartRow + 1, terminal.cols, middleRowsCount);\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol = viewportEndRow === viewportCappedEndRow ? end[0] : terminal.cols;\n this.fillCells(0, viewportCappedEndRow, endCol, 1);\n }\n }\n this._state.start = [start[0], start[1]];\n this._state.end = [end[0], end[1]];\n this._state.columnSelectMode = columnSelectMode;\n this._state.ydisp = terminal.buffer.ydisp;\n };\n SelectionRenderLayer.prototype._didStateChange = function (start, end, columnSelectMode, ydisp) {\n return !this._areCoordinatesEqual(start, this._state.start) ||\n !this._areCoordinatesEqual(end, this._state.end) ||\n columnSelectMode !== this._state.columnSelectMode ||\n ydisp !== this._state.ydisp;\n };\n SelectionRenderLayer.prototype._areCoordinatesEqual = function (coord1, coord2) {\n if (!coord1 || !coord2) {\n return false;\n }\n return coord1[0] === coord2[0] && coord1[1] === coord2[1];\n };\n return SelectionRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.SelectionRenderLayer = SelectionRenderLayer;\n//# sourceMappingURL=SelectionRenderLayer.js.map","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleContainer.vue?vue&type=style&index=0&id=38b8735f&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleContainer.vue?vue&type=style&index=0&id=38b8735f&lang=scss&scoped=true&\"","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_COLOR = 256;\n//# sourceMappingURL=Types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RenderDebouncer = (function () {\n function RenderDebouncer(_renderCallback) {\n this._renderCallback = _renderCallback;\n }\n RenderDebouncer.prototype.dispose = function () {\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = undefined;\n }\n };\n RenderDebouncer.prototype.refresh = function (rowStart, rowEnd, rowCount) {\n var _this = this;\n this._rowCount = rowCount;\n rowStart = rowStart !== undefined ? rowStart : 0;\n rowEnd = rowEnd !== undefined ? rowEnd : this._rowCount - 1;\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n if (this._animationFrame) {\n return;\n }\n this._animationFrame = window.requestAnimationFrame(function () { return _this._innerRefresh(); });\n };\n RenderDebouncer.prototype._innerRefresh = function () {\n if (this._rowStart === undefined || this._rowEnd === undefined || this._rowCount === undefined) {\n return;\n }\n this._rowStart = Math.max(this._rowStart, 0);\n this._rowEnd = Math.min(this._rowEnd, this._rowCount - 1);\n this._renderCallback(this._rowStart, this._rowEnd);\n this._rowStart = undefined;\n this._rowEnd = undefined;\n this._animationFrame = undefined;\n };\n return RenderDebouncer;\n}());\nexports.RenderDebouncer = RenderDebouncer;\n//# sourceMappingURL=RenderDebouncer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DomRendererRowFactory_1 = require(\"./DomRendererRowFactory\");\nvar Types_1 = require(\"../atlas/Types\");\nvar Lifecycle_1 = require(\"../../common/Lifecycle\");\nvar TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';\nvar ROW_CONTAINER_CLASS = 'xterm-rows';\nvar FG_CLASS_PREFIX = 'xterm-fg-';\nvar BG_CLASS_PREFIX = 'xterm-bg-';\nvar FOCUS_CLASS = 'xterm-focus';\nvar SELECTION_CLASS = 'xterm-selection';\nvar nextTerminalId = 1;\nvar DomRenderer = (function (_super) {\n __extends(DomRenderer, _super);\n function DomRenderer(_terminal, _colors) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._colors = _colors;\n _this._terminalClass = nextTerminalId++;\n _this._rowElements = [];\n _this._rowContainer = document.createElement('div');\n _this._rowContainer.classList.add(ROW_CONTAINER_CLASS);\n _this._rowContainer.style.lineHeight = 'normal';\n _this._rowContainer.setAttribute('aria-hidden', 'true');\n _this._refreshRowElements(_this._terminal.cols, _this._terminal.rows);\n _this._selectionContainer = document.createElement('div');\n _this._selectionContainer.classList.add(SELECTION_CLASS);\n _this._selectionContainer.setAttribute('aria-hidden', 'true');\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._updateDimensions();\n _this._injectCss();\n _this._rowFactory = new DomRendererRowFactory_1.DomRendererRowFactory(_terminal.options, document);\n _this._terminal.element.classList.add(TERMINAL_CLASS_PREFIX + _this._terminalClass);\n _this._terminal.screenElement.appendChild(_this._rowContainer);\n _this._terminal.screenElement.appendChild(_this._selectionContainer);\n _this._terminal.linkifier.onLinkHover(function (e) { return _this._onLinkHover(e); });\n _this._terminal.linkifier.onLinkLeave(function (e) { return _this._onLinkLeave(e); });\n return _this;\n }\n DomRenderer.prototype.dispose = function () {\n this._terminal.element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);\n this._terminal.screenElement.removeChild(this._rowContainer);\n this._terminal.screenElement.removeChild(this._selectionContainer);\n this._terminal.screenElement.removeChild(this._themeStyleElement);\n this._terminal.screenElement.removeChild(this._dimensionsStyleElement);\n _super.prototype.dispose.call(this);\n };\n DomRenderer.prototype._updateDimensions = function () {\n var _this = this;\n this.dimensions.scaledCharWidth = this._terminal.charMeasure.width * window.devicePixelRatio;\n this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);\n this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);\n this.dimensions.scaledCharLeft = 0;\n this.dimensions.scaledCharTop = 0;\n this.dimensions.scaledCanvasWidth = this.dimensions.scaledCellWidth * this._terminal.cols;\n this.dimensions.scaledCanvasHeight = this.dimensions.scaledCellHeight * this._terminal.rows;\n this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);\n this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);\n this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;\n this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;\n this._rowElements.forEach(function (element) {\n element.style.width = _this.dimensions.canvasWidth + \"px\";\n element.style.height = _this.dimensions.actualCellHeight + \"px\";\n element.style.lineHeight = _this.dimensions.actualCellHeight + \"px\";\n element.style.overflow = 'hidden';\n });\n if (!this._dimensionsStyleElement) {\n this._dimensionsStyleElement = document.createElement('style');\n this._terminal.screenElement.appendChild(this._dimensionsStyleElement);\n }\n var styles = this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \" span {\" +\n \" display: inline-block;\" +\n \" height: 100%;\" +\n \" vertical-align: top;\" +\n (\" width: \" + this.dimensions.actualCellWidth + \"px\") +\n \"}\";\n this._dimensionsStyleElement.innerHTML = styles;\n this._selectionContainer.style.height = this._terminal._viewportElement.style.height;\n this._terminal.screenElement.style.width = this.dimensions.canvasWidth + \"px\";\n this._terminal.screenElement.style.height = this.dimensions.canvasHeight + \"px\";\n };\n DomRenderer.prototype.setColors = function (colors) {\n this._colors = colors;\n this._injectCss();\n };\n DomRenderer.prototype._injectCss = function () {\n var _this = this;\n if (!this._themeStyleElement) {\n this._themeStyleElement = document.createElement('style');\n this._terminal.screenElement.appendChild(this._themeStyleElement);\n }\n var styles = this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \" {\" +\n (\" color: \" + this._colors.foreground.css + \";\") +\n (\" background-color: \" + this._colors.background.css + \";\") +\n (\" font-family: \" + this._terminal.options.fontFamily + \";\") +\n (\" font-size: \" + this._terminal.options.fontSize + \"px;\") +\n \"}\";\n styles +=\n this._terminalSelector + \" span:not(.\" + DomRendererRowFactory_1.BOLD_CLASS + \") {\" +\n (\" font-weight: \" + this._terminal.options.fontWeight + \";\") +\n \"}\" +\n (this._terminalSelector + \" span.\" + DomRendererRowFactory_1.BOLD_CLASS + \" {\") +\n (\" font-weight: \" + this._terminal.options.fontWeightBold + \";\") +\n \"}\" +\n (this._terminalSelector + \" span.\" + DomRendererRowFactory_1.ITALIC_CLASS + \" {\") +\n \" font-style: italic;\" +\n \"}\";\n styles +=\n \"@keyframes blink {\" +\n \" 0% { opacity: 1.0; }\" +\n \" 50% { opacity: 0.0; }\" +\n \" 100% { opacity: 1.0; }\" +\n \"}\";\n styles +=\n this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \":not(.\" + FOCUS_CLASS + \") .\" + DomRendererRowFactory_1.CURSOR_CLASS + \" {\" +\n (\" outline: 1px solid \" + this._colors.cursor.css + \";\") +\n \" outline-offset: -1px;\" +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \".\" + DomRendererRowFactory_1.CURSOR_BLINK_CLASS + \" {\") +\n \" animation: blink 1s step-end infinite;\" +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \".\" + DomRendererRowFactory_1.CURSOR_STYLE_BLOCK_CLASS + \" {\") +\n (\" background-color: \" + this._colors.cursor.css + \";\") +\n (\" color: \" + this._colors.cursorAccent.css + \";\") +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \".\" + DomRendererRowFactory_1.CURSOR_STYLE_BAR_CLASS + \" {\") +\n (\" box-shadow: 1px 0 0 \" + this._colors.cursor.css + \" inset;\") +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \".\" + DomRendererRowFactory_1.CURSOR_STYLE_UNDERLINE_CLASS + \" {\") +\n (\" box-shadow: 0 -1px 0 \" + this._colors.cursor.css + \" inset;\") +\n \"}\";\n styles +=\n this._terminalSelector + \" .\" + SELECTION_CLASS + \" {\" +\n \" position: absolute;\" +\n \" top: 0;\" +\n \" left: 0;\" +\n \" z-index: 1;\" +\n \" pointer-events: none;\" +\n \"}\" +\n (this._terminalSelector + \" .\" + SELECTION_CLASS + \" div {\") +\n \" position: absolute;\" +\n (\" background-color: \" + this._colors.selection.css + \";\") +\n \"}\";\n this._colors.ansi.forEach(function (c, i) {\n styles +=\n _this._terminalSelector + \" .\" + FG_CLASS_PREFIX + i + \" { color: \" + c.css + \"; }\" +\n (_this._terminalSelector + \" .\" + BG_CLASS_PREFIX + i + \" { background-color: \" + c.css + \"; }\");\n });\n styles +=\n this._terminalSelector + \" .\" + FG_CLASS_PREFIX + Types_1.INVERTED_DEFAULT_COLOR + \" { color: \" + this._colors.background.css + \"; }\" +\n (this._terminalSelector + \" .\" + BG_CLASS_PREFIX + Types_1.INVERTED_DEFAULT_COLOR + \" { background-color: \" + this._colors.foreground.css + \"; }\");\n this._themeStyleElement.innerHTML = styles;\n };\n DomRenderer.prototype.onDevicePixelRatioChange = function () {\n this._updateDimensions();\n };\n DomRenderer.prototype._refreshRowElements = function (cols, rows) {\n for (var i = this._rowElements.length; i <= rows; i++) {\n var row = document.createElement('div');\n this._rowContainer.appendChild(row);\n this._rowElements.push(row);\n }\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop());\n }\n };\n DomRenderer.prototype.onResize = function (cols, rows) {\n this._refreshRowElements(cols, rows);\n this._updateDimensions();\n };\n DomRenderer.prototype.onCharSizeChanged = function () {\n this._updateDimensions();\n };\n DomRenderer.prototype.onBlur = function () {\n this._rowContainer.classList.remove(FOCUS_CLASS);\n };\n DomRenderer.prototype.onFocus = function () {\n this._rowContainer.classList.add(FOCUS_CLASS);\n };\n DomRenderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n while (this._selectionContainer.children.length) {\n this._selectionContainer.removeChild(this._selectionContainer.children[0]);\n }\n if (!start || !end) {\n return;\n }\n var viewportStartRow = start[1] - this._terminal.buffer.ydisp;\n var viewportEndRow = end[1] - this._terminal.buffer.ydisp;\n var viewportCappedStartRow = Math.max(viewportStartRow, 0);\n var viewportCappedEndRow = Math.min(viewportEndRow, this._terminal.rows - 1);\n if (viewportCappedStartRow >= this._terminal.rows || viewportCappedEndRow < 0) {\n return;\n }\n var documentFragment = document.createDocumentFragment();\n if (columnSelectMode) {\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, start[0], end[0], viewportCappedEndRow - viewportCappedStartRow + 1));\n }\n else {\n var startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n var endCol = viewportCappedStartRow === viewportCappedEndRow ? end[0] : this._terminal.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, startCol, endCol));\n var middleRowsCount = viewportCappedEndRow - viewportCappedStartRow - 1;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow + 1, 0, this._terminal.cols, middleRowsCount));\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n var endCol_1 = viewportEndRow === viewportCappedEndRow ? end[0] : this._terminal.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedEndRow, 0, endCol_1));\n }\n }\n this._selectionContainer.appendChild(documentFragment);\n };\n DomRenderer.prototype._createSelectionElement = function (row, colStart, colEnd, rowCount) {\n if (rowCount === void 0) { rowCount = 1; }\n var element = document.createElement('div');\n element.style.height = rowCount * this.dimensions.actualCellHeight + \"px\";\n element.style.top = row * this.dimensions.actualCellHeight + \"px\";\n element.style.left = colStart * this.dimensions.actualCellWidth + \"px\";\n element.style.width = this.dimensions.actualCellWidth * (colEnd - colStart) + \"px\";\n return element;\n };\n DomRenderer.prototype.onCursorMove = function () {\n };\n DomRenderer.prototype.onOptionsChanged = function () {\n this._updateDimensions();\n this._injectCss();\n this._terminal.refresh(0, this._terminal.rows - 1);\n };\n DomRenderer.prototype.clear = function () {\n this._rowElements.forEach(function (e) { return e.innerHTML = ''; });\n };\n DomRenderer.prototype.renderRows = function (start, end) {\n var terminal = this._terminal;\n var cursorAbsoluteY = terminal.buffer.ybase + terminal.buffer.y;\n var cursorX = this._terminal.buffer.x;\n var cursorBlink = this._terminal.options.cursorBlink;\n for (var y = start; y <= end; y++) {\n var rowElement = this._rowElements[y];\n rowElement.innerHTML = '';\n var row = y + terminal.buffer.ydisp;\n var lineData = terminal.buffer.lines.get(row);\n var cursorStyle = terminal.options.cursorStyle;\n rowElement.appendChild(this._rowFactory.createRow(lineData, row === cursorAbsoluteY, cursorStyle, cursorX, cursorBlink, this.dimensions.actualCellWidth, terminal.cols));\n }\n };\n Object.defineProperty(DomRenderer.prototype, \"_terminalSelector\", {\n get: function () {\n return \".\" + TERMINAL_CLASS_PREFIX + this._terminalClass;\n },\n enumerable: true,\n configurable: true\n });\n DomRenderer.prototype.registerCharacterJoiner = function (handler) { return -1; };\n DomRenderer.prototype.deregisterCharacterJoiner = function (joinerId) { return false; };\n DomRenderer.prototype._onLinkHover = function (e) {\n this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, true);\n };\n DomRenderer.prototype._onLinkLeave = function (e) {\n this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, false);\n };\n DomRenderer.prototype._setCellUnderline = function (x, x2, y, y2, cols, enabled) {\n while (x !== x2 || y !== y2) {\n var row = this._rowElements[y];\n if (!row) {\n return;\n }\n var span = row.children[x];\n if (span) {\n span.style.textDecoration = enabled ? 'underline' : 'none';\n }\n if (++x >= cols) {\n x = 0;\n y++;\n }\n }\n };\n return DomRenderer;\n}(Lifecycle_1.Disposable));\nexports.DomRenderer = DomRenderer;\n//# sourceMappingURL=DomRenderer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CircularList_1 = require(\"./common/CircularList\");\nvar BufferLine_1 = require(\"./core/buffer/BufferLine\");\nvar BufferReflow_1 = require(\"./core/buffer/BufferReflow\");\nvar Marker_1 = require(\"./core/buffer/Marker\");\nexports.MAX_BUFFER_SIZE = 4294967295;\nvar Buffer = (function () {\n function Buffer(_terminal, _hasScrollback) {\n this._terminal = _terminal;\n this._hasScrollback = _hasScrollback;\n this.savedCurAttrData = BufferLine_1.DEFAULT_ATTR_DATA.clone();\n this.markers = [];\n this._nullCell = BufferLine_1.CellData.fromCharData([0, BufferLine_1.NULL_CELL_CHAR, BufferLine_1.NULL_CELL_WIDTH, BufferLine_1.NULL_CELL_CODE]);\n this._whitespaceCell = BufferLine_1.CellData.fromCharData([0, BufferLine_1.WHITESPACE_CELL_CHAR, BufferLine_1.WHITESPACE_CELL_WIDTH, BufferLine_1.WHITESPACE_CELL_CODE]);\n this._cols = this._terminal.cols;\n this._rows = this._terminal.rows;\n this.clear();\n }\n Buffer.prototype.getNullCell = function (attr) {\n if (attr) {\n this._nullCell.fg = attr.fg;\n this._nullCell.bg = attr.bg;\n }\n else {\n this._nullCell.fg = 0;\n this._nullCell.bg = 0;\n }\n return this._nullCell;\n };\n Buffer.prototype.getWhitespaceCell = function (attr) {\n if (attr) {\n this._whitespaceCell.fg = attr.fg;\n this._whitespaceCell.bg = attr.bg;\n }\n else {\n this._whitespaceCell.fg = 0;\n this._whitespaceCell.bg = 0;\n }\n return this._whitespaceCell;\n };\n Buffer.prototype.getBlankLine = function (attr, isWrapped) {\n return new BufferLine_1.BufferLine(this._terminal.cols, this.getNullCell(attr), isWrapped);\n };\n Object.defineProperty(Buffer.prototype, \"hasScrollback\", {\n get: function () {\n return this._hasScrollback && this.lines.maxLength > this._rows;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Buffer.prototype, \"isCursorInViewport\", {\n get: function () {\n var absoluteY = this.ybase + this.y;\n var relativeY = absoluteY - this.ydisp;\n return (relativeY >= 0 && relativeY < this._rows);\n },\n enumerable: true,\n configurable: true\n });\n Buffer.prototype._getCorrectBufferLength = function (rows) {\n if (!this._hasScrollback) {\n return rows;\n }\n var correctBufferLength = rows + this._terminal.options.scrollback;\n return correctBufferLength > exports.MAX_BUFFER_SIZE ? exports.MAX_BUFFER_SIZE : correctBufferLength;\n };\n Buffer.prototype.fillViewportRows = function (fillAttr) {\n if (this.lines.length === 0) {\n if (fillAttr === undefined) {\n fillAttr = BufferLine_1.DEFAULT_ATTR_DATA;\n }\n var i = this._rows;\n while (i--) {\n this.lines.push(this.getBlankLine(fillAttr));\n }\n }\n };\n Buffer.prototype.clear = function () {\n this.ydisp = 0;\n this.ybase = 0;\n this.y = 0;\n this.x = 0;\n this.lines = new CircularList_1.CircularList(this._getCorrectBufferLength(this._rows));\n this.scrollTop = 0;\n this.scrollBottom = this._rows - 1;\n this.setupTabStops();\n };\n Buffer.prototype.resize = function (newCols, newRows) {\n var nullCell = this.getNullCell(BufferLine_1.DEFAULT_ATTR_DATA);\n var newMaxLength = this._getCorrectBufferLength(newRows);\n if (newMaxLength > this.lines.maxLength) {\n this.lines.maxLength = newMaxLength;\n }\n if (this.lines.length > 0) {\n if (this._cols < newCols) {\n for (var i = 0; i < this.lines.length; i++) {\n this.lines.get(i).resize(newCols, nullCell);\n }\n }\n var addToY = 0;\n if (this._rows < newRows) {\n for (var y = this._rows; y < newRows; y++) {\n if (this.lines.length < newRows + this.ybase) {\n if (this.ybase > 0 && this.lines.length <= this.ybase + this.y + addToY + 1) {\n this.ybase--;\n addToY++;\n if (this.ydisp > 0) {\n this.ydisp--;\n }\n }\n else {\n this.lines.push(new BufferLine_1.BufferLine(newCols, nullCell));\n }\n }\n }\n }\n else {\n for (var y = this._rows; y > newRows; y--) {\n if (this.lines.length > newRows + this.ybase) {\n if (this.lines.length > this.ybase + this.y + 1) {\n this.lines.pop();\n }\n else {\n this.ybase++;\n this.ydisp++;\n }\n }\n }\n }\n if (newMaxLength < this.lines.maxLength) {\n var amountToTrim = this.lines.length - newMaxLength;\n if (amountToTrim > 0) {\n this.lines.trimStart(amountToTrim);\n this.ybase = Math.max(this.ybase - amountToTrim, 0);\n this.ydisp = Math.max(this.ydisp - amountToTrim, 0);\n }\n this.lines.maxLength = newMaxLength;\n }\n this.x = Math.min(this.x, newCols - 1);\n this.y = Math.min(this.y, newRows - 1);\n if (addToY) {\n this.y += addToY;\n }\n this.savedY = Math.min(this.savedY, newRows - 1);\n this.savedX = Math.min(this.savedX, newCols - 1);\n this.scrollTop = 0;\n }\n this.scrollBottom = newRows - 1;\n if (this._isReflowEnabled) {\n this._reflow(newCols, newRows);\n if (this._cols > newCols) {\n for (var i = 0; i < this.lines.length; i++) {\n this.lines.get(i).resize(newCols, nullCell);\n }\n }\n }\n this._cols = newCols;\n this._rows = newRows;\n };\n Object.defineProperty(Buffer.prototype, \"_isReflowEnabled\", {\n get: function () {\n return this._hasScrollback && !this._terminal.options.windowsMode;\n },\n enumerable: true,\n configurable: true\n });\n Buffer.prototype._reflow = function (newCols, newRows) {\n if (this._cols === newCols) {\n return;\n }\n if (newCols > this._cols) {\n this._reflowLarger(newCols, newRows);\n }\n else {\n this._reflowSmaller(newCols, newRows);\n }\n };\n Buffer.prototype._reflowLarger = function (newCols, newRows) {\n var toRemove = BufferReflow_1.reflowLargerGetLinesToRemove(this.lines, this._cols, newCols, this.ybase + this.y, this.getNullCell(BufferLine_1.DEFAULT_ATTR_DATA));\n if (toRemove.length > 0) {\n var newLayoutResult = BufferReflow_1.reflowLargerCreateNewLayout(this.lines, toRemove);\n BufferReflow_1.reflowLargerApplyNewLayout(this.lines, newLayoutResult.layout);\n this._reflowLargerAdjustViewport(newCols, newRows, newLayoutResult.countRemoved);\n }\n };\n Buffer.prototype._reflowLargerAdjustViewport = function (newCols, newRows, countRemoved) {\n var nullCell = this.getNullCell(BufferLine_1.DEFAULT_ATTR_DATA);\n var viewportAdjustments = countRemoved;\n while (viewportAdjustments-- > 0) {\n if (this.ybase === 0) {\n if (this.y > 0) {\n this.y--;\n }\n if (this.lines.length < newRows) {\n this.lines.push(new BufferLine_1.BufferLine(newCols, nullCell));\n }\n }\n else {\n if (this.ydisp === this.ybase) {\n this.ydisp--;\n }\n this.ybase--;\n }\n }\n };\n Buffer.prototype._reflowSmaller = function (newCols, newRows) {\n var nullCell = this.getNullCell(BufferLine_1.DEFAULT_ATTR_DATA);\n var toInsert = [];\n var countToInsert = 0;\n for (var y = this.lines.length - 1; y >= 0; y--) {\n var nextLine = this.lines.get(y);\n if (!nextLine || !nextLine.isWrapped && nextLine.getTrimmedLength() <= newCols) {\n continue;\n }\n var wrappedLines = [nextLine];\n while (nextLine.isWrapped && y > 0) {\n nextLine = this.lines.get(--y);\n wrappedLines.unshift(nextLine);\n }\n var absoluteY = this.ybase + this.y;\n if (absoluteY >= y && absoluteY < y + wrappedLines.length) {\n continue;\n }\n var lastLineLength = wrappedLines[wrappedLines.length - 1].getTrimmedLength();\n var destLineLengths = BufferReflow_1.reflowSmallerGetNewLineLengths(wrappedLines, this._cols, newCols);\n var linesToAdd = destLineLengths.length - wrappedLines.length;\n var trimmedLines = void 0;\n if (this.ybase === 0 && this.y !== this.lines.length - 1) {\n trimmedLines = Math.max(0, this.y - this.lines.maxLength + linesToAdd);\n }\n else {\n trimmedLines = Math.max(0, this.lines.length - this.lines.maxLength + linesToAdd);\n }\n var newLines = [];\n for (var i = 0; i < linesToAdd; i++) {\n var newLine = this.getBlankLine(BufferLine_1.DEFAULT_ATTR_DATA, true);\n newLines.push(newLine);\n }\n if (newLines.length > 0) {\n toInsert.push({\n start: y + wrappedLines.length + countToInsert,\n newLines: newLines\n });\n countToInsert += newLines.length;\n }\n wrappedLines.push.apply(wrappedLines, newLines);\n var destLineIndex = destLineLengths.length - 1;\n var destCol = destLineLengths[destLineIndex];\n if (destCol === 0) {\n destLineIndex--;\n destCol = destLineLengths[destLineIndex];\n }\n var srcLineIndex = wrappedLines.length - linesToAdd - 1;\n var srcCol = lastLineLength;\n while (srcLineIndex >= 0) {\n var cellsToCopy = Math.min(srcCol, destCol);\n wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[srcLineIndex], srcCol - cellsToCopy, destCol - cellsToCopy, cellsToCopy, true);\n destCol -= cellsToCopy;\n if (destCol === 0) {\n destLineIndex--;\n destCol = destLineLengths[destLineIndex];\n }\n srcCol -= cellsToCopy;\n if (srcCol === 0) {\n srcLineIndex--;\n var wrappedLinesIndex = Math.max(srcLineIndex, 0);\n srcCol = BufferReflow_1.getWrappedLineTrimmedLength(wrappedLines, wrappedLinesIndex, this._cols);\n }\n }\n for (var i = 0; i < wrappedLines.length; i++) {\n if (destLineLengths[i] < newCols) {\n wrappedLines[i].setCell(destLineLengths[i], nullCell);\n }\n }\n var viewportAdjustments = linesToAdd - trimmedLines;\n while (viewportAdjustments-- > 0) {\n if (this.ybase === 0) {\n if (this.y < newRows - 1) {\n this.y++;\n this.lines.pop();\n }\n else {\n this.ybase++;\n this.ydisp++;\n }\n }\n else {\n if (this.ybase < Math.min(this.lines.maxLength, this.lines.length + countToInsert) - newRows) {\n if (this.ybase === this.ydisp) {\n this.ydisp++;\n }\n this.ybase++;\n }\n }\n }\n }\n if (toInsert.length > 0) {\n var insertEvents = [];\n var originalLines = [];\n for (var i = 0; i < this.lines.length; i++) {\n originalLines.push(this.lines.get(i));\n }\n var originalLinesLength = this.lines.length;\n var originalLineIndex = originalLinesLength - 1;\n var nextToInsertIndex = 0;\n var nextToInsert = toInsert[nextToInsertIndex];\n this.lines.length = Math.min(this.lines.maxLength, this.lines.length + countToInsert);\n var countInsertedSoFar = 0;\n for (var i = Math.min(this.lines.maxLength - 1, originalLinesLength + countToInsert - 1); i >= 0; i--) {\n if (nextToInsert && nextToInsert.start > originalLineIndex + countInsertedSoFar) {\n for (var nextI = nextToInsert.newLines.length - 1; nextI >= 0; nextI--) {\n this.lines.set(i--, nextToInsert.newLines[nextI]);\n }\n i++;\n insertEvents.push({\n index: originalLineIndex + 1,\n amount: nextToInsert.newLines.length\n });\n countInsertedSoFar += nextToInsert.newLines.length;\n nextToInsert = toInsert[++nextToInsertIndex];\n }\n else {\n this.lines.set(i, originalLines[originalLineIndex--]);\n }\n }\n var insertCountEmitted = 0;\n for (var i = insertEvents.length - 1; i >= 0; i--) {\n insertEvents[i].index += insertCountEmitted;\n this.lines.onInsertEmitter.fire(insertEvents[i]);\n insertCountEmitted += insertEvents[i].amount;\n }\n var amountToTrim = Math.max(0, originalLinesLength + countToInsert - this.lines.maxLength);\n if (amountToTrim > 0) {\n this.lines.onTrimEmitter.fire(amountToTrim);\n }\n }\n };\n Buffer.prototype.stringIndexToBufferIndex = function (lineIndex, stringIndex, trimRight) {\n if (trimRight === void 0) { trimRight = false; }\n while (stringIndex) {\n var line = this.lines.get(lineIndex);\n if (!line) {\n return [-1, -1];\n }\n var length_1 = (trimRight) ? line.getTrimmedLength() : line.length;\n for (var i = 0; i < length_1; ++i) {\n if (line.get(i)[BufferLine_1.CHAR_DATA_WIDTH_INDEX]) {\n stringIndex -= line.get(i)[BufferLine_1.CHAR_DATA_CHAR_INDEX].length || 1;\n }\n if (stringIndex < 0) {\n return [lineIndex, i];\n }\n }\n lineIndex++;\n }\n return [lineIndex, 0];\n };\n Buffer.prototype.translateBufferLineToString = function (lineIndex, trimRight, startCol, endCol) {\n if (startCol === void 0) { startCol = 0; }\n var line = this.lines.get(lineIndex);\n if (!line) {\n return '';\n }\n return line.translateToString(trimRight, startCol, endCol);\n };\n Buffer.prototype.getWrappedRangeForLine = function (y) {\n var first = y;\n var last = y;\n while (first > 0 && this.lines.get(first).isWrapped) {\n first--;\n }\n while (last + 1 < this.lines.length && this.lines.get(last + 1).isWrapped) {\n last++;\n }\n return { first: first, last: last };\n };\n Buffer.prototype.setupTabStops = function (i) {\n if (i !== null && i !== undefined) {\n if (!this.tabs[i]) {\n i = this.prevStop(i);\n }\n }\n else {\n this.tabs = {};\n i = 0;\n }\n for (; i < this._cols; i += this._terminal.options.tabStopWidth) {\n this.tabs[i] = true;\n }\n };\n Buffer.prototype.prevStop = function (x) {\n if (x === null || x === undefined) {\n x = this.x;\n }\n while (!this.tabs[--x] && x > 0)\n ;\n return x >= this._cols ? this._cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.nextStop = function (x) {\n if (x === null || x === undefined) {\n x = this.x;\n }\n while (!this.tabs[++x] && x < this._cols)\n ;\n return x >= this._cols ? this._cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.addMarker = function (y) {\n var _this = this;\n var marker = new Marker_1.Marker(y);\n this.markers.push(marker);\n marker.register(this.lines.onTrim(function (amount) {\n marker.line -= amount;\n if (marker.line < 0) {\n marker.dispose();\n }\n }));\n marker.register(this.lines.onInsert(function (event) {\n if (marker.line >= event.index) {\n marker.line += event.amount;\n }\n }));\n marker.register(this.lines.onDelete(function (event) {\n if (marker.line >= event.index && marker.line < event.index + event.amount) {\n marker.dispose();\n }\n if (marker.line > event.index) {\n marker.line -= event.amount;\n }\n }));\n marker.register(marker.onDispose(function () { return _this._removeMarker(marker); }));\n return marker;\n };\n Buffer.prototype._removeMarker = function (marker) {\n this.markers.splice(this.markers.indexOf(marker), 1);\n };\n Buffer.prototype.iterator = function (trimRight, startIndex, endIndex, startOverscan, endOverscan) {\n return new BufferStringIterator(this, trimRight, startIndex, endIndex, startOverscan, endOverscan);\n };\n return Buffer;\n}());\nexports.Buffer = Buffer;\nvar BufferStringIterator = (function () {\n function BufferStringIterator(_buffer, _trimRight, _startIndex, _endIndex, _startOverscan, _endOverscan) {\n if (_startIndex === void 0) { _startIndex = 0; }\n if (_endIndex === void 0) { _endIndex = _buffer.lines.length; }\n if (_startOverscan === void 0) { _startOverscan = 0; }\n if (_endOverscan === void 0) { _endOverscan = 0; }\n this._buffer = _buffer;\n this._trimRight = _trimRight;\n this._startIndex = _startIndex;\n this._endIndex = _endIndex;\n this._startOverscan = _startOverscan;\n this._endOverscan = _endOverscan;\n if (this._startIndex < 0) {\n this._startIndex = 0;\n }\n if (this._endIndex > this._buffer.lines.length) {\n this._endIndex = this._buffer.lines.length;\n }\n this._current = this._startIndex;\n }\n BufferStringIterator.prototype.hasNext = function () {\n return this._current < this._endIndex;\n };\n BufferStringIterator.prototype.next = function () {\n var range = this._buffer.getWrappedRangeForLine(this._current);\n if (range.first < this._startIndex - this._startOverscan) {\n range.first = this._startIndex - this._startOverscan;\n }\n if (range.last > this._endIndex + this._endOverscan) {\n range.last = this._endIndex + this._endOverscan;\n }\n range.first = Math.max(range.first, 0);\n range.last = Math.min(range.last, this._buffer.lines.length);\n var result = '';\n for (var i = range.first; i <= range.last; ++i) {\n result += this._buffer.translateBufferLineToString(i, this._trimRight);\n }\n this._current = range.last + 1;\n return { range: range, content: result };\n };\n return BufferStringIterator;\n}());\nexports.BufferStringIterator = BufferStringIterator;\n//# sourceMappingURL=Buffer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction addDisposableDomListener(node, type, handler, useCapture) {\n node.addEventListener(type, handler, useCapture);\n return {\n dispose: function () {\n if (!handler) {\n return;\n }\n node.removeEventListener(type, handler, useCapture);\n }\n };\n}\nexports.addDisposableDomListener = addDisposableDomListener;\n//# sourceMappingURL=Lifecycle.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TextRenderLayer_1 = require(\"./TextRenderLayer\");\nvar SelectionRenderLayer_1 = require(\"./SelectionRenderLayer\");\nvar CursorRenderLayer_1 = require(\"./CursorRenderLayer\");\nvar LinkRenderLayer_1 = require(\"./LinkRenderLayer\");\nvar CharacterJoinerRegistry_1 = require(\"../renderer/CharacterJoinerRegistry\");\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar Renderer = (function (_super) {\n __extends(Renderer, _super);\n function Renderer(_terminal, _colors) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._colors = _colors;\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this._characterJoinerRegistry = new CharacterJoinerRegistry_1.CharacterJoinerRegistry(_terminal);\n _this._renderLayers = [\n new TextRenderLayer_1.TextRenderLayer(_this._terminal.screenElement, 0, _this._colors, _this._characterJoinerRegistry, allowTransparency),\n new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.screenElement, 1, _this._colors),\n new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.screenElement, 2, _this._colors, _this._terminal),\n new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.screenElement, 3, _this._colors)\n ];\n _this.dimensions = {\n scaledCharWidth: null,\n scaledCharHeight: null,\n scaledCellWidth: null,\n scaledCellHeight: null,\n scaledCharLeft: null,\n scaledCharTop: null,\n scaledCanvasWidth: null,\n scaledCanvasHeight: null,\n canvasWidth: null,\n canvasHeight: null,\n actualCellWidth: null,\n actualCellHeight: null\n };\n _this._devicePixelRatio = window.devicePixelRatio;\n _this._updateDimensions();\n _this.onOptionsChanged();\n return _this;\n }\n Renderer.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._renderLayers.forEach(function (l) { return l.dispose(); });\n };\n Renderer.prototype.onDevicePixelRatioChange = function () {\n if (this._devicePixelRatio !== window.devicePixelRatio) {\n this._devicePixelRatio = window.devicePixelRatio;\n this.onResize(this._terminal.cols, this._terminal.rows);\n }\n };\n Renderer.prototype.setColors = function (colors) {\n var _this = this;\n this._colors = colors;\n this._renderLayers.forEach(function (l) {\n l.setColors(_this._terminal, _this._colors);\n l.reset(_this._terminal);\n });\n };\n Renderer.prototype.onResize = function (cols, rows) {\n var _this = this;\n this._updateDimensions();\n this._renderLayers.forEach(function (l) { return l.resize(_this._terminal, _this.dimensions); });\n this._terminal.screenElement.style.width = this.dimensions.canvasWidth + \"px\";\n this._terminal.screenElement.style.height = this.dimensions.canvasHeight + \"px\";\n };\n Renderer.prototype.onCharSizeChanged = function () {\n this.onResize(this._terminal.cols, this._terminal.rows);\n };\n Renderer.prototype.onBlur = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onBlur(_this._terminal); });\n };\n Renderer.prototype.onFocus = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onFocus(_this._terminal); });\n };\n Renderer.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n var _this = this;\n if (columnSelectMode === void 0) { columnSelectMode = false; }\n this._runOperation(function (l) { return l.onSelectionChanged(_this._terminal, start, end, columnSelectMode); });\n };\n Renderer.prototype.onCursorMove = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onCursorMove(_this._terminal); });\n };\n Renderer.prototype.onOptionsChanged = function () {\n var _this = this;\n this._runOperation(function (l) { return l.onOptionsChanged(_this._terminal); });\n };\n Renderer.prototype.clear = function () {\n var _this = this;\n this._runOperation(function (l) { return l.reset(_this._terminal); });\n };\n Renderer.prototype._runOperation = function (operation) {\n this._renderLayers.forEach(function (l) { return operation(l); });\n };\n Renderer.prototype.renderRows = function (start, end) {\n var _this = this;\n this._renderLayers.forEach(function (l) { return l.onGridChanged(_this._terminal, start, end); });\n };\n Renderer.prototype._updateDimensions = function () {\n if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) {\n return;\n }\n this.dimensions.scaledCharWidth = Math.floor(this._terminal.charMeasure.width * window.devicePixelRatio);\n this.dimensions.scaledCharHeight = Math.ceil(this._terminal.charMeasure.height * window.devicePixelRatio);\n this.dimensions.scaledCellHeight = Math.floor(this.dimensions.scaledCharHeight * this._terminal.options.lineHeight);\n this.dimensions.scaledCharTop = this._terminal.options.lineHeight === 1 ? 0 : Math.round((this.dimensions.scaledCellHeight - this.dimensions.scaledCharHeight) / 2);\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth + Math.round(this._terminal.options.letterSpacing);\n this.dimensions.scaledCharLeft = Math.floor(this._terminal.options.letterSpacing / 2);\n this.dimensions.scaledCanvasHeight = this._terminal.rows * this.dimensions.scaledCellHeight;\n this.dimensions.scaledCanvasWidth = this._terminal.cols * this.dimensions.scaledCellWidth;\n this.dimensions.canvasHeight = Math.round(this.dimensions.scaledCanvasHeight / window.devicePixelRatio);\n this.dimensions.canvasWidth = Math.round(this.dimensions.scaledCanvasWidth / window.devicePixelRatio);\n this.dimensions.actualCellHeight = this.dimensions.canvasHeight / this._terminal.rows;\n this.dimensions.actualCellWidth = this.dimensions.canvasWidth / this._terminal.cols;\n };\n Renderer.prototype.registerCharacterJoiner = function (handler) {\n return this._characterJoinerRegistry.registerCharacterJoiner(handler);\n };\n Renderer.prototype.deregisterCharacterJoiner = function (joinerId) {\n return this._characterJoinerRegistry.deregisterCharacterJoiner(joinerId);\n };\n return Renderer;\n}(Lifecycle_1.Disposable));\nexports.Renderer = Renderer;\n//# sourceMappingURL=Renderer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"../../common/data/EscapeSequences\");\nvar KEYCODE_KEY_MAPPINGS = {\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: ['\\'', '\"']\n};\nfunction evaluateKeyboardEvent(ev, applicationCursorMode, isMac, macOptionIsMeta) {\n var result = {\n type: 0,\n cancel: false,\n key: undefined\n };\n var modifiers = (ev.shiftKey ? 1 : 0) | (ev.altKey ? 2 : 0) | (ev.ctrlKey ? 4 : 0) | (ev.metaKey ? 8 : 0);\n switch (ev.keyCode) {\n case 0:\n if (ev.key === 'UIKeyInputUpArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n }\n else if (ev.key === 'UIKeyInputLeftArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n }\n else if (ev.key === 'UIKeyInputRightArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n }\n else if (ev.key === 'UIKeyInputDownArrow') {\n if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n }\n break;\n case 8:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.BS;\n break;\n }\n else if (ev.altKey) {\n result.key = EscapeSequences_1.C0.ESC + EscapeSequences_1.C0.DEL;\n break;\n }\n result.key = EscapeSequences_1.C0.DEL;\n break;\n case 9:\n if (ev.shiftKey) {\n result.key = EscapeSequences_1.C0.ESC + '[Z';\n break;\n }\n result.key = EscapeSequences_1.C0.HT;\n result.cancel = true;\n break;\n case 13:\n result.key = EscapeSequences_1.C0.CR;\n result.cancel = true;\n break;\n case 27:\n result.key = EscapeSequences_1.C0.ESC;\n result.cancel = true;\n break;\n case 37:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'D';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3D') {\n result.key = isMac ? EscapeSequences_1.C0.ESC + 'b' : EscapeSequences_1.C0.ESC + '[1;5D';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OD';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[D';\n }\n break;\n case 39:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'C';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3C') {\n result.key = isMac ? EscapeSequences_1.C0.ESC + 'f' : EscapeSequences_1.C0.ESC + '[1;5C';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OC';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[C';\n }\n break;\n case 38:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'A';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3A') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5A';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OA';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[A';\n }\n break;\n case 40:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'B';\n if (result.key === EscapeSequences_1.C0.ESC + '[1;3B') {\n result.key = EscapeSequences_1.C0.ESC + '[1;5B';\n }\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OB';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[B';\n }\n break;\n case 45:\n if (!ev.shiftKey && !ev.ctrlKey) {\n result.key = EscapeSequences_1.C0.ESC + '[2~';\n }\n break;\n case 46:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[3;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[3~';\n }\n break;\n case 36:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'H';\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OH';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[H';\n }\n break;\n case 35:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'F';\n }\n else if (applicationCursorMode) {\n result.key = EscapeSequences_1.C0.ESC + 'OF';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[F';\n }\n break;\n case 33:\n if (ev.shiftKey) {\n result.type = 2;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[5~';\n }\n break;\n case 34:\n if (ev.shiftKey) {\n result.type = 3;\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[6~';\n }\n break;\n case 112:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'P';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OP';\n }\n break;\n case 113:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'Q';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OQ';\n }\n break;\n case 114:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'R';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OR';\n }\n break;\n case 115:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[1;' + (modifiers + 1) + 'S';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + 'OS';\n }\n break;\n case 116:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[15;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[15~';\n }\n break;\n case 117:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[17;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[17~';\n }\n break;\n case 118:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[18;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[18~';\n }\n break;\n case 119:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[19;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[19~';\n }\n break;\n case 120:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[20;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[20~';\n }\n break;\n case 121:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[21;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[21~';\n }\n break;\n case 122:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[23;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[23~';\n }\n break;\n case 123:\n if (modifiers) {\n result.key = EscapeSequences_1.C0.ESC + '[24;' + (modifiers + 1) + '~';\n }\n else {\n result.key = EscapeSequences_1.C0.ESC + '[24~';\n }\n break;\n default:\n if (ev.ctrlKey && !ev.shiftKey && !ev.altKey && !ev.metaKey) {\n if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n result.key = String.fromCharCode(ev.keyCode - 64);\n }\n else if (ev.keyCode === 32) {\n result.key = String.fromCharCode(0);\n }\n else if (ev.keyCode >= 51 && ev.keyCode <= 55) {\n result.key = String.fromCharCode(ev.keyCode - 51 + 27);\n }\n else if (ev.keyCode === 56) {\n result.key = String.fromCharCode(127);\n }\n else if (ev.keyCode === 219) {\n result.key = String.fromCharCode(27);\n }\n else if (ev.keyCode === 220) {\n result.key = String.fromCharCode(28);\n }\n else if (ev.keyCode === 221) {\n result.key = String.fromCharCode(29);\n }\n }\n else if ((!isMac || macOptionIsMeta) && ev.altKey && !ev.metaKey) {\n var keyMapping = KEYCODE_KEY_MAPPINGS[ev.keyCode];\n var key = keyMapping && keyMapping[!ev.shiftKey ? 0 : 1];\n if (key) {\n result.key = EscapeSequences_1.C0.ESC + key;\n }\n else if (ev.keyCode >= 65 && ev.keyCode <= 90) {\n var keyCode = ev.ctrlKey ? ev.keyCode - 64 : ev.keyCode + 32;\n result.key = EscapeSequences_1.C0.ESC + String.fromCharCode(keyCode);\n }\n }\n else if (isMac && !ev.altKey && !ev.ctrlKey && ev.metaKey) {\n if (ev.keyCode === 65) {\n result.type = 1;\n }\n }\n else if (ev.key && !ev.ctrlKey && !ev.altKey && !ev.metaKey && ev.keyCode >= 48 && ev.key.length === 1) {\n result.key = ev.key;\n }\n else if (ev.key && ev.ctrlKey) {\n if (ev.key === '_') {\n result.key = EscapeSequences_1.C0.US;\n }\n }\n break;\n }\n return result;\n}\nexports.evaluateKeyboardEvent = evaluateKeyboardEvent;\n//# sourceMappingURL=Keyboard.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CharAtlasUtils_1 = require(\"./CharAtlasUtils\");\nvar DynamicCharAtlas_1 = require(\"./DynamicCharAtlas\");\nvar NoneCharAtlas_1 = require(\"./NoneCharAtlas\");\nvar StaticCharAtlas_1 = require(\"./StaticCharAtlas\");\nvar charAtlasImplementations = {\n 'none': NoneCharAtlas_1.default,\n 'static': StaticCharAtlas_1.default,\n 'dynamic': DynamicCharAtlas_1.default\n};\nvar charAtlasCache = [];\nfunction acquireCharAtlas(terminal, colors, scaledCharWidth, scaledCharHeight) {\n var newConfig = CharAtlasUtils_1.generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors);\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n var ownedByIndex = entry.ownedBy.indexOf(terminal);\n if (ownedByIndex >= 0) {\n if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {\n return entry.atlas;\n }\n if (entry.ownedBy.length === 1) {\n entry.atlas.dispose();\n charAtlasCache.splice(i, 1);\n }\n else {\n entry.ownedBy.splice(ownedByIndex, 1);\n }\n break;\n }\n }\n for (var i = 0; i < charAtlasCache.length; i++) {\n var entry = charAtlasCache[i];\n if (CharAtlasUtils_1.configEquals(entry.config, newConfig)) {\n entry.ownedBy.push(terminal);\n return entry.atlas;\n }\n }\n var newEntry = {\n atlas: new charAtlasImplementations[terminal.options.experimentalCharAtlas](document, newConfig),\n config: newConfig,\n ownedBy: [terminal]\n };\n charAtlasCache.push(newEntry);\n return newEntry.atlas;\n}\nexports.acquireCharAtlas = acquireCharAtlas;\nfunction removeTerminalFromCache(terminal) {\n for (var i = 0; i < charAtlasCache.length; i++) {\n var index = charAtlasCache[i].ownedBy.indexOf(terminal);\n if (index !== -1) {\n if (charAtlasCache[i].ownedBy.length === 1) {\n charAtlasCache[i].atlas.dispose();\n charAtlasCache.splice(i, 1);\n }\n else {\n charAtlasCache[i].ownedBy.splice(index, 1);\n }\n break;\n }\n }\n}\nexports.removeTerminalFromCache = removeTerminalFromCache;\n//# sourceMappingURL=CharAtlasCache.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Back',{attrs:{\"title\":_vm.$t('ConsoleContainer_executeConsole')}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShow === 0),expression:\"isShow === 0\"}],staticClass:\"box\"},[_c('ConsoleForm',{on:{\"submit\":_vm.submit}})],1),(_vm.user)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShow === 1),expression:\"isShow === 1\"}],staticClass:\"box\"},[_c('ConsoleCmd',{attrs:{\"user\":_vm.user},on:{\"websocketBack\":_vm.websocketBack}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-form',{ref:\"form\",attrs:{\"model\":_vm.user,\"label-width\":\"120px\"}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('container_Command')}},[_c('el-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.user.diyCommand),expression:\"!user.diyCommand\"}],attrs:{\"placeholder\":\"请选择指令运行位置\"},model:{value:(_vm.user.command),callback:function ($$v) {_vm.$set(_vm.user, \"command\", $$v)},expression:\"user.command\"}},[_c('el-option',{attrs:{\"label\":\"/bin/ash\",\"value\":\"/bin/ash\"}}),_c('el-option',{attrs:{\"label\":\"/bin/bash\",\"value\":\"/bin/bash\"}}),_c('el-option',{attrs:{\"label\":\"/bin/sh\",\"value\":\"/bin/sh\"}})],1),_c('el-input',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.user.diyCommand),expression:\"user.diyCommand\"}],attrs:{\"placeholder\":\"请输入指令运行位置\"},model:{value:(_vm.user.command),callback:function ($$v) {_vm.$set(_vm.user, \"command\", $$v)},expression:\"user.command\"}})],1),_c('el-form-item',{attrs:{\"label\":_vm.$t('container_Usecustomizecommand')}},[_c('el-switch',{model:{value:(_vm.user.diyCommand),callback:function ($$v) {_vm.$set(_vm.user, \"diyCommand\", $$v)},expression:\"user.diyCommand\"}})],1),_c('el-form-item',{attrs:{\"label\":_vm.$t('container_User')}},[_c('el-input',{attrs:{\"placeholder\":\"root\"},model:{value:(_vm.user.name),callback:function ($$v) {_vm.$set(_vm.user, \"name\", $$v)},expression:\"user.name\"}})],1),_c('el-form-item',[_c('el-button',{staticStyle:{\"background\":\"#067FB5\",\"color\":\"#fff\"},attrs:{\"size\":\"small\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('container_Link')))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConsoleForm.vue?vue&type=template&id=1df86a80&\"\nimport script from \"./ConsoleForm.vue?vue&type=script&lang=js&\"\nexport * from \"./ConsoleForm.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"tishi\"},[_vm._v(\" \"+_vm._s(_vm.user.name)+_vm._s(_vm.$t('Container_Executetocontainerusingcommand'))+_vm._s(_vm.user.command)+\"中。 \"),_c('el-button',{staticStyle:{\"background\":\"#067FB5\",\"color\":\"#fff\"},attrs:{\"size\":\"small\"},on:{\"click\":_vm.websocketBack}},[_vm._v(\"断开连接\")])],1),(_vm.user)?_c('div',{staticClass:\"cmd\"},[_c('div',{attrs:{\"id\":\"terminal\"}})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleCmd.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleCmd.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConsoleCmd.vue?vue&type=template&id=f9f17e90&scoped=true&\"\nimport script from \"./ConsoleCmd.vue?vue&type=script&lang=js&\"\nexport * from \"./ConsoleCmd.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConsoleCmd.vue?vue&type=style&index=0&id=f9f17e90&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f9f17e90\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConsoleContainer.vue?vue&type=template&id=38b8735f&scoped=true&\"\nimport script from \"./ConsoleContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./ConsoleContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConsoleContainer.vue?vue&type=style&index=0&id=38b8735f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38b8735f\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_BELL_SOUND = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==';\nvar SoundManager = (function () {\n function SoundManager(_terminal) {\n this._terminal = _terminal;\n }\n Object.defineProperty(SoundManager, \"audioContext\", {\n get: function () {\n if (!SoundManager._audioContext) {\n var audioContextCtor = window.AudioContext || window.webkitAudioContext;\n if (!audioContextCtor) {\n console.warn('Web Audio API is not supported by this browser. Consider upgrading to the latest version');\n return null;\n }\n SoundManager._audioContext = new audioContextCtor();\n }\n return SoundManager._audioContext;\n },\n enumerable: true,\n configurable: true\n });\n SoundManager.prototype.playBellSound = function () {\n var ctx = SoundManager.audioContext;\n if (!ctx) {\n return;\n }\n var bellAudioSource = ctx.createBufferSource();\n ctx.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._terminal.options.bellSound)), function (buffer) {\n bellAudioSource.buffer = buffer;\n bellAudioSource.connect(ctx.destination);\n bellAudioSource.start(0);\n });\n };\n SoundManager.prototype._base64ToArrayBuffer = function (base64) {\n var binaryString = window.atob(base64);\n var len = binaryString.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n };\n SoundManager.prototype._removeMimeType = function (dataURI) {\n var splitUri = dataURI.split(',');\n return splitUri[1];\n };\n return SoundManager;\n}());\nexports.SoundManager = SoundManager;\n//# sourceMappingURL=SoundManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar ColorManager_1 = require(\"../../ui/ColorManager\");\nvar CharAtlasGenerator_1 = require(\"./CharAtlasGenerator\");\nvar LRUMap_1 = require(\"./LRUMap\");\nvar Platform_1 = require(\"../../common/Platform\");\nvar TEXTURE_WIDTH = 1024;\nvar TEXTURE_HEIGHT = 1024;\nvar TRANSPARENT_COLOR = {\n css: 'rgba(0, 0, 0, 0)',\n rgba: 0\n};\nvar FRAME_CACHE_DRAW_LIMIT = 100;\nvar GLYPH_BITMAP_COMMIT_DELAY = 100;\nfunction getGlyphCacheKey(glyph) {\n return glyph.code << 21 | glyph.bg << 12 | glyph.fg << 3 | (glyph.bold ? 0 : 4) + (glyph.dim ? 0 : 2) + (glyph.italic ? 0 : 1);\n}\nexports.getGlyphCacheKey = getGlyphCacheKey;\nvar DynamicCharAtlas = (function (_super) {\n __extends(DynamicCharAtlas, _super);\n function DynamicCharAtlas(document, _config) {\n var _this = _super.call(this) || this;\n _this._config = _config;\n _this._drawToCacheCount = 0;\n _this._glyphsWaitingOnBitmap = [];\n _this._bitmapCommitTimeout = null;\n _this._bitmap = null;\n _this._cacheCanvas = document.createElement('canvas');\n _this._cacheCanvas.width = TEXTURE_WIDTH;\n _this._cacheCanvas.height = TEXTURE_HEIGHT;\n _this._cacheCtx = _this._cacheCanvas.getContext('2d', { alpha: true });\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = _this._config.scaledCharWidth;\n tmpCanvas.height = _this._config.scaledCharHeight;\n _this._tmpCtx = tmpCanvas.getContext('2d', { alpha: _this._config.allowTransparency });\n _this._width = Math.floor(TEXTURE_WIDTH / _this._config.scaledCharWidth);\n _this._height = Math.floor(TEXTURE_HEIGHT / _this._config.scaledCharHeight);\n var capacity = _this._width * _this._height;\n _this._cacheMap = new LRUMap_1.default(capacity);\n _this._cacheMap.prealloc(capacity);\n return _this;\n }\n DynamicCharAtlas.prototype.dispose = function () {\n if (this._bitmapCommitTimeout !== null) {\n window.clearTimeout(this._bitmapCommitTimeout);\n this._bitmapCommitTimeout = null;\n }\n };\n DynamicCharAtlas.prototype.beginFrame = function () {\n this._drawToCacheCount = 0;\n };\n DynamicCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n if (glyph.code === 32) {\n return true;\n }\n if (!this._canCache(glyph)) {\n return false;\n }\n var glyphKey = getGlyphCacheKey(glyph);\n var cacheValue = this._cacheMap.get(glyphKey);\n if (cacheValue !== null && cacheValue !== undefined) {\n this._drawFromCache(ctx, cacheValue, x, y);\n return true;\n }\n else if (this._drawToCacheCount < FRAME_CACHE_DRAW_LIMIT) {\n var index = void 0;\n if (this._cacheMap.size < this._cacheMap.capacity) {\n index = this._cacheMap.size;\n }\n else {\n index = this._cacheMap.peek().index;\n }\n var cacheValue_1 = this._drawToCache(glyph, index);\n this._cacheMap.set(glyphKey, cacheValue_1);\n this._drawFromCache(ctx, cacheValue_1, x, y);\n return true;\n }\n return false;\n };\n DynamicCharAtlas.prototype._canCache = function (glyph) {\n return glyph.code < 256;\n };\n DynamicCharAtlas.prototype._toCoordinateX = function (index) {\n return (index % this._width) * this._config.scaledCharWidth;\n };\n DynamicCharAtlas.prototype._toCoordinateY = function (index) {\n return Math.floor(index / this._width) * this._config.scaledCharHeight;\n };\n DynamicCharAtlas.prototype._drawFromCache = function (ctx, cacheValue, x, y) {\n if (cacheValue.isEmpty) {\n return;\n }\n var cacheX = this._toCoordinateX(cacheValue.index);\n var cacheY = this._toCoordinateY(cacheValue.index);\n ctx.drawImage(cacheValue.inBitmap ? this._bitmap : this._cacheCanvas, cacheX, cacheY, this._config.scaledCharWidth, this._config.scaledCharHeight, x, y, this._config.scaledCharWidth, this._config.scaledCharHeight);\n };\n DynamicCharAtlas.prototype._getColorFromAnsiIndex = function (idx) {\n if (idx < this._config.colors.ansi.length) {\n return this._config.colors.ansi[idx];\n }\n return ColorManager_1.DEFAULT_ANSI_COLORS[idx];\n };\n DynamicCharAtlas.prototype._getBackgroundColor = function (glyph) {\n if (this._config.allowTransparency) {\n return TRANSPARENT_COLOR;\n }\n else if (glyph.bg === Types_1.INVERTED_DEFAULT_COLOR) {\n return this._config.colors.foreground;\n }\n else if (glyph.bg < 256) {\n return this._getColorFromAnsiIndex(glyph.bg);\n }\n return this._config.colors.background;\n };\n DynamicCharAtlas.prototype._getForegroundColor = function (glyph) {\n if (glyph.fg === Types_1.INVERTED_DEFAULT_COLOR) {\n return this._config.colors.background;\n }\n else if (glyph.fg < 256) {\n return this._getColorFromAnsiIndex(glyph.fg);\n }\n return this._config.colors.foreground;\n };\n DynamicCharAtlas.prototype._drawToCache = function (glyph, index) {\n this._drawToCacheCount++;\n this._tmpCtx.save();\n var backgroundColor = this._getBackgroundColor(glyph);\n this._tmpCtx.globalCompositeOperation = 'copy';\n this._tmpCtx.fillStyle = backgroundColor.css;\n this._tmpCtx.fillRect(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);\n this._tmpCtx.globalCompositeOperation = 'source-over';\n var fontWeight = glyph.bold ? this._config.fontWeightBold : this._config.fontWeight;\n var fontStyle = glyph.italic ? 'italic' : '';\n this._tmpCtx.font =\n fontStyle + \" \" + fontWeight + \" \" + this._config.fontSize * this._config.devicePixelRatio + \"px \" + this._config.fontFamily;\n this._tmpCtx.textBaseline = 'middle';\n this._tmpCtx.fillStyle = this._getForegroundColor(glyph).css;\n if (glyph.dim) {\n this._tmpCtx.globalAlpha = Types_1.DIM_OPACITY;\n }\n this._tmpCtx.fillText(glyph.chars, 0, this._config.scaledCharHeight / 2);\n this._tmpCtx.restore();\n var imageData = this._tmpCtx.getImageData(0, 0, this._config.scaledCharWidth, this._config.scaledCharHeight);\n var isEmpty = false;\n if (!this._config.allowTransparency) {\n isEmpty = CharAtlasGenerator_1.clearColor(imageData, backgroundColor);\n }\n var x = this._toCoordinateX(index);\n var y = this._toCoordinateY(index);\n this._cacheCtx.putImageData(imageData, x, y);\n var cacheValue = {\n index: index,\n isEmpty: isEmpty,\n inBitmap: false\n };\n this._addGlyphToBitmap(cacheValue);\n return cacheValue;\n };\n DynamicCharAtlas.prototype._addGlyphToBitmap = function (cacheValue) {\n var _this = this;\n if (!('createImageBitmap' in window) || Platform_1.isFirefox || Platform_1.isSafari) {\n return;\n }\n this._glyphsWaitingOnBitmap.push(cacheValue);\n if (this._bitmapCommitTimeout !== null) {\n return;\n }\n this._bitmapCommitTimeout = window.setTimeout(function () { return _this._generateBitmap(); }, GLYPH_BITMAP_COMMIT_DELAY);\n };\n DynamicCharAtlas.prototype._generateBitmap = function () {\n var _this = this;\n var glyphsMovingToBitmap = this._glyphsWaitingOnBitmap;\n this._glyphsWaitingOnBitmap = [];\n window.createImageBitmap(this._cacheCanvas).then(function (bitmap) {\n _this._bitmap = bitmap;\n for (var i = 0; i < glyphsMovingToBitmap.length; i++) {\n var value = glyphsMovingToBitmap[i];\n value.inBitmap = true;\n }\n });\n this._bitmapCommitTimeout = null;\n };\n return DynamicCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = DynamicCharAtlas;\n//# sourceMappingURL=DynamicCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Terminal_1 = require(\"../Terminal\");\nvar Strings = require(\"../Strings\");\nvar AddonManager_1 = require(\"./AddonManager\");\nvar Terminal = (function () {\n function Terminal(options) {\n this._core = new Terminal_1.Terminal(options);\n this._addonManager = new AddonManager_1.AddonManager();\n }\n Object.defineProperty(Terminal.prototype, \"onCursorMove\", {\n get: function () { return this._core.onCursorMove; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onLineFeed\", {\n get: function () { return this._core.onLineFeed; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onSelectionChange\", {\n get: function () { return this._core.onSelectionChange; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onData\", {\n get: function () { return this._core.onData; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onTitleChange\", {\n get: function () { return this._core.onTitleChange; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onScroll\", {\n get: function () { return this._core.onScroll; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onKey\", {\n get: function () { return this._core.onKey; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onRender\", {\n get: function () { return this._core.onRender; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onResize\", {\n get: function () { return this._core.onResize; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"element\", {\n get: function () { return this._core.element; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"textarea\", {\n get: function () { return this._core.textarea; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"rows\", {\n get: function () { return this._core.rows; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"cols\", {\n get: function () { return this._core.cols; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"buffer\", {\n get: function () { return new BufferApiView(this._core.buffer); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"markers\", {\n get: function () { return this._core.markers; },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.blur = function () {\n this._core.blur();\n };\n Terminal.prototype.focus = function () {\n this._core.focus();\n };\n Terminal.prototype.on = function (type, listener) {\n this._core.on(type, listener);\n };\n Terminal.prototype.off = function (type, listener) {\n this._core.off(type, listener);\n };\n Terminal.prototype.emit = function (type, data) {\n this._core.emit(type, data);\n };\n Terminal.prototype.addDisposableListener = function (type, handler) {\n return this._core.addDisposableListener(type, handler);\n };\n Terminal.prototype.resize = function (columns, rows) {\n this._core.resize(columns, rows);\n };\n Terminal.prototype.writeln = function (data) {\n this._core.writeln(data);\n };\n Terminal.prototype.open = function (parent) {\n this._core.open(parent);\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this._core.attachCustomKeyEventHandler(customKeyEventHandler);\n };\n Terminal.prototype.addCsiHandler = function (flag, callback) {\n return this._core.addCsiHandler(flag, callback);\n };\n Terminal.prototype.addOscHandler = function (ident, callback) {\n return this._core.addOscHandler(ident, callback);\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n return this._core.registerLinkMatcher(regex, handler, options);\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n this._core.deregisterLinkMatcher(matcherId);\n };\n Terminal.prototype.registerCharacterJoiner = function (handler) {\n return this._core.registerCharacterJoiner(handler);\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n this._core.deregisterCharacterJoiner(joinerId);\n };\n Terminal.prototype.addMarker = function (cursorYOffset) {\n return this._core.addMarker(cursorYOffset);\n };\n Terminal.prototype.hasSelection = function () {\n return this._core.hasSelection();\n };\n Terminal.prototype.select = function (column, row, length) {\n this._core.select(column, row, length);\n };\n Terminal.prototype.getSelection = function () {\n return this._core.getSelection();\n };\n Terminal.prototype.getSelectionPosition = function () {\n return this._core.getSelectionPosition();\n };\n Terminal.prototype.clearSelection = function () {\n this._core.clearSelection();\n };\n Terminal.prototype.selectAll = function () {\n this._core.selectAll();\n };\n Terminal.prototype.selectLines = function (start, end) {\n this._core.selectLines(start, end);\n };\n Terminal.prototype.dispose = function () {\n this._addonManager.dispose();\n this._core.dispose();\n };\n Terminal.prototype.destroy = function () {\n this._core.destroy();\n };\n Terminal.prototype.scrollLines = function (amount) {\n this._core.scrollLines(amount);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this._core.scrollPages(pageCount);\n };\n Terminal.prototype.scrollToTop = function () {\n this._core.scrollToTop();\n };\n Terminal.prototype.scrollToBottom = function () {\n this._core.scrollToBottom();\n };\n Terminal.prototype.scrollToLine = function (line) {\n this._core.scrollToLine(line);\n };\n Terminal.prototype.clear = function () {\n this._core.clear();\n };\n Terminal.prototype.write = function (data) {\n this._core.write(data);\n };\n Terminal.prototype.writeUtf8 = function (data) {\n this._core.writeUtf8(data);\n };\n Terminal.prototype.getOption = function (key) {\n return this._core.getOption(key);\n };\n Terminal.prototype.setOption = function (key, value) {\n this._core.setOption(key, value);\n };\n Terminal.prototype.refresh = function (start, end) {\n this._core.refresh(start, end);\n };\n Terminal.prototype.reset = function () {\n this._core.reset();\n };\n Terminal.applyAddon = function (addon) {\n addon.apply(Terminal);\n };\n Terminal.prototype.loadAddon = function (addon) {\n return this._addonManager.loadAddon(this, addon);\n };\n Object.defineProperty(Terminal, \"strings\", {\n get: function () {\n return Strings;\n },\n enumerable: true,\n configurable: true\n });\n return Terminal;\n}());\nexports.Terminal = Terminal;\nvar BufferApiView = (function () {\n function BufferApiView(_buffer) {\n this._buffer = _buffer;\n }\n Object.defineProperty(BufferApiView.prototype, \"cursorY\", {\n get: function () { return this._buffer.y; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferApiView.prototype, \"cursorX\", {\n get: function () { return this._buffer.x; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferApiView.prototype, \"viewportY\", {\n get: function () { return this._buffer.ydisp; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferApiView.prototype, \"baseY\", {\n get: function () { return this._buffer.ybase; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferApiView.prototype, \"length\", {\n get: function () { return this._buffer.lines.length; },\n enumerable: true,\n configurable: true\n });\n BufferApiView.prototype.getLine = function (y) {\n var line = this._buffer.lines.get(y);\n if (!line) {\n return undefined;\n }\n return new BufferLineApiView(line);\n };\n return BufferApiView;\n}());\nvar BufferLineApiView = (function () {\n function BufferLineApiView(_line) {\n this._line = _line;\n }\n Object.defineProperty(BufferLineApiView.prototype, \"isWrapped\", {\n get: function () { return this._line.isWrapped; },\n enumerable: true,\n configurable: true\n });\n BufferLineApiView.prototype.getCell = function (x) {\n if (x < 0 || x >= this._line.length) {\n return undefined;\n }\n return new BufferCellApiView(this._line, x);\n };\n BufferLineApiView.prototype.translateToString = function (trimRight, startColumn, endColumn) {\n return this._line.translateToString(trimRight, startColumn, endColumn);\n };\n return BufferLineApiView;\n}());\nvar BufferCellApiView = (function () {\n function BufferCellApiView(_line, _x) {\n this._line = _line;\n this._x = _x;\n }\n Object.defineProperty(BufferCellApiView.prototype, \"char\", {\n get: function () { return this._line.getString(this._x); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferCellApiView.prototype, \"width\", {\n get: function () { return this._line.getWidth(this._x); },\n enumerable: true,\n configurable: true\n });\n return BufferCellApiView;\n}());\n//# sourceMappingURL=Terminal.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TextDecoder_1 = require(\"../input/TextDecoder\");\nvar Types_1 = require(\"../../common/Types\");\nexports.DEFAULT_ATTR = (0 << 18) | (Types_1.DEFAULT_COLOR << 9) | (256 << 0);\nexports.CHAR_DATA_ATTR_INDEX = 0;\nexports.CHAR_DATA_CHAR_INDEX = 1;\nexports.CHAR_DATA_WIDTH_INDEX = 2;\nexports.CHAR_DATA_CODE_INDEX = 3;\nexports.NULL_CELL_CHAR = '';\nexports.NULL_CELL_WIDTH = 1;\nexports.NULL_CELL_CODE = 0;\nexports.WHITESPACE_CELL_CHAR = ' ';\nexports.WHITESPACE_CELL_WIDTH = 1;\nexports.WHITESPACE_CELL_CODE = 32;\nvar CELL_SIZE = 3;\nvar AttributeData = (function () {\n function AttributeData() {\n this.fg = 0;\n this.bg = 0;\n }\n AttributeData.toColorRGB = function (value) {\n return [\n value >>> 16 & 255,\n value >>> 8 & 255,\n value & 255\n ];\n };\n AttributeData.fromColorRGB = function (value) {\n return (value[0] & 255) << 16 | (value[1] & 255) << 8 | value[2] & 255;\n };\n AttributeData.prototype.clone = function () {\n var newObj = new AttributeData();\n newObj.fg = this.fg;\n newObj.bg = this.bg;\n return newObj;\n };\n AttributeData.prototype.isInverse = function () { return this.fg & 67108864; };\n AttributeData.prototype.isBold = function () { return this.fg & 134217728; };\n AttributeData.prototype.isUnderline = function () { return this.fg & 268435456; };\n AttributeData.prototype.isBlink = function () { return this.fg & 536870912; };\n AttributeData.prototype.isInvisible = function () { return this.fg & 1073741824; };\n AttributeData.prototype.isItalic = function () { return this.bg & 67108864; };\n AttributeData.prototype.isDim = function () { return this.bg & 134217728; };\n AttributeData.prototype.getFgColorMode = function () { return this.fg & 50331648; };\n AttributeData.prototype.getBgColorMode = function () { return this.bg & 50331648; };\n AttributeData.prototype.isFgRGB = function () { return (this.fg & 50331648) === 50331648; };\n AttributeData.prototype.isBgRGB = function () { return (this.bg & 50331648) === 50331648; };\n AttributeData.prototype.isFgPalette = function () { return (this.fg & 50331648) === 16777216 || (this.fg & 50331648) === 33554432; };\n AttributeData.prototype.isBgPalette = function () { return (this.bg & 50331648) === 16777216 || (this.bg & 50331648) === 33554432; };\n AttributeData.prototype.isFgDefault = function () { return (this.fg & 50331648) === 0; };\n AttributeData.prototype.isBgDefault = function () { return (this.bg & 50331648) === 0; };\n AttributeData.prototype.getFgColor = function () {\n switch (this.fg & 50331648) {\n case 16777216:\n case 33554432: return this.fg & 255;\n case 50331648: return this.fg & 16777215;\n default: return -1;\n }\n };\n AttributeData.prototype.getBgColor = function () {\n switch (this.bg & 50331648) {\n case 16777216:\n case 33554432: return this.bg & 255;\n case 50331648: return this.bg & 16777215;\n default: return -1;\n }\n };\n return AttributeData;\n}());\nexports.AttributeData = AttributeData;\nexports.DEFAULT_ATTR_DATA = Object.freeze(new AttributeData());\nvar CellData = (function (_super) {\n __extends(CellData, _super);\n function CellData() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.content = 0;\n _this.fg = 0;\n _this.bg = 0;\n _this.combinedData = '';\n return _this;\n }\n CellData.fromCharData = function (value) {\n var obj = new CellData();\n obj.setFromCharData(value);\n return obj;\n };\n CellData.prototype.isCombined = function () {\n return this.content & 2097152;\n };\n CellData.prototype.getWidth = function () {\n return this.content >> 22;\n };\n CellData.prototype.getChars = function () {\n if (this.content & 2097152) {\n return this.combinedData;\n }\n if (this.content & 2097151) {\n return TextDecoder_1.stringFromCodePoint(this.content & 2097151);\n }\n return '';\n };\n CellData.prototype.getCode = function () {\n return (this.isCombined())\n ? this.combinedData.charCodeAt(this.combinedData.length - 1)\n : this.content & 2097151;\n };\n CellData.prototype.setFromCharData = function (value) {\n this.fg = value[exports.CHAR_DATA_ATTR_INDEX];\n this.bg = 0;\n var combined = false;\n if (value[exports.CHAR_DATA_CHAR_INDEX].length > 2) {\n combined = true;\n }\n else if (value[exports.CHAR_DATA_CHAR_INDEX].length === 2) {\n var code = value[exports.CHAR_DATA_CHAR_INDEX].charCodeAt(0);\n if (0xD800 <= code && code <= 0xDBFF) {\n var second = value[exports.CHAR_DATA_CHAR_INDEX].charCodeAt(1);\n if (0xDC00 <= second && second <= 0xDFFF) {\n this.content = ((code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000) | (value[exports.CHAR_DATA_WIDTH_INDEX] << 22);\n }\n else {\n combined = true;\n }\n }\n else {\n combined = true;\n }\n }\n else {\n this.content = value[exports.CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[exports.CHAR_DATA_WIDTH_INDEX] << 22);\n }\n if (combined) {\n this.combinedData = value[exports.CHAR_DATA_CHAR_INDEX];\n this.content = 2097152 | (value[exports.CHAR_DATA_WIDTH_INDEX] << 22);\n }\n };\n CellData.prototype.getAsCharData = function () {\n return [this.fg, this.getChars(), this.getWidth(), this.getCode()];\n };\n return CellData;\n}(AttributeData));\nexports.CellData = CellData;\nvar BufferLine = (function () {\n function BufferLine(cols, fillCellData, isWrapped) {\n if (isWrapped === void 0) { isWrapped = false; }\n this.isWrapped = isWrapped;\n this._combined = {};\n this._data = new Uint32Array(cols * CELL_SIZE);\n var cell = fillCellData || CellData.fromCharData([0, exports.NULL_CELL_CHAR, exports.NULL_CELL_WIDTH, exports.NULL_CELL_CODE]);\n for (var i = 0; i < cols; ++i) {\n this.setCell(i, cell);\n }\n this.length = cols;\n }\n BufferLine.prototype.get = function (index) {\n var content = this._data[index * CELL_SIZE + 0];\n var cp = content & 2097151;\n return [\n this._data[index * CELL_SIZE + 1],\n (content & 2097152)\n ? this._combined[index]\n : (cp) ? TextDecoder_1.stringFromCodePoint(cp) : '',\n content >> 22,\n (content & 2097152)\n ? this._combined[index].charCodeAt(this._combined[index].length - 1)\n : cp\n ];\n };\n BufferLine.prototype.set = function (index, value) {\n this._data[index * CELL_SIZE + 1] = value[exports.CHAR_DATA_ATTR_INDEX];\n if (value[exports.CHAR_DATA_CHAR_INDEX].length > 1) {\n this._combined[index] = value[1];\n this._data[index * CELL_SIZE + 0] = index | 2097152 | (value[exports.CHAR_DATA_WIDTH_INDEX] << 22);\n }\n else {\n this._data[index * CELL_SIZE + 0] = value[exports.CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[exports.CHAR_DATA_WIDTH_INDEX] << 22);\n }\n };\n BufferLine.prototype.getWidth = function (index) {\n return this._data[index * CELL_SIZE + 0] >> 22;\n };\n BufferLine.prototype.hasWidth = function (index) {\n return this._data[index * CELL_SIZE + 0] & 12582912;\n };\n BufferLine.prototype.getFg = function (index) {\n return this._data[index * CELL_SIZE + 1];\n };\n BufferLine.prototype.getBg = function (index) {\n return this._data[index * CELL_SIZE + 2];\n };\n BufferLine.prototype.hasContent = function (index) {\n return this._data[index * CELL_SIZE + 0] & 4194303;\n };\n BufferLine.prototype.getCodePoint = function (index) {\n var content = this._data[index * CELL_SIZE + 0];\n if (content & 2097152) {\n return this._combined[index].charCodeAt(this._combined[index].length - 1);\n }\n return content & 2097151;\n };\n BufferLine.prototype.isCombined = function (index) {\n return this._data[index * CELL_SIZE + 0] & 2097152;\n };\n BufferLine.prototype.getString = function (index) {\n var content = this._data[index * CELL_SIZE + 0];\n if (content & 2097152) {\n return this._combined[index];\n }\n if (content & 2097151) {\n return TextDecoder_1.stringFromCodePoint(content & 2097151);\n }\n return '';\n };\n BufferLine.prototype.loadCell = function (index, cell) {\n var startIndex = index * CELL_SIZE;\n cell.content = this._data[startIndex + 0];\n cell.fg = this._data[startIndex + 1];\n cell.bg = this._data[startIndex + 2];\n if (cell.content & 2097152) {\n cell.combinedData = this._combined[index];\n }\n return cell;\n };\n BufferLine.prototype.setCell = function (index, cell) {\n if (cell.content & 2097152) {\n this._combined[index] = cell.combinedData;\n }\n this._data[index * CELL_SIZE + 0] = cell.content;\n this._data[index * CELL_SIZE + 1] = cell.fg;\n this._data[index * CELL_SIZE + 2] = cell.bg;\n };\n BufferLine.prototype.setCellFromCodePoint = function (index, codePoint, width, fg, bg) {\n this._data[index * CELL_SIZE + 0] = codePoint | (width << 22);\n this._data[index * CELL_SIZE + 1] = fg;\n this._data[index * CELL_SIZE + 2] = bg;\n };\n BufferLine.prototype.addCodepointToCell = function (index, codePoint) {\n var content = this._data[index * CELL_SIZE + 0];\n if (content & 2097152) {\n this._combined[index] += TextDecoder_1.stringFromCodePoint(codePoint);\n }\n else {\n if (content & 2097151) {\n this._combined[index] = TextDecoder_1.stringFromCodePoint(content & 2097151) + TextDecoder_1.stringFromCodePoint(codePoint);\n content &= ~2097151;\n content |= 2097152;\n }\n else {\n content = codePoint | (1 << 22);\n }\n this._data[index * CELL_SIZE + 0] = content;\n }\n };\n BufferLine.prototype.insertCells = function (pos, n, fillCellData) {\n pos %= this.length;\n if (n < this.length - pos) {\n var cell = new CellData();\n for (var i = this.length - pos - n - 1; i >= 0; --i) {\n this.setCell(pos + n + i, this.loadCell(pos + i, cell));\n }\n for (var i = 0; i < n; ++i) {\n this.setCell(pos + i, fillCellData);\n }\n }\n else {\n for (var i = pos; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n };\n BufferLine.prototype.deleteCells = function (pos, n, fillCellData) {\n pos %= this.length;\n if (n < this.length - pos) {\n var cell = new CellData();\n for (var i = 0; i < this.length - pos - n; ++i) {\n this.setCell(pos + i, this.loadCell(pos + n + i, cell));\n }\n for (var i = this.length - n; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n else {\n for (var i = pos; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n };\n BufferLine.prototype.replaceCells = function (start, end, fillCellData) {\n while (start < end && start < this.length) {\n this.setCell(start++, fillCellData);\n }\n };\n BufferLine.prototype.resize = function (cols, fillCellData) {\n if (cols === this.length) {\n return;\n }\n if (cols > this.length) {\n var data = new Uint32Array(cols * CELL_SIZE);\n if (this.length) {\n if (cols * CELL_SIZE < this._data.length) {\n data.set(this._data.subarray(0, cols * CELL_SIZE));\n }\n else {\n data.set(this._data);\n }\n }\n this._data = data;\n for (var i = this.length; i < cols; ++i) {\n this.setCell(i, fillCellData);\n }\n }\n else {\n if (cols) {\n var data = new Uint32Array(cols * CELL_SIZE);\n data.set(this._data.subarray(0, cols * CELL_SIZE));\n this._data = data;\n var keys = Object.keys(this._combined);\n for (var i = 0; i < keys.length; i++) {\n var key = parseInt(keys[i], 10);\n if (key >= cols) {\n delete this._combined[key];\n }\n }\n }\n else {\n this._data = new Uint32Array(0);\n this._combined = {};\n }\n }\n this.length = cols;\n };\n BufferLine.prototype.fill = function (fillCellData) {\n this._combined = {};\n for (var i = 0; i < this.length; ++i) {\n this.setCell(i, fillCellData);\n }\n };\n BufferLine.prototype.copyFrom = function (line) {\n if (this.length !== line.length) {\n this._data = new Uint32Array(line._data);\n }\n else {\n this._data.set(line._data);\n }\n this.length = line.length;\n this._combined = {};\n for (var el in line._combined) {\n this._combined[el] = line._combined[el];\n }\n this.isWrapped = line.isWrapped;\n };\n BufferLine.prototype.clone = function () {\n var newLine = new BufferLine(0);\n newLine._data = new Uint32Array(this._data);\n newLine.length = this.length;\n for (var el in this._combined) {\n newLine._combined[el] = this._combined[el];\n }\n newLine.isWrapped = this.isWrapped;\n return newLine;\n };\n BufferLine.prototype.getTrimmedLength = function () {\n for (var i = this.length - 1; i >= 0; --i) {\n if ((this._data[i * CELL_SIZE + 0] & 4194303)) {\n return i + (this._data[i * CELL_SIZE + 0] >> 22);\n }\n }\n return 0;\n };\n BufferLine.prototype.copyCellsFrom = function (src, srcCol, destCol, length, applyInReverse) {\n var srcData = src._data;\n if (applyInReverse) {\n for (var cell = length - 1; cell >= 0; cell--) {\n for (var i = 0; i < CELL_SIZE; i++) {\n this._data[(destCol + cell) * CELL_SIZE + i] = srcData[(srcCol + cell) * CELL_SIZE + i];\n }\n }\n }\n else {\n for (var cell = 0; cell < length; cell++) {\n for (var i = 0; i < CELL_SIZE; i++) {\n this._data[(destCol + cell) * CELL_SIZE + i] = srcData[(srcCol + cell) * CELL_SIZE + i];\n }\n }\n }\n var srcCombinedKeys = Object.keys(src._combined);\n for (var i = 0; i < srcCombinedKeys.length; i++) {\n var key = parseInt(srcCombinedKeys[i], 10);\n if (key >= srcCol) {\n this._combined[key - srcCol + destCol] = src._combined[key];\n }\n }\n };\n BufferLine.prototype.translateToString = function (trimRight, startCol, endCol) {\n if (trimRight === void 0) { trimRight = false; }\n if (startCol === void 0) { startCol = 0; }\n if (endCol === void 0) { endCol = this.length; }\n if (trimRight) {\n endCol = Math.min(endCol, this.getTrimmedLength());\n }\n var result = '';\n while (startCol < endCol) {\n var content = this._data[startCol * CELL_SIZE + 0];\n var cp = content & 2097151;\n result += (content & 2097152) ? this._combined[startCol] : (cp) ? TextDecoder_1.stringFromCodePoint(cp) : exports.WHITESPACE_CELL_CHAR;\n startCol += (content >> 22) || 1;\n }\n return result;\n };\n return BufferLine;\n}());\nexports.BufferLine = BufferLine;\n//# sourceMappingURL=BufferLine.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-page-header',{attrs:{\"content\":_vm.title},on:{\"back\":_vm.goBack}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Back.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Back.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Back.vue?vue&type=template&id=a99ad1f8&\"\nimport script from \"./Back.vue?vue&type=script&lang=js&\"\nexport * from \"./Back.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction reflowLargerGetLinesToRemove(lines, oldCols, newCols, bufferAbsoluteY, nullCell) {\n var toRemove = [];\n for (var y = 0; y < lines.length - 1; y++) {\n var i = y;\n var nextLine = lines.get(++i);\n if (!nextLine.isWrapped) {\n continue;\n }\n var wrappedLines = [lines.get(y)];\n while (i < lines.length && nextLine.isWrapped) {\n wrappedLines.push(nextLine);\n nextLine = lines.get(++i);\n }\n if (bufferAbsoluteY >= y && bufferAbsoluteY < i) {\n y += wrappedLines.length - 1;\n continue;\n }\n var destLineIndex = 0;\n var destCol = getWrappedLineTrimmedLength(wrappedLines, destLineIndex, oldCols);\n var srcLineIndex = 1;\n var srcCol = 0;\n while (srcLineIndex < wrappedLines.length) {\n var srcTrimmedTineLength = getWrappedLineTrimmedLength(wrappedLines, srcLineIndex, oldCols);\n var srcRemainingCells = srcTrimmedTineLength - srcCol;\n var destRemainingCells = newCols - destCol;\n var cellsToCopy = Math.min(srcRemainingCells, destRemainingCells);\n wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[srcLineIndex], srcCol, destCol, cellsToCopy, false);\n destCol += cellsToCopy;\n if (destCol === newCols) {\n destLineIndex++;\n destCol = 0;\n }\n srcCol += cellsToCopy;\n if (srcCol === srcTrimmedTineLength) {\n srcLineIndex++;\n srcCol = 0;\n }\n if (destCol === 0 && destLineIndex !== 0) {\n if (wrappedLines[destLineIndex - 1].getWidth(newCols - 1) === 2) {\n wrappedLines[destLineIndex].copyCellsFrom(wrappedLines[destLineIndex - 1], newCols - 1, destCol++, 1, false);\n wrappedLines[destLineIndex - 1].setCell(newCols - 1, nullCell);\n }\n }\n }\n wrappedLines[destLineIndex].replaceCells(destCol, newCols, nullCell);\n var countToRemove = 0;\n for (var i_1 = wrappedLines.length - 1; i_1 > 0; i_1--) {\n if (i_1 > destLineIndex || wrappedLines[i_1].getTrimmedLength() === 0) {\n countToRemove++;\n }\n else {\n break;\n }\n }\n if (countToRemove > 0) {\n toRemove.push(y + wrappedLines.length - countToRemove);\n toRemove.push(countToRemove);\n }\n y += wrappedLines.length - 1;\n }\n return toRemove;\n}\nexports.reflowLargerGetLinesToRemove = reflowLargerGetLinesToRemove;\nfunction reflowLargerCreateNewLayout(lines, toRemove) {\n var layout = [];\n var nextToRemoveIndex = 0;\n var nextToRemoveStart = toRemove[nextToRemoveIndex];\n var countRemovedSoFar = 0;\n for (var i = 0; i < lines.length; i++) {\n if (nextToRemoveStart === i) {\n var countToRemove = toRemove[++nextToRemoveIndex];\n lines.onDeleteEmitter.fire({\n index: i - countRemovedSoFar,\n amount: countToRemove\n });\n i += countToRemove - 1;\n countRemovedSoFar += countToRemove;\n nextToRemoveStart = toRemove[++nextToRemoveIndex];\n }\n else {\n layout.push(i);\n }\n }\n return {\n layout: layout,\n countRemoved: countRemovedSoFar\n };\n}\nexports.reflowLargerCreateNewLayout = reflowLargerCreateNewLayout;\nfunction reflowLargerApplyNewLayout(lines, newLayout) {\n var newLayoutLines = [];\n for (var i = 0; i < newLayout.length; i++) {\n newLayoutLines.push(lines.get(newLayout[i]));\n }\n for (var i = 0; i < newLayoutLines.length; i++) {\n lines.set(i, newLayoutLines[i]);\n }\n lines.length = newLayout.length;\n}\nexports.reflowLargerApplyNewLayout = reflowLargerApplyNewLayout;\nfunction reflowSmallerGetNewLineLengths(wrappedLines, oldCols, newCols) {\n var newLineLengths = [];\n var cellsNeeded = wrappedLines.map(function (l, i) { return getWrappedLineTrimmedLength(wrappedLines, i, oldCols); }).reduce(function (p, c) { return p + c; });\n var srcCol = 0;\n var srcLine = 0;\n var cellsAvailable = 0;\n while (cellsAvailable < cellsNeeded) {\n if (cellsNeeded - cellsAvailable < newCols) {\n newLineLengths.push(cellsNeeded - cellsAvailable);\n break;\n }\n srcCol += newCols;\n var oldTrimmedLength = getWrappedLineTrimmedLength(wrappedLines, srcLine, oldCols);\n if (srcCol > oldTrimmedLength) {\n srcCol -= oldTrimmedLength;\n srcLine++;\n }\n var endsWithWide = wrappedLines[srcLine].getWidth(srcCol - 1) === 2;\n if (endsWithWide) {\n srcCol--;\n }\n var lineLength = endsWithWide ? newCols - 1 : newCols;\n newLineLengths.push(lineLength);\n cellsAvailable += lineLength;\n }\n return newLineLengths;\n}\nexports.reflowSmallerGetNewLineLengths = reflowSmallerGetNewLineLengths;\nfunction getWrappedLineTrimmedLength(lines, i, cols) {\n if (i === lines.length - 1) {\n return lines[i].getTrimmedLength();\n }\n var endsInNull = !(lines[i].hasContent(cols - 1)) && lines[i].getWidth(cols - 1) === 1;\n var followingLineStartsWithWide = lines[i + 1].getWidth(0) === 2;\n if (endsInNull && followingLineStartsWithWide) {\n return cols - 1;\n }\n return cols;\n}\nexports.getWrappedLineTrimmedLength = getWrappedLineTrimmedLength;\n//# sourceMappingURL=BufferReflow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction fill(array, value, start, end) {\n if (array.fill) {\n return array.fill(value, start, end);\n }\n return fillFallback(array, value, start, end);\n}\nexports.fill = fill;\nfunction fillFallback(array, value, start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = array.length; }\n if (start >= array.length) {\n return array;\n }\n start = (array.length + start) % array.length;\n if (end >= array.length) {\n end = array.length;\n }\n else {\n end = (array.length + end) % array.length;\n }\n for (var i = start; i < end; ++i) {\n array[i] = value;\n }\n return array;\n}\nexports.fillFallback = fillFallback;\nfunction concat(a, b) {\n var result = new a.constructor(a.length + b.length);\n result.set(a);\n result.set(b, a.length);\n return result;\n}\nexports.concat = concat;\n//# sourceMappingURL=TypedArrayUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar C0;\n(function (C0) {\n C0.NUL = '\\x00';\n C0.SOH = '\\x01';\n C0.STX = '\\x02';\n C0.ETX = '\\x03';\n C0.EOT = '\\x04';\n C0.ENQ = '\\x05';\n C0.ACK = '\\x06';\n C0.BEL = '\\x07';\n C0.BS = '\\x08';\n C0.HT = '\\x09';\n C0.LF = '\\x0a';\n C0.VT = '\\x0b';\n C0.FF = '\\x0c';\n C0.CR = '\\x0d';\n C0.SO = '\\x0e';\n C0.SI = '\\x0f';\n C0.DLE = '\\x10';\n C0.DC1 = '\\x11';\n C0.DC2 = '\\x12';\n C0.DC3 = '\\x13';\n C0.DC4 = '\\x14';\n C0.NAK = '\\x15';\n C0.SYN = '\\x16';\n C0.ETB = '\\x17';\n C0.CAN = '\\x18';\n C0.EM = '\\x19';\n C0.SUB = '\\x1a';\n C0.ESC = '\\x1b';\n C0.FS = '\\x1c';\n C0.GS = '\\x1d';\n C0.RS = '\\x1e';\n C0.US = '\\x1f';\n C0.SP = '\\x20';\n C0.DEL = '\\x7f';\n})(C0 = exports.C0 || (exports.C0 = {}));\nvar C1;\n(function (C1) {\n C1.PAD = '\\x80';\n C1.HOP = '\\x81';\n C1.BPH = '\\x82';\n C1.NBH = '\\x83';\n C1.IND = '\\x84';\n C1.NEL = '\\x85';\n C1.SSA = '\\x86';\n C1.ESA = '\\x87';\n C1.HTS = '\\x88';\n C1.HTJ = '\\x89';\n C1.VTS = '\\x8a';\n C1.PLD = '\\x8b';\n C1.PLU = '\\x8c';\n C1.RI = '\\x8d';\n C1.SS2 = '\\x8e';\n C1.SS3 = '\\x8f';\n C1.DCS = '\\x90';\n C1.PU1 = '\\x91';\n C1.PU2 = '\\x92';\n C1.STS = '\\x93';\n C1.CCH = '\\x94';\n C1.MW = '\\x95';\n C1.SPA = '\\x96';\n C1.EPA = '\\x97';\n C1.SOS = '\\x98';\n C1.SGCI = '\\x99';\n C1.SCI = '\\x9a';\n C1.CSI = '\\x9b';\n C1.ST = '\\x9c';\n C1.OSC = '\\x9d';\n C1.PM = '\\x9e';\n C1.APC = '\\x9f';\n})(C1 = exports.C1 || (exports.C1 = {}));\n//# sourceMappingURL=EscapeSequences.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction stringFromCodePoint(codePoint) {\n if (codePoint > 0xFFFF) {\n codePoint -= 0x10000;\n return String.fromCharCode((codePoint >> 10) + 0xD800) + String.fromCharCode((codePoint % 0x400) + 0xDC00);\n }\n return String.fromCharCode(codePoint);\n}\nexports.stringFromCodePoint = stringFromCodePoint;\nfunction utf32ToString(data, start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = data.length; }\n var result = '';\n for (var i = start; i < end; ++i) {\n var codepoint = data[i];\n if (codepoint > 0xFFFF) {\n codepoint -= 0x10000;\n result += String.fromCharCode((codepoint >> 10) + 0xD800) + String.fromCharCode((codepoint % 0x400) + 0xDC00);\n }\n else {\n result += String.fromCharCode(codepoint);\n }\n }\n return result;\n}\nexports.utf32ToString = utf32ToString;\nvar StringToUtf32 = (function () {\n function StringToUtf32() {\n this._interim = 0;\n }\n StringToUtf32.prototype.clear = function () {\n this._interim = 0;\n };\n StringToUtf32.prototype.decode = function (input, target) {\n var length = input.length;\n if (!length) {\n return 0;\n }\n var size = 0;\n var startPos = 0;\n if (this._interim) {\n var second = input.charCodeAt(startPos++);\n if (0xDC00 <= second && second <= 0xDFFF) {\n target[size++] = (this._interim - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n else {\n target[size++] = this._interim;\n target[size++] = second;\n }\n this._interim = 0;\n }\n for (var i = startPos; i < length; ++i) {\n var code = input.charCodeAt(i);\n if (0xD800 <= code && code <= 0xDBFF) {\n if (++i >= length) {\n this._interim = code;\n return size;\n }\n var second = input.charCodeAt(i);\n if (0xDC00 <= second && second <= 0xDFFF) {\n target[size++] = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n else {\n target[size++] = code;\n target[size++] = second;\n }\n continue;\n }\n target[size++] = code;\n }\n return size;\n };\n return StringToUtf32;\n}());\nexports.StringToUtf32 = StringToUtf32;\nvar Utf8ToUtf32 = (function () {\n function Utf8ToUtf32() {\n this.interim = new Uint8Array(3);\n }\n Utf8ToUtf32.prototype.clear = function () {\n this.interim.fill(0);\n };\n Utf8ToUtf32.prototype.decode = function (input, target) {\n var length = input.length;\n if (!length) {\n return 0;\n }\n var size = 0;\n var byte1;\n var byte2;\n var byte3;\n var byte4;\n var codepoint = 0;\n var startPos = 0;\n if (this.interim[0]) {\n var discardInterim = false;\n var cp = this.interim[0];\n cp &= ((((cp & 0xE0) === 0xC0)) ? 0x1F : (((cp & 0xF0) === 0xE0)) ? 0x0F : 0x07);\n var pos = 0;\n var tmp = void 0;\n while ((tmp = this.interim[++pos] & 0x3F) && pos < 4) {\n cp <<= 6;\n cp |= tmp;\n }\n var type = (((this.interim[0] & 0xE0) === 0xC0)) ? 2 : (((this.interim[0] & 0xF0) === 0xE0)) ? 3 : 4;\n var missing = type - pos;\n while (startPos < missing) {\n if (startPos >= length) {\n return 0;\n }\n tmp = input[startPos++];\n if ((tmp & 0xC0) !== 0x80) {\n startPos--;\n discardInterim = true;\n break;\n }\n else {\n this.interim[pos++] = tmp;\n cp <<= 6;\n cp |= tmp & 0x3F;\n }\n }\n if (!discardInterim) {\n if (type === 2) {\n if (cp < 0x80) {\n startPos--;\n }\n else {\n target[size++] = cp;\n }\n }\n else if (type === 3) {\n if (cp < 0x0800 || (cp >= 0xD800 && cp <= 0xDFFF)) {\n }\n else {\n target[size++] = cp;\n }\n }\n else {\n if (codepoint < 0x010000 || codepoint > 0x10FFFF) {\n }\n else {\n target[size++] = cp;\n }\n }\n }\n this.interim.fill(0);\n }\n var fourStop = length - 4;\n var i = startPos;\n while (i < length) {\n while (i < fourStop\n && !((byte1 = input[i]) & 0x80)\n && !((byte2 = input[i + 1]) & 0x80)\n && !((byte3 = input[i + 2]) & 0x80)\n && !((byte4 = input[i + 3]) & 0x80)) {\n target[size++] = byte1;\n target[size++] = byte2;\n target[size++] = byte3;\n target[size++] = byte4;\n i += 4;\n }\n byte1 = input[i++];\n if (byte1 < 0x80) {\n target[size++] = byte1;\n }\n else if ((byte1 & 0xE0) === 0xC0) {\n if (i >= length) {\n this.interim[0] = byte1;\n return size;\n }\n byte2 = input[i++];\n if ((byte2 & 0xC0) !== 0x80) {\n i--;\n continue;\n }\n codepoint = (byte1 & 0x1F) << 6 | (byte2 & 0x3F);\n if (codepoint < 0x80) {\n i--;\n continue;\n }\n target[size++] = codepoint;\n }\n else if ((byte1 & 0xF0) === 0xE0) {\n if (i >= length) {\n this.interim[0] = byte1;\n return size;\n }\n byte2 = input[i++];\n if ((byte2 & 0xC0) !== 0x80) {\n i--;\n continue;\n }\n if (i >= length) {\n this.interim[0] = byte1;\n this.interim[1] = byte2;\n return size;\n }\n byte3 = input[i++];\n if ((byte3 & 0xC0) !== 0x80) {\n i--;\n continue;\n }\n codepoint = (byte1 & 0x0F) << 12 | (byte2 & 0x3F) << 6 | (byte3 & 0x3F);\n if (codepoint < 0x0800 || (codepoint >= 0xD800 && codepoint <= 0xDFFF)) {\n continue;\n }\n target[size++] = codepoint;\n }\n else if ((byte1 & 0xF8) === 0xF0) {\n if (i >= length) {\n this.interim[0] = byte1;\n return size;\n }\n byte2 = input[i++];\n if ((byte2 & 0xC0) !== 0x80) {\n i--;\n continue;\n }\n if (i >= length) {\n this.interim[0] = byte1;\n this.interim[1] = byte2;\n return size;\n }\n byte3 = input[i++];\n if ((byte3 & 0xC0) !== 0x80) {\n i--;\n continue;\n }\n if (i >= length) {\n this.interim[0] = byte1;\n this.interim[1] = byte2;\n this.interim[2] = byte3;\n return size;\n }\n byte4 = input[i++];\n if ((byte4 & 0xC0) !== 0x80) {\n i--;\n continue;\n }\n codepoint = (byte1 & 0x07) << 18 | (byte2 & 0x3F) << 12 | (byte3 & 0x3F) << 6 | (byte4 & 0x3F);\n if (codepoint < 0x010000 || codepoint > 0x10FFFF) {\n continue;\n }\n target[size++] = codepoint;\n }\n else {\n }\n }\n return size;\n };\n return Utf8ToUtf32;\n}());\nexports.Utf8ToUtf32 = Utf8ToUtf32;\n//# sourceMappingURL=TextDecoder.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar NoneCharAtlas = (function (_super) {\n __extends(NoneCharAtlas, _super);\n function NoneCharAtlas(document, config) {\n return _super.call(this) || this;\n }\n NoneCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n return false;\n };\n return NoneCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = NoneCharAtlas;\n//# sourceMappingURL=NoneCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseCharAtlas = (function () {\n function BaseCharAtlas() {\n this._didWarmUp = false;\n }\n BaseCharAtlas.prototype.dispose = function () { };\n BaseCharAtlas.prototype.warmUp = function () {\n if (!this._didWarmUp) {\n this._doWarmUp();\n this._didWarmUp = true;\n }\n };\n BaseCharAtlas.prototype._doWarmUp = function () { };\n BaseCharAtlas.prototype.beginFrame = function () { };\n return BaseCharAtlas;\n}());\nexports.default = BaseCharAtlas;\n//# sourceMappingURL=BaseCharAtlas.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.blankLine = 'Blank line';\nexports.promptLabel = 'Terminal input';\nexports.tooMuchOutput = 'Too much output to announce, navigate to rows manually to read';\n//# sourceMappingURL=Strings.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./Lifecycle\");\nvar EventEmitter = (function (_super) {\n __extends(EventEmitter, _super);\n function EventEmitter() {\n var _this = _super.call(this) || this;\n _this._events = _this._events || {};\n return _this;\n }\n EventEmitter.prototype.on = function (type, listener) {\n this._events[type] = this._events[type] || [];\n this._events[type].push(listener);\n };\n EventEmitter.prototype.addDisposableListener = function (type, handler) {\n var _this = this;\n this.on(type, handler);\n var disposed = false;\n return {\n dispose: function () {\n if (disposed) {\n return;\n }\n _this.off(type, handler);\n disposed = true;\n }\n };\n };\n EventEmitter.prototype.off = function (type, listener) {\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n var i = obj.length;\n while (i--) {\n if (obj[i] === listener) {\n obj.splice(i, 1);\n return;\n }\n }\n };\n EventEmitter.prototype.removeAllListeners = function (type) {\n if (this._events[type]) {\n delete this._events[type];\n }\n };\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n for (var i = 0; i < obj.length; i++) {\n obj[i].apply(this, args);\n }\n };\n EventEmitter.prototype.emitMayRemoveListeners = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._events[type]) {\n return;\n }\n var obj = this._events[type];\n var length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n obj[i].apply(this, args);\n i -= length - obj.length;\n length = obj.length;\n }\n };\n EventEmitter.prototype.listeners = function (type) {\n return this._events[type] || [];\n };\n EventEmitter.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._events = {};\n };\n return EventEmitter;\n}(Lifecycle_1.Disposable));\nexports.EventEmitter = EventEmitter;\n//# sourceMappingURL=EventEmitter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper_1 = require(\"./MouseHelper\");\nvar Browser = require(\"./common/Platform\");\nvar SelectionModel_1 = require(\"./SelectionModel\");\nvar AltClickHandler_1 = require(\"./handlers/AltClickHandler\");\nvar BufferLine_1 = require(\"./core/buffer/BufferLine\");\nvar EventEmitter2_1 = require(\"./common/EventEmitter2\");\nvar DRAG_SCROLL_MAX_THRESHOLD = 50;\nvar DRAG_SCROLL_MAX_SPEED = 15;\nvar DRAG_SCROLL_INTERVAL = 50;\nvar ALT_CLICK_MOVE_CURSOR_TIME = 500;\nvar WORD_SEPARATORS = ' ()[]{}\\'\"';\nvar NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);\nvar ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');\nvar SelectionManager = (function () {\n function SelectionManager(_terminal, _charMeasure) {\n this._terminal = _terminal;\n this._charMeasure = _charMeasure;\n this._enabled = true;\n this._workCell = new BufferLine_1.CellData();\n this._onLinuxMouseSelection = new EventEmitter2_1.EventEmitter2();\n this._onRedrawRequest = new EventEmitter2_1.EventEmitter2();\n this._onSelectionChange = new EventEmitter2_1.EventEmitter2();\n this._initListeners();\n this.enable();\n this._model = new SelectionModel_1.SelectionModel(_terminal);\n this._activeSelectionMode = 0;\n }\n Object.defineProperty(SelectionManager.prototype, \"onLinuxMouseSelection\", {\n get: function () { return this._onLinuxMouseSelection.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"onRedrawRequest\", {\n get: function () { return this._onRedrawRequest.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"onSelectionChange\", {\n get: function () { return this._onSelectionChange.event; },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype.dispose = function () {\n this._removeMouseDownListeners();\n };\n Object.defineProperty(SelectionManager.prototype, \"_buffer\", {\n get: function () {\n return this._terminal.buffers.active;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype._initListeners = function () {\n var _this = this;\n this._mouseMoveListener = function (event) { return _this._onMouseMove(event); };\n this._mouseUpListener = function (event) { return _this._onMouseUp(event); };\n this.initBuffersListeners();\n };\n SelectionManager.prototype.initBuffersListeners = function () {\n var _this = this;\n this._trimListener = this._terminal.buffer.lines.onTrim(function (amount) { return _this._onTrim(amount); });\n this._terminal.buffers.onBufferActivate(function (e) { return _this._onBufferActivate(e); });\n };\n SelectionManager.prototype.disable = function () {\n this.clearSelection();\n this._enabled = false;\n };\n SelectionManager.prototype.enable = function () {\n this._enabled = true;\n };\n Object.defineProperty(SelectionManager.prototype, \"selectionStart\", {\n get: function () { return this._model.finalSelectionStart; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionEnd\", {\n get: function () { return this._model.finalSelectionEnd; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"hasSelection\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[0] !== end[0] || start[1] !== end[1];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionManager.prototype, \"selectionText\", {\n get: function () {\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return '';\n }\n var result = [];\n if (this._activeSelectionMode === 3) {\n if (start[0] === end[0]) {\n return '';\n }\n for (var i = start[1]; i <= end[1]; i++) {\n var lineText = this._buffer.translateBufferLineToString(i, true, start[0], end[0]);\n result.push(lineText);\n }\n }\n else {\n var startRowEndCol = start[1] === end[1] ? end[0] : undefined;\n result.push(this._buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));\n for (var i = start[1] + 1; i <= end[1] - 1; i++) {\n var bufferLine = this._buffer.lines.get(i);\n var lineText = this._buffer.translateBufferLineToString(i, true);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n if (start[1] !== end[1]) {\n var bufferLine = this._buffer.lines.get(end[1]);\n var lineText = this._buffer.translateBufferLineToString(end[1], true, 0, end[0]);\n if (bufferLine.isWrapped) {\n result[result.length - 1] += lineText;\n }\n else {\n result.push(lineText);\n }\n }\n }\n var formattedResult = result.map(function (line) {\n return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');\n }).join(Browser.isMSWindows ? '\\r\\n' : '\\n');\n return formattedResult;\n },\n enumerable: true,\n configurable: true\n });\n SelectionManager.prototype.clearSelection = function () {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this.refresh();\n this._onSelectionChange.fire();\n };\n SelectionManager.prototype.refresh = function (isLinuxMouseSelection) {\n var _this = this;\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); });\n }\n if (Browser.isLinux && isLinuxMouseSelection) {\n var selectionText = this.selectionText;\n if (selectionText.length) {\n this._onLinuxMouseSelection.fire(this.selectionText);\n }\n }\n };\n SelectionManager.prototype._refresh = function () {\n this._refreshAnimationFrame = null;\n this._onRedrawRequest.fire({\n start: this._model.finalSelectionStart,\n end: this._model.finalSelectionEnd,\n columnSelectMode: this._activeSelectionMode === 3\n });\n };\n SelectionManager.prototype.isClickInSelection = function (event) {\n var coords = this._getMouseBufferCoords(event);\n var start = this._model.finalSelectionStart;\n var end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return this._areCoordsInSelection(coords, start, end);\n };\n SelectionManager.prototype._areCoordsInSelection = function (coords, start, end) {\n return (coords[1] > start[1] && coords[1] < end[1]) ||\n (start[1] === end[1] && coords[1] === start[1] && coords[0] >= start[0] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === end[1] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === start[1] && coords[0] >= start[0]);\n };\n SelectionManager.prototype.selectWordAtCursor = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._selectWordAt(coords, false);\n this._model.selectionEnd = null;\n this.refresh(true);\n }\n };\n SelectionManager.prototype.selectAll = function () {\n this._model.isSelectAllActive = true;\n this.refresh();\n this._onSelectionChange.fire();\n };\n SelectionManager.prototype.selectLines = function (start, end) {\n this._model.clearSelection();\n start = Math.max(start, 0);\n end = Math.min(end, this._terminal.buffer.lines.length - 1);\n this._model.selectionStart = [0, start];\n this._model.selectionEnd = [this._terminal.cols, end];\n this.refresh();\n this._onSelectionChange.fire();\n };\n SelectionManager.prototype._onTrim = function (amount) {\n var needsRefresh = this._model.onTrim(amount);\n if (needsRefresh) {\n this.refresh();\n }\n };\n SelectionManager.prototype._getMouseBufferCoords = function (event) {\n var coords = this._terminal.mouseHelper.getCoords(event, this._terminal.screenElement, this._charMeasure, this._terminal.cols, this._terminal.rows, true);\n if (!coords) {\n return null;\n }\n coords[0]--;\n coords[1]--;\n coords[1] += this._terminal.buffer.ydisp;\n return coords;\n };\n SelectionManager.prototype._getMouseEventScrollAmount = function (event) {\n var offset = MouseHelper_1.MouseHelper.getCoordsRelativeToElement(event, this._terminal.screenElement)[1];\n var terminalHeight = this._terminal.rows * Math.ceil(this._charMeasure.height * this._terminal.options.lineHeight);\n if (offset >= 0 && offset <= terminalHeight) {\n return 0;\n }\n if (offset > terminalHeight) {\n offset -= terminalHeight;\n }\n offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);\n offset /= DRAG_SCROLL_MAX_THRESHOLD;\n return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));\n };\n SelectionManager.prototype.shouldForceSelection = function (event) {\n if (Browser.isMac) {\n return event.altKey && this._terminal.options.macOptionClickForcesSelection;\n }\n return event.shiftKey;\n };\n SelectionManager.prototype.onMouseDown = function (event) {\n this._mouseDownTimeStamp = event.timeStamp;\n if (event.button === 2 && this.hasSelection) {\n return;\n }\n if (event.button !== 0) {\n return;\n }\n if (!this._enabled) {\n if (!this.shouldForceSelection(event)) {\n return;\n }\n event.stopPropagation();\n }\n event.preventDefault();\n this._dragScrollAmount = 0;\n if (this._enabled && event.shiftKey) {\n this._onIncrementalClick(event);\n }\n else {\n if (event.detail === 1) {\n this._onSingleClick(event);\n }\n else if (event.detail === 2) {\n this._onDoubleClick(event);\n }\n else if (event.detail === 3) {\n this._onTripleClick(event);\n }\n }\n this._addMouseDownListeners();\n this.refresh(true);\n };\n SelectionManager.prototype._addMouseDownListeners = function () {\n var _this = this;\n this._terminal.element.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.addEventListener('mouseup', this._mouseUpListener);\n this._dragScrollIntervalTimer = setInterval(function () { return _this._dragScroll(); }, DRAG_SCROLL_INTERVAL);\n };\n SelectionManager.prototype._removeMouseDownListeners = function () {\n if (this._terminal.element.ownerDocument) {\n this._terminal.element.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);\n }\n clearInterval(this._dragScrollIntervalTimer);\n this._dragScrollIntervalTimer = null;\n };\n SelectionManager.prototype._onIncrementalClick = function (event) {\n if (this._model.selectionStart) {\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n }\n };\n SelectionManager.prototype._onSingleClick = function (event) {\n this._model.selectionStartLength = 0;\n this._model.isSelectAllActive = false;\n this._activeSelectionMode = this.shouldColumnSelect(event) ? 3 : 0;\n this._model.selectionStart = this._getMouseBufferCoords(event);\n if (!this._model.selectionStart) {\n return;\n }\n this._model.selectionEnd = null;\n var line = this._buffer.lines.get(this._model.selectionStart[1]);\n if (!line) {\n return;\n }\n if (line.length >= this._model.selectionStart[0]) {\n return;\n }\n if (line.hasWidth(this._model.selectionStart[0]) === 0) {\n this._model.selectionStart[0]++;\n }\n };\n SelectionManager.prototype._onDoubleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = 1;\n this._selectWordAt(coords, true);\n }\n };\n SelectionManager.prototype._onTripleClick = function (event) {\n var coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = 2;\n this._selectLineAt(coords[1]);\n }\n };\n SelectionManager.prototype.shouldColumnSelect = function (event) {\n return event.altKey && !(Browser.isMac && this._terminal.options.macOptionClickForcesSelection);\n };\n SelectionManager.prototype._onMouseMove = function (event) {\n event.stopImmediatePropagation();\n var previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n if (!this._model.selectionEnd) {\n this.refresh(true);\n return;\n }\n if (this._activeSelectionMode === 2) {\n if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {\n this._model.selectionEnd[0] = 0;\n }\n else {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n }\n else if (this._activeSelectionMode === 1) {\n this._selectToWordAt(this._model.selectionEnd);\n }\n this._dragScrollAmount = this._getMouseEventScrollAmount(event);\n if (this._activeSelectionMode !== 3) {\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n else if (this._dragScrollAmount < 0) {\n this._model.selectionEnd[0] = 0;\n }\n }\n if (this._model.selectionEnd[1] < this._buffer.lines.length) {\n if (this._buffer.lines.get(this._model.selectionEnd[1]).hasWidth(this._model.selectionEnd[0]) === 0) {\n this._model.selectionEnd[0]++;\n }\n }\n if (!previousSelectionEnd ||\n previousSelectionEnd[0] !== this._model.selectionEnd[0] ||\n previousSelectionEnd[1] !== this._model.selectionEnd[1]) {\n this.refresh(true);\n }\n };\n SelectionManager.prototype._dragScroll = function () {\n if (this._dragScrollAmount) {\n this._terminal.scrollLines(this._dragScrollAmount, false);\n if (this._dragScrollAmount > 0) {\n if (this._activeSelectionMode !== 3) {\n this._model.selectionEnd[0] = this._terminal.cols;\n }\n this._model.selectionEnd[1] = Math.min(this._terminal.buffer.ydisp + this._terminal.rows, this._terminal.buffer.lines.length - 1);\n }\n else {\n if (this._activeSelectionMode !== 3) {\n this._model.selectionEnd[0] = 0;\n }\n this._model.selectionEnd[1] = this._terminal.buffer.ydisp;\n }\n this.refresh();\n }\n };\n SelectionManager.prototype._onMouseUp = function (event) {\n var timeElapsed = event.timeStamp - this._mouseDownTimeStamp;\n this._removeMouseDownListeners();\n if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME) {\n (new AltClickHandler_1.AltClickHandler(event, this._terminal)).move();\n }\n else if (this.hasSelection) {\n this._onSelectionChange.fire();\n }\n };\n SelectionManager.prototype._onBufferActivate = function (e) {\n var _this = this;\n this.clearSelection();\n if (this._trimListener) {\n this._trimListener.dispose();\n }\n this._trimListener = e.activeBuffer.lines.onTrim(function (amount) { return _this._onTrim(amount); });\n };\n SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) {\n var charIndex = coords[0];\n for (var i = 0; coords[0] >= i; i++) {\n var length_1 = bufferLine.loadCell(i, this._workCell).getChars().length;\n if (this._workCell.getWidth() === 0) {\n charIndex--;\n }\n else if (length_1 > 1 && coords[0] !== i) {\n charIndex += length_1 - 1;\n }\n }\n return charIndex;\n };\n SelectionManager.prototype.setSelection = function (col, row, length) {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this._model.selectionStart = [col, row];\n this._model.selectionStartLength = length;\n this.refresh();\n };\n SelectionManager.prototype._getWordAt = function (coords, allowWhitespaceOnlySelection, followWrappedLinesAbove, followWrappedLinesBelow) {\n if (followWrappedLinesAbove === void 0) { followWrappedLinesAbove = true; }\n if (followWrappedLinesBelow === void 0) { followWrappedLinesBelow = true; }\n if (coords[0] >= this._terminal.cols) {\n return null;\n }\n var bufferLine = this._buffer.lines.get(coords[1]);\n if (!bufferLine) {\n return null;\n }\n var line = this._buffer.translateBufferLineToString(coords[1], false);\n var startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords);\n var endIndex = startIndex;\n var charOffset = coords[0] - startIndex;\n var leftWideCharCount = 0;\n var rightWideCharCount = 0;\n var leftLongCharOffset = 0;\n var rightLongCharOffset = 0;\n if (line.charAt(startIndex) === ' ') {\n while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {\n startIndex--;\n }\n while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {\n endIndex++;\n }\n }\n else {\n var startCol = coords[0];\n var endCol = coords[0];\n if (bufferLine.getWidth(startCol) === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine.getWidth(endCol) === 2) {\n rightWideCharCount++;\n endCol++;\n }\n var length_2 = bufferLine.getString(endCol).length;\n if (length_2 > 1) {\n rightLongCharOffset += length_2 - 1;\n endIndex += length_2 - 1;\n }\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine.loadCell(startCol - 1, this._workCell))) {\n bufferLine.loadCell(startCol - 1, this._workCell);\n var length_3 = this._workCell.getChars().length;\n if (this._workCell.getWidth() === 0) {\n leftWideCharCount++;\n startCol--;\n }\n else if (length_3 > 1) {\n leftLongCharOffset += length_3 - 1;\n startIndex -= length_3 - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine.loadCell(endCol + 1, this._workCell))) {\n bufferLine.loadCell(endCol + 1, this._workCell);\n var length_4 = this._workCell.getChars().length;\n if (this._workCell.getWidth() === 2) {\n rightWideCharCount++;\n endCol++;\n }\n else if (length_4 > 1) {\n rightLongCharOffset += length_4 - 1;\n endIndex += length_4 - 1;\n }\n endIndex++;\n endCol++;\n }\n }\n endIndex++;\n var start = startIndex\n + charOffset\n - leftWideCharCount\n + leftLongCharOffset;\n var length = Math.min(this._terminal.cols, endIndex\n - startIndex\n + leftWideCharCount\n + rightWideCharCount\n - leftLongCharOffset\n - rightLongCharOffset);\n if (!allowWhitespaceOnlySelection && line.slice(startIndex, endIndex).trim() === '') {\n return null;\n }\n if (followWrappedLinesAbove) {\n if (start === 0 && bufferLine.getCodePoint(0) !== 32) {\n var previousBufferLine = this._buffer.lines.get(coords[1] - 1);\n if (previousBufferLine && bufferLine.isWrapped && previousBufferLine.getCodePoint(this._terminal.cols - 1) !== 32) {\n var previousLineWordPosition = this._getWordAt([this._terminal.cols - 1, coords[1] - 1], false, true, false);\n if (previousLineWordPosition) {\n var offset = this._terminal.cols - previousLineWordPosition.start;\n start -= offset;\n length += offset;\n }\n }\n }\n }\n if (followWrappedLinesBelow) {\n if (start + length === this._terminal.cols && bufferLine.getCodePoint(this._terminal.cols - 1) !== 32) {\n var nextBufferLine = this._buffer.lines.get(coords[1] + 1);\n if (nextBufferLine && nextBufferLine.isWrapped && nextBufferLine.getCodePoint(0) !== 32) {\n var nextLineWordPosition = this._getWordAt([0, coords[1] + 1], false, false, true);\n if (nextLineWordPosition) {\n length += nextLineWordPosition.length;\n }\n }\n }\n }\n return { start: start, length: length };\n };\n SelectionManager.prototype._selectWordAt = function (coords, allowWhitespaceOnlySelection) {\n var wordPosition = this._getWordAt(coords, allowWhitespaceOnlySelection);\n if (wordPosition) {\n while (wordPosition.start < 0) {\n wordPosition.start += this._terminal.cols;\n coords[1]--;\n }\n this._model.selectionStart = [wordPosition.start, coords[1]];\n this._model.selectionStartLength = wordPosition.length;\n }\n };\n SelectionManager.prototype._selectToWordAt = function (coords) {\n var wordPosition = this._getWordAt(coords, true);\n if (wordPosition) {\n var endRow = coords[1];\n while (wordPosition.start < 0) {\n wordPosition.start += this._terminal.cols;\n endRow--;\n }\n if (!this._model.areSelectionValuesReversed()) {\n while (wordPosition.start + wordPosition.length > this._terminal.cols) {\n wordPosition.length -= this._terminal.cols;\n endRow++;\n }\n }\n this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : wordPosition.start + wordPosition.length, endRow];\n }\n };\n SelectionManager.prototype._isCharWordSeparator = function (cell) {\n if (cell.getWidth() === 0) {\n return false;\n }\n return WORD_SEPARATORS.indexOf(cell.getChars()) >= 0;\n };\n SelectionManager.prototype._selectLineAt = function (line) {\n var wrappedRange = this._buffer.getWrappedRangeForLine(line);\n this._model.selectionStart = [0, wrappedRange.first];\n this._model.selectionEnd = [this._terminal.cols, wrappedRange.last];\n this._model.selectionStartLength = 0;\n };\n return SelectionManager;\n}());\nexports.SelectionManager = SelectionManager;\n//# sourceMappingURL=SelectionManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RenderDebouncer_1 = require(\"../ui/RenderDebouncer\");\nvar EventEmitter2_1 = require(\"../common/EventEmitter2\");\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar ScreenDprMonitor_1 = require(\"../ui/ScreenDprMonitor\");\nvar Lifecycle_2 = require(\"../ui/Lifecycle\");\nvar RenderCoordinator = (function (_super) {\n __extends(RenderCoordinator, _super);\n function RenderCoordinator(_renderer, _rowCount, screenElement) {\n var _this = _super.call(this) || this;\n _this._renderer = _renderer;\n _this._rowCount = _rowCount;\n _this._isPaused = false;\n _this._needsFullRefresh = false;\n _this._canvasWidth = 0;\n _this._canvasHeight = 0;\n _this._onDimensionsChange = new EventEmitter2_1.EventEmitter2();\n _this._onRender = new EventEmitter2_1.EventEmitter2();\n _this._onRefreshRequest = new EventEmitter2_1.EventEmitter2();\n _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(function (start, end) { return _this._renderRows(start, end); });\n _this.register(_this._renderDebouncer);\n _this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n _this._screenDprMonitor.setListener(function () { return _this._renderer.onDevicePixelRatioChange(); });\n _this.register(_this._screenDprMonitor);\n _this.register(Lifecycle_2.addDisposableDomListener(window, 'resize', function () { return _this._renderer.onDevicePixelRatioChange(); }));\n if ('IntersectionObserver' in window) {\n var observer_1 = new IntersectionObserver(function (e) { return _this._onIntersectionChange(e[e.length - 1]); }, { threshold: 0 });\n observer_1.observe(screenElement);\n _this.register({ dispose: function () { return observer_1.disconnect(); } });\n }\n return _this;\n }\n Object.defineProperty(RenderCoordinator.prototype, \"onDimensionsChange\", {\n get: function () { return this._onDimensionsChange.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RenderCoordinator.prototype, \"onRender\", {\n get: function () { return this._onRender.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RenderCoordinator.prototype, \"onRefreshRequest\", {\n get: function () { return this._onRefreshRequest.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RenderCoordinator.prototype, \"dimensions\", {\n get: function () { return this._renderer.dimensions; },\n enumerable: true,\n configurable: true\n });\n RenderCoordinator.prototype._onIntersectionChange = function (entry) {\n this._isPaused = entry.intersectionRatio === 0;\n if (!this._isPaused && this._needsFullRefresh) {\n this.refreshRows(0, this._rowCount - 1);\n this._needsFullRefresh = false;\n }\n };\n RenderCoordinator.prototype.refreshRows = function (start, end) {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n return;\n }\n this._renderDebouncer.refresh(start, end, this._rowCount);\n };\n RenderCoordinator.prototype._renderRows = function (start, end) {\n this._renderer.renderRows(start, end);\n this._onRender.fire({ start: start, end: end });\n };\n RenderCoordinator.prototype.resize = function (cols, rows) {\n this._rowCount = rows;\n this._fireOnCanvasResize();\n };\n RenderCoordinator.prototype.changeOptions = function () {\n this._renderer.onOptionsChanged();\n this._fireOnCanvasResize();\n };\n RenderCoordinator.prototype._fireOnCanvasResize = function () {\n if (this._renderer.dimensions.canvasWidth === this._canvasWidth && this._renderer.dimensions.canvasHeight === this._canvasHeight) {\n return;\n }\n this._onDimensionsChange.fire(this._renderer.dimensions);\n };\n RenderCoordinator.prototype.setRenderer = function (renderer) {\n this._renderer.dispose();\n this._renderer = renderer;\n };\n RenderCoordinator.prototype._fullRefresh = function () {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this.refreshRows(0, this._rowCount);\n }\n };\n RenderCoordinator.prototype.setColors = function (colors) {\n this._renderer.setColors(colors);\n this._fullRefresh();\n };\n RenderCoordinator.prototype.onDevicePixelRatioChange = function () {\n this._renderer.onDevicePixelRatioChange();\n };\n RenderCoordinator.prototype.onResize = function (cols, rows) {\n this._renderer.onResize(cols, rows);\n this._fullRefresh();\n };\n RenderCoordinator.prototype.onCharSizeChanged = function () {\n this._renderer.onCharSizeChanged();\n };\n RenderCoordinator.prototype.onBlur = function () {\n this._renderer.onBlur();\n };\n RenderCoordinator.prototype.onFocus = function () {\n this._renderer.onFocus();\n };\n RenderCoordinator.prototype.onSelectionChanged = function (start, end, columnSelectMode) {\n this._renderer.onSelectionChanged(start, end, columnSelectMode);\n };\n RenderCoordinator.prototype.onCursorMove = function () {\n this._renderer.onCursorMove();\n };\n RenderCoordinator.prototype.onOptionsChanged = function () {\n this._renderer.onOptionsChanged();\n };\n RenderCoordinator.prototype.clear = function () {\n this._renderer.clear();\n };\n RenderCoordinator.prototype.registerCharacterJoiner = function (handler) {\n return this._renderer.registerCharacterJoiner(handler);\n };\n RenderCoordinator.prototype.deregisterCharacterJoiner = function (joinerId) {\n return this._renderer.deregisterCharacterJoiner(joinerId);\n };\n return RenderCoordinator;\n}(Lifecycle_1.Disposable));\nexports.RenderCoordinator = RenderCoordinator;\n//# sourceMappingURL=RenderCoordinator.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar CharAtlasGenerator_1 = require(\"./CharAtlasGenerator\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\nvar CharAtlasUtils_1 = require(\"./CharAtlasUtils\");\nvar Types_2 = require(\"../../common/Types\");\nvar StaticCharAtlas = (function (_super) {\n __extends(StaticCharAtlas, _super);\n function StaticCharAtlas(_document, _config) {\n var _this = _super.call(this) || this;\n _this._document = _document;\n _this._config = _config;\n _this._canvasFactory = function (width, height) {\n var canvas = _this._document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n return _this;\n }\n StaticCharAtlas.prototype._doWarmUp = function () {\n var _this = this;\n var result = CharAtlasGenerator_1.generateStaticCharAtlasTexture(window, this._canvasFactory, this._config);\n if (result instanceof HTMLCanvasElement) {\n this._texture = result;\n }\n else {\n result.then(function (texture) {\n _this._texture = texture;\n });\n }\n };\n StaticCharAtlas.prototype._isCached = function (glyph, colorIndex) {\n var isAscii = glyph.code < 256;\n var isBasicColor = glyph.fg < 16;\n var isDefaultColor = glyph.fg === Types_2.DEFAULT_COLOR;\n var isDefaultBackground = glyph.bg === Types_2.DEFAULT_COLOR;\n return isAscii && (isBasicColor || isDefaultColor) && isDefaultBackground && !glyph.italic;\n };\n StaticCharAtlas.prototype.draw = function (ctx, glyph, x, y) {\n if (this._texture === null || this._texture === undefined) {\n return false;\n }\n var colorIndex = 0;\n if (CharAtlasUtils_1.is256Color(glyph.fg)) {\n colorIndex = 2 + glyph.fg + (glyph.bold ? 16 : 0);\n }\n else if (glyph.fg === Types_2.DEFAULT_COLOR) {\n if (glyph.bold) {\n colorIndex = 1;\n }\n }\n if (!this._isCached(glyph, colorIndex)) {\n return false;\n }\n ctx.save();\n var charAtlasCellWidth = this._config.scaledCharWidth + Types_1.CHAR_ATLAS_CELL_SPACING;\n var charAtlasCellHeight = this._config.scaledCharHeight + Types_1.CHAR_ATLAS_CELL_SPACING;\n if (glyph.dim) {\n ctx.globalAlpha = Types_1.DIM_OPACITY;\n }\n ctx.drawImage(this._texture, glyph.code * charAtlasCellWidth, colorIndex * charAtlasCellHeight, charAtlasCellWidth, this._config.scaledCharHeight, x, y, charAtlasCellWidth, this._config.scaledCharHeight);\n ctx.restore();\n return true;\n };\n return StaticCharAtlas;\n}(BaseCharAtlas_1.default));\nexports.default = StaticCharAtlas;\n//# sourceMappingURL=StaticCharAtlas.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GridCache_1 = require(\"./GridCache\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar BufferLine_1 = require(\"../core/buffer/BufferLine\");\nvar CharacterJoinerRegistry_1 = require(\"./CharacterJoinerRegistry\");\nvar TextRenderLayer = (function (_super) {\n __extends(TextRenderLayer, _super);\n function TextRenderLayer(container, zIndex, colors, characterJoinerRegistry, alpha) {\n var _this = _super.call(this, container, 'text', zIndex, alpha, colors) || this;\n _this._characterOverlapCache = {};\n _this._workCell = new BufferLine_1.CellData();\n _this._state = new GridCache_1.GridCache();\n _this._characterJoinerRegistry = characterJoinerRegistry;\n return _this;\n }\n TextRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n var terminalFont = this._getFont(terminal, false, false);\n if (this._characterWidth !== dim.scaledCharWidth || this._characterFont !== terminalFont) {\n this._characterWidth = dim.scaledCharWidth;\n this._characterFont = terminalFont;\n this._characterOverlapCache = {};\n }\n this._state.clear();\n this._state.resize(terminal.cols, terminal.rows);\n };\n TextRenderLayer.prototype.reset = function (terminal) {\n this._state.clear();\n this.clearAll();\n };\n TextRenderLayer.prototype._forEachCell = function (terminal, firstRow, lastRow, joinerRegistry, callback) {\n for (var y = firstRow; y <= lastRow; y++) {\n var row = y + terminal.buffer.ydisp;\n var line = terminal.buffer.lines.get(row);\n var joinedRanges = joinerRegistry ? joinerRegistry.getJoinedCharacters(row) : [];\n for (var x = 0; x < terminal.cols; x++) {\n line.loadCell(x, this._workCell);\n var cell = this._workCell;\n var isJoined = false;\n var lastCharX = x;\n if (cell.getWidth() === 0) {\n continue;\n }\n if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {\n isJoined = true;\n var range = joinedRanges.shift();\n cell = new CharacterJoinerRegistry_1.JoinedCellData(this._workCell, line.translateToString(true, range[0], range[1]), range[1] - range[0]);\n lastCharX = range[1] - 1;\n }\n if (!isJoined && this._isOverlapping(cell)) {\n if (lastCharX < line.length - 1 && line.getCodePoint(lastCharX + 1) === BufferLine_1.NULL_CELL_CODE) {\n cell.content &= ~12582912;\n cell.content |= 2 << 22;\n }\n }\n callback(cell, x, y);\n x = lastCharX;\n }\n }\n };\n TextRenderLayer.prototype._drawBackground = function (terminal, firstRow, lastRow) {\n var _this = this;\n var ctx = this._ctx;\n var cols = terminal.cols;\n var startX = 0;\n var startY = 0;\n var prevFillStyle = null;\n ctx.save();\n this._forEachCell(terminal, firstRow, lastRow, null, function (cell, x, y) {\n var nextFillStyle = null;\n if (cell.isInverse()) {\n if (cell.isFgDefault()) {\n nextFillStyle = _this._colors.foreground.css;\n }\n else if (cell.isFgRGB()) {\n nextFillStyle = \"rgb(\" + BufferLine_1.AttributeData.toColorRGB(cell.getFgColor()).join(',') + \")\";\n }\n else {\n nextFillStyle = _this._colors.ansi[cell.getFgColor()].css;\n }\n }\n else if (cell.isBgRGB()) {\n nextFillStyle = \"rgb(\" + BufferLine_1.AttributeData.toColorRGB(cell.getBgColor()).join(',') + \")\";\n }\n else if (cell.isBgPalette()) {\n nextFillStyle = _this._colors.ansi[cell.getBgColor()].css;\n }\n if (prevFillStyle === null) {\n startX = x;\n startY = y;\n }\n if (y !== startY) {\n ctx.fillStyle = prevFillStyle;\n _this.fillCells(startX, startY, cols - startX, 1);\n startX = x;\n startY = y;\n }\n else if (prevFillStyle !== nextFillStyle) {\n ctx.fillStyle = prevFillStyle;\n _this.fillCells(startX, startY, x - startX, 1);\n startX = x;\n startY = y;\n }\n prevFillStyle = nextFillStyle;\n });\n if (prevFillStyle !== null) {\n ctx.fillStyle = prevFillStyle;\n this.fillCells(startX, startY, cols - startX, 1);\n }\n ctx.restore();\n };\n TextRenderLayer.prototype._drawForeground = function (terminal, firstRow, lastRow) {\n var _this = this;\n this._forEachCell(terminal, firstRow, lastRow, this._characterJoinerRegistry, function (cell, x, y) {\n if (cell.isInvisible()) {\n return;\n }\n _this.drawChars(terminal, cell, x, y);\n if (cell.isUnderline()) {\n _this._ctx.save();\n if (cell.isInverse()) {\n if (cell.isBgDefault()) {\n _this._ctx.fillStyle = _this._colors.background.css;\n }\n else if (cell.isBgRGB()) {\n _this._ctx.fillStyle = \"rgb(\" + BufferLine_1.AttributeData.toColorRGB(cell.getBgColor()).join(',') + \")\";\n }\n else {\n _this._ctx.fillStyle = _this._colors.ansi[cell.getBgColor()].css;\n }\n }\n else {\n if (cell.isFgDefault()) {\n _this._ctx.fillStyle = _this._colors.foreground.css;\n }\n else if (cell.isFgRGB()) {\n _this._ctx.fillStyle = \"rgb(\" + BufferLine_1.AttributeData.toColorRGB(cell.getFgColor()).join(',') + \")\";\n }\n else {\n var fg = cell.getFgColor();\n if (terminal.options.drawBoldTextInBrightColors && cell.isBold() && fg < 8) {\n fg += 8;\n }\n _this._ctx.fillStyle = _this._colors.ansi[fg].css;\n }\n }\n _this.fillBottomLineAtCells(x, y, cell.getWidth());\n _this._ctx.restore();\n }\n });\n };\n TextRenderLayer.prototype.onGridChanged = function (terminal, firstRow, lastRow) {\n if (this._state.cache.length === 0) {\n return;\n }\n if (this._charAtlas) {\n this._charAtlas.beginFrame();\n }\n this.clearCells(0, firstRow, terminal.cols, lastRow - firstRow + 1);\n this._drawBackground(terminal, firstRow, lastRow);\n this._drawForeground(terminal, firstRow, lastRow);\n };\n TextRenderLayer.prototype.onOptionsChanged = function (terminal) {\n this.setTransparency(terminal, terminal.options.allowTransparency);\n };\n TextRenderLayer.prototype._isOverlapping = function (cell) {\n if (cell.getWidth() !== 1) {\n return false;\n }\n if (cell.getCode() < 256) {\n return false;\n }\n var chars = cell.getChars();\n if (this._characterOverlapCache.hasOwnProperty(chars)) {\n return this._characterOverlapCache[chars];\n }\n this._ctx.save();\n this._ctx.font = this._characterFont;\n var overlaps = Math.floor(this._ctx.measureText(chars).width) > this._characterWidth;\n this._ctx.restore();\n this._characterOverlapCache[chars] = overlaps;\n return overlaps;\n };\n return TextRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.TextRenderLayer = TextRenderLayer;\n//# sourceMappingURL=TextRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"../../common/Types\");\nfunction generateConfig(scaledCharWidth, scaledCharHeight, terminal, colors) {\n var clonedColors = {\n foreground: colors.foreground,\n background: colors.background,\n cursor: null,\n cursorAccent: null,\n selection: null,\n ansi: colors.ansi.slice(0, 16)\n };\n return {\n type: terminal.options.experimentalCharAtlas,\n devicePixelRatio: window.devicePixelRatio,\n scaledCharWidth: scaledCharWidth,\n scaledCharHeight: scaledCharHeight,\n fontFamily: terminal.options.fontFamily,\n fontSize: terminal.options.fontSize,\n fontWeight: terminal.options.fontWeight,\n fontWeightBold: terminal.options.fontWeightBold,\n allowTransparency: terminal.options.allowTransparency,\n colors: clonedColors\n };\n}\nexports.generateConfig = generateConfig;\nfunction configEquals(a, b) {\n for (var i = 0; i < a.colors.ansi.length; i++) {\n if (a.colors.ansi[i].rgba !== b.colors.ansi[i].rgba) {\n return false;\n }\n }\n return a.type === b.type &&\n a.devicePixelRatio === b.devicePixelRatio &&\n a.fontFamily === b.fontFamily &&\n a.fontSize === b.fontSize &&\n a.fontWeight === b.fontWeight &&\n a.fontWeightBold === b.fontWeightBold &&\n a.allowTransparency === b.allowTransparency &&\n a.scaledCharWidth === b.scaledCharWidth &&\n a.scaledCharHeight === b.scaledCharHeight &&\n a.colors.foreground === b.colors.foreground &&\n a.colors.background === b.colors.background;\n}\nexports.configEquals = configEquals;\nfunction is256Color(colorCode) {\n return colorCode < Types_1.DEFAULT_COLOR;\n}\nexports.is256Color = is256Color;\n//# sourceMappingURL=CharAtlasUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DEFAULT_FOREGROUND = fromHex('#ffffff');\nvar DEFAULT_BACKGROUND = fromHex('#000000');\nvar DEFAULT_CURSOR = fromHex('#ffffff');\nvar DEFAULT_CURSOR_ACCENT = fromHex('#000000');\nvar DEFAULT_SELECTION = {\n css: 'rgba(255, 255, 255, 0.3)',\n rgba: 0xFFFFFF77\n};\nexports.DEFAULT_ANSI_COLORS = (function () {\n var colors = [\n fromHex('#2e3436'),\n fromHex('#cc0000'),\n fromHex('#4e9a06'),\n fromHex('#c4a000'),\n fromHex('#3465a4'),\n fromHex('#75507b'),\n fromHex('#06989a'),\n fromHex('#d3d7cf'),\n fromHex('#555753'),\n fromHex('#ef2929'),\n fromHex('#8ae234'),\n fromHex('#fce94f'),\n fromHex('#729fcf'),\n fromHex('#ad7fa8'),\n fromHex('#34e2e2'),\n fromHex('#eeeeec')\n ];\n var v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (var i = 0; i < 216; i++) {\n var r = v[(i / 36) % 6 | 0];\n var g = v[(i / 6) % 6 | 0];\n var b = v[i % 6];\n colors.push({\n css: \"#\" + toPaddedHex(r) + toPaddedHex(g) + toPaddedHex(b),\n rgba: ((r << 24) | (g << 16) | (b << 8) | 0xFF) >>> 0\n });\n }\n for (var i = 0; i < 24; i++) {\n var c = 8 + i * 10;\n var ch = toPaddedHex(c);\n colors.push({\n css: \"#\" + ch + ch + ch,\n rgba: ((c << 24) | (c << 16) | (c << 8) | 0xFF) >>> 0\n });\n }\n return colors;\n})();\nfunction fromHex(css) {\n return {\n css: css,\n rgba: parseInt(css.slice(1), 16) << 8 | 0xFF\n };\n}\nfunction toPaddedHex(c) {\n var s = c.toString(16);\n return s.length < 2 ? '0' + s : s;\n}\nvar ColorManager = (function () {\n function ColorManager(document, allowTransparency) {\n this.allowTransparency = allowTransparency;\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Could not get rendering context');\n }\n this._ctx = ctx;\n this._ctx.globalCompositeOperation = 'copy';\n this._litmusColor = this._ctx.createLinearGradient(0, 0, 1, 1);\n this.colors = {\n foreground: DEFAULT_FOREGROUND,\n background: DEFAULT_BACKGROUND,\n cursor: DEFAULT_CURSOR,\n cursorAccent: DEFAULT_CURSOR_ACCENT,\n selection: DEFAULT_SELECTION,\n ansi: exports.DEFAULT_ANSI_COLORS.slice()\n };\n }\n ColorManager.prototype.setTheme = function (theme) {\n if (theme === void 0) { theme = {}; }\n this.colors.foreground = this._parseColor(theme.foreground, DEFAULT_FOREGROUND);\n this.colors.background = this._parseColor(theme.background, DEFAULT_BACKGROUND);\n this.colors.cursor = this._parseColor(theme.cursor, DEFAULT_CURSOR, true);\n this.colors.cursorAccent = this._parseColor(theme.cursorAccent, DEFAULT_CURSOR_ACCENT, true);\n this.colors.selection = this._parseColor(theme.selection, DEFAULT_SELECTION, true);\n this.colors.ansi[0] = this._parseColor(theme.black, exports.DEFAULT_ANSI_COLORS[0]);\n this.colors.ansi[1] = this._parseColor(theme.red, exports.DEFAULT_ANSI_COLORS[1]);\n this.colors.ansi[2] = this._parseColor(theme.green, exports.DEFAULT_ANSI_COLORS[2]);\n this.colors.ansi[3] = this._parseColor(theme.yellow, exports.DEFAULT_ANSI_COLORS[3]);\n this.colors.ansi[4] = this._parseColor(theme.blue, exports.DEFAULT_ANSI_COLORS[4]);\n this.colors.ansi[5] = this._parseColor(theme.magenta, exports.DEFAULT_ANSI_COLORS[5]);\n this.colors.ansi[6] = this._parseColor(theme.cyan, exports.DEFAULT_ANSI_COLORS[6]);\n this.colors.ansi[7] = this._parseColor(theme.white, exports.DEFAULT_ANSI_COLORS[7]);\n this.colors.ansi[8] = this._parseColor(theme.brightBlack, exports.DEFAULT_ANSI_COLORS[8]);\n this.colors.ansi[9] = this._parseColor(theme.brightRed, exports.DEFAULT_ANSI_COLORS[9]);\n this.colors.ansi[10] = this._parseColor(theme.brightGreen, exports.DEFAULT_ANSI_COLORS[10]);\n this.colors.ansi[11] = this._parseColor(theme.brightYellow, exports.DEFAULT_ANSI_COLORS[11]);\n this.colors.ansi[12] = this._parseColor(theme.brightBlue, exports.DEFAULT_ANSI_COLORS[12]);\n this.colors.ansi[13] = this._parseColor(theme.brightMagenta, exports.DEFAULT_ANSI_COLORS[13]);\n this.colors.ansi[14] = this._parseColor(theme.brightCyan, exports.DEFAULT_ANSI_COLORS[14]);\n this.colors.ansi[15] = this._parseColor(theme.brightWhite, exports.DEFAULT_ANSI_COLORS[15]);\n };\n ColorManager.prototype._parseColor = function (css, fallback, allowTransparency) {\n if (allowTransparency === void 0) { allowTransparency = this.allowTransparency; }\n if (css === undefined) {\n return fallback;\n }\n this._ctx.fillStyle = this._litmusColor;\n this._ctx.fillStyle = css;\n if (typeof this._ctx.fillStyle !== 'string') {\n console.warn(\"Color: \" + css + \" is invalid using fallback \" + fallback.css);\n return fallback;\n }\n this._ctx.fillRect(0, 0, 1, 1);\n var data = this._ctx.getImageData(0, 0, 1, 1).data;\n if (!allowTransparency && data[3] !== 0xFF) {\n console.warn(\"Color: \" + css + \" is using transparency, but allowTransparency is false. \" +\n (\"Using fallback \" + fallback.css + \".\"));\n return fallback;\n }\n return {\n css: css,\n rgba: (data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3]) >>> 0\n };\n };\n return ColorManager;\n}());\nexports.ColorManager = ColorManager;\n//# sourceMappingURL=ColorManager.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar BufferLine_1 = require(\"../core/buffer/BufferLine\");\nvar BLINK_INTERVAL = 600;\nvar CursorRenderLayer = (function (_super) {\n __extends(CursorRenderLayer, _super);\n function CursorRenderLayer(container, zIndex, colors) {\n var _this = _super.call(this, container, 'cursor', zIndex, true, colors) || this;\n _this._cell = new BufferLine_1.CellData();\n _this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n _this._cursorRenderers = {\n 'bar': _this._renderBarCursor.bind(_this),\n 'block': _this._renderBlockCursor.bind(_this),\n 'underline': _this._renderUnderlineCursor.bind(_this)\n };\n return _this;\n }\n CursorRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n };\n CursorRenderLayer.prototype.reset = function (terminal) {\n this._clearCursor();\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n this.onOptionsChanged(terminal);\n }\n };\n CursorRenderLayer.prototype.onBlur = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.pause();\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n };\n CursorRenderLayer.prototype.onFocus = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.resume(terminal);\n }\n else {\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onOptionsChanged = function (terminal) {\n var _this = this;\n if (terminal.options.cursorBlink) {\n if (!this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager = new CursorBlinkStateManager(terminal, function () {\n _this._render(terminal, true);\n });\n }\n }\n else {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.dispose();\n this._cursorBlinkStateManager = null;\n }\n terminal.refresh(terminal.buffer.y, terminal.buffer.y);\n }\n };\n CursorRenderLayer.prototype.onCursorMove = function (terminal) {\n if (this._cursorBlinkStateManager) {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype.onGridChanged = function (terminal, startRow, endRow) {\n if (!this._cursorBlinkStateManager || this._cursorBlinkStateManager.isPaused) {\n this._render(terminal, false);\n }\n else {\n this._cursorBlinkStateManager.restartBlinkAnimation(terminal);\n }\n };\n CursorRenderLayer.prototype._render = function (terminal, triggeredByAnimationFrame) {\n if (!terminal.cursorState || terminal.cursorHidden) {\n this._clearCursor();\n return;\n }\n var cursorY = terminal.buffer.ybase + terminal.buffer.y;\n var viewportRelativeCursorY = cursorY - terminal.buffer.ydisp;\n if (viewportRelativeCursorY < 0 || viewportRelativeCursorY >= terminal.rows) {\n this._clearCursor();\n return;\n }\n terminal.buffer.lines.get(cursorY).loadCell(terminal.buffer.x, this._cell);\n if (this._cell.content === undefined) {\n return;\n }\n if (!terminal.isFocused) {\n this._clearCursor();\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this._renderBlurCursor(terminal, terminal.buffer.x, viewportRelativeCursorY, this._cell);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = this._cell.getWidth();\n return;\n }\n if (this._cursorBlinkStateManager && !this._cursorBlinkStateManager.isCursorVisible) {\n this._clearCursor();\n return;\n }\n if (this._state) {\n if (this._state.x === terminal.buffer.x &&\n this._state.y === viewportRelativeCursorY &&\n this._state.isFocused === terminal.isFocused &&\n this._state.style === terminal.options.cursorStyle &&\n this._state.width === this._cell.getWidth()) {\n return;\n }\n this._clearCursor();\n }\n this._ctx.save();\n this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, this._cell);\n this._ctx.restore();\n this._state.x = terminal.buffer.x;\n this._state.y = viewportRelativeCursorY;\n this._state.isFocused = false;\n this._state.style = terminal.options.cursorStyle;\n this._state.width = this._cell.getWidth();\n };\n CursorRenderLayer.prototype._clearCursor = function () {\n if (this._state) {\n this.clearCells(this._state.x, this._state.y, this._state.width, 1);\n this._state = {\n x: null,\n y: null,\n isFocused: null,\n style: null,\n width: null\n };\n }\n };\n CursorRenderLayer.prototype._renderBarCursor = function (terminal, x, y, cell) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillLeftLineAtCell(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlockCursor = function (terminal, x, y, cell) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillCells(x, y, cell.getWidth(), 1);\n this._ctx.fillStyle = this._colors.cursorAccent.css;\n this.fillCharTrueColor(terminal, cell, x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, cell) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillBottomLineAtCells(x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderBlurCursor = function (terminal, x, y, cell) {\n this._ctx.save();\n this._ctx.strokeStyle = this._colors.cursor.css;\n this.strokeRectAtCell(x, y, cell.getWidth(), 1);\n this._ctx.restore();\n };\n return CursorRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.CursorRenderLayer = CursorRenderLayer;\nvar CursorBlinkStateManager = (function () {\n function CursorBlinkStateManager(terminal, _renderCallback) {\n this._renderCallback = _renderCallback;\n this.isCursorVisible = true;\n if (terminal.isFocused) {\n this._restartInterval();\n }\n }\n Object.defineProperty(CursorBlinkStateManager.prototype, \"isPaused\", {\n get: function () { return !(this._blinkStartTimeout || this._blinkInterval); },\n enumerable: true,\n configurable: true\n });\n CursorBlinkStateManager.prototype.dispose = function () {\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.restartBlinkAnimation = function (terminal) {\n var _this = this;\n if (this.isPaused) {\n return;\n }\n this._animationTimeRestarted = Date.now();\n this.isCursorVisible = true;\n if (!this._animationFrame) {\n this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n }\n };\n CursorBlinkStateManager.prototype._restartInterval = function (timeToStart) {\n var _this = this;\n if (timeToStart === void 0) { timeToStart = BLINK_INTERVAL; }\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n }\n this._blinkStartTimeout = setTimeout(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n if (time > 0) {\n _this._restartInterval(time);\n return;\n }\n }\n _this.isCursorVisible = false;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n _this._blinkInterval = setInterval(function () {\n if (_this._animationTimeRestarted) {\n var time = BLINK_INTERVAL - (Date.now() - _this._animationTimeRestarted);\n _this._animationTimeRestarted = null;\n _this._restartInterval(time);\n return;\n }\n _this.isCursorVisible = !_this.isCursorVisible;\n _this._animationFrame = window.requestAnimationFrame(function () {\n _this._renderCallback();\n _this._animationFrame = null;\n });\n }, BLINK_INTERVAL);\n }, timeToStart);\n };\n CursorBlinkStateManager.prototype.pause = function () {\n this.isCursorVisible = true;\n if (this._blinkInterval) {\n window.clearInterval(this._blinkInterval);\n this._blinkInterval = null;\n }\n if (this._blinkStartTimeout) {\n window.clearTimeout(this._blinkStartTimeout);\n this._blinkStartTimeout = null;\n }\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n CursorBlinkStateManager.prototype.resume = function (terminal) {\n this._animationTimeRestarted = null;\n this._restartInterval();\n this.restartBlinkAnimation(terminal);\n };\n return CursorBlinkStateManager;\n}());\n//# sourceMappingURL=CursorRenderLayer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Platform_1 = require(\"../../common/Platform\");\nvar Types_1 = require(\"./Types\");\nfunction generateStaticCharAtlasTexture(context, canvasFactory, config) {\n var cellWidth = config.scaledCharWidth + Types_1.CHAR_ATLAS_CELL_SPACING;\n var cellHeight = config.scaledCharHeight + Types_1.CHAR_ATLAS_CELL_SPACING;\n var canvas = canvasFactory(255 * cellWidth, (2 + 16 + 16) * cellHeight);\n var ctx = canvas.getContext('2d', { alpha: config.allowTransparency });\n ctx.fillStyle = config.colors.background.css;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.save();\n ctx.fillStyle = config.colors.foreground.css;\n ctx.font = getFont(config.fontWeight, config);\n ctx.textBaseline = 'middle';\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, 0, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight / 2);\n ctx.restore();\n }\n ctx.save();\n ctx.font = getFont(config.fontWeightBold, config);\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, cellHeight, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillText(String.fromCharCode(i), i * cellWidth, cellHeight * 1.5);\n ctx.restore();\n }\n ctx.restore();\n ctx.font = getFont(config.fontWeight, config);\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n var y = (colorIndex + 2) * cellHeight;\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillStyle = config.colors.ansi[colorIndex].css;\n ctx.fillText(String.fromCharCode(i), i * cellWidth, y + cellHeight / 2);\n ctx.restore();\n }\n }\n ctx.font = getFont(config.fontWeightBold, config);\n for (var colorIndex = 0; colorIndex < 16; colorIndex++) {\n var y = (colorIndex + 2 + 16) * cellHeight;\n for (var i = 0; i < 256; i++) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(i * cellWidth, y, cellWidth, cellHeight);\n ctx.clip();\n ctx.fillStyle = config.colors.ansi[colorIndex].css;\n ctx.fillText(String.fromCharCode(i), i * cellWidth, y + cellHeight / 2);\n ctx.restore();\n }\n }\n ctx.restore();\n if (!('createImageBitmap' in context) || Platform_1.isFirefox || Platform_1.isSafari) {\n return canvas;\n }\n var charAtlasImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n clearColor(charAtlasImageData, config.colors.background);\n return context.createImageBitmap(charAtlasImageData);\n}\nexports.generateStaticCharAtlasTexture = generateStaticCharAtlasTexture;\nfunction clearColor(imageData, color) {\n var isEmpty = true;\n var r = color.rgba >>> 24;\n var g = color.rgba >>> 16 & 0xFF;\n var b = color.rgba >>> 8 & 0xFF;\n for (var offset = 0; offset < imageData.data.length; offset += 4) {\n if (imageData.data[offset] === r &&\n imageData.data[offset + 1] === g &&\n imageData.data[offset + 2] === b) {\n imageData.data[offset + 3] = 0;\n }\n else {\n isEmpty = false;\n }\n }\n return isEmpty;\n}\nexports.clearColor = clearColor;\nfunction getFont(fontWeight, config) {\n return fontWeight + \" \" + config.fontSize * config.devicePixelRatio + \"px \" + config.fontFamily;\n}\n//# sourceMappingURL=CharAtlasGenerator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CompositionHelper = (function () {\n function CompositionHelper(_textarea, _compositionView, _terminal) {\n this._textarea = _textarea;\n this._compositionView = _compositionView;\n this._terminal = _terminal;\n this._isComposing = false;\n this._isSendingComposition = false;\n this._compositionPosition = { start: null, end: null };\n }\n CompositionHelper.prototype.compositionstart = function () {\n this._isComposing = true;\n this._compositionPosition.start = this._textarea.value.length;\n this._compositionView.textContent = '';\n this._compositionView.classList.add('active');\n };\n CompositionHelper.prototype.compositionupdate = function (ev) {\n var _this = this;\n this._compositionView.textContent = ev.data;\n this.updateCompositionElements();\n setTimeout(function () {\n _this._compositionPosition.end = _this._textarea.value.length;\n }, 0);\n };\n CompositionHelper.prototype.compositionend = function () {\n this._finalizeComposition(true);\n };\n CompositionHelper.prototype.keydown = function (ev) {\n if (this._isComposing || this._isSendingComposition) {\n if (ev.keyCode === 229) {\n return false;\n }\n else if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {\n return false;\n }\n this._finalizeComposition(false);\n }\n if (ev.keyCode === 229) {\n this._handleAnyTextareaChanges();\n return false;\n }\n return true;\n };\n CompositionHelper.prototype._finalizeComposition = function (waitForPropagation) {\n var _this = this;\n this._compositionView.classList.remove('active');\n this._isComposing = false;\n this._clearTextareaPosition();\n if (!waitForPropagation) {\n this._isSendingComposition = false;\n var input = this._textarea.value.substring(this._compositionPosition.start, this._compositionPosition.end);\n this._terminal.handler(input);\n }\n else {\n var currentCompositionPosition_1 = {\n start: this._compositionPosition.start,\n end: this._compositionPosition.end\n };\n this._isSendingComposition = true;\n setTimeout(function () {\n if (_this._isSendingComposition) {\n _this._isSendingComposition = false;\n var input = void 0;\n if (_this._isComposing) {\n input = _this._textarea.value.substring(currentCompositionPosition_1.start, currentCompositionPosition_1.end);\n }\n else {\n input = _this._textarea.value.substring(currentCompositionPosition_1.start);\n }\n _this._terminal.handler(input);\n }\n }, 0);\n }\n };\n CompositionHelper.prototype._handleAnyTextareaChanges = function () {\n var _this = this;\n var oldValue = this._textarea.value;\n setTimeout(function () {\n if (!_this._isComposing) {\n var newValue = _this._textarea.value;\n var diff = newValue.replace(oldValue, '');\n if (diff.length > 0) {\n _this._terminal.handler(diff);\n }\n }\n }, 0);\n };\n CompositionHelper.prototype.updateCompositionElements = function (dontRecurse) {\n var _this = this;\n if (!this._isComposing) {\n return;\n }\n if (this._terminal.buffer.isCursorInViewport) {\n var cellHeight = Math.ceil(this._terminal.charMeasure.height * this._terminal.options.lineHeight);\n var cursorTop = this._terminal.buffer.y * cellHeight;\n var cursorLeft = this._terminal.buffer.x * this._terminal.charMeasure.width;\n this._compositionView.style.left = cursorLeft + 'px';\n this._compositionView.style.top = cursorTop + 'px';\n this._compositionView.style.height = cellHeight + 'px';\n this._compositionView.style.lineHeight = cellHeight + 'px';\n this._compositionView.style.fontFamily = this._terminal.options.fontFamily;\n this._compositionView.style.fontSize = this._terminal.options.fontSize + 'px';\n var compositionViewBounds = this._compositionView.getBoundingClientRect();\n this._textarea.style.left = cursorLeft + 'px';\n this._textarea.style.top = cursorTop + 'px';\n this._textarea.style.width = compositionViewBounds.width + 'px';\n this._textarea.style.height = compositionViewBounds.height + 'px';\n this._textarea.style.lineHeight = compositionViewBounds.height + 'px';\n }\n if (!dontRecurse) {\n setTimeout(function () { return _this.updateCompositionElements(true); }, 0);\n }\n };\n CompositionHelper.prototype._clearTextareaPosition = function () {\n this._textarea.style.left = '';\n this._textarea.style.top = '';\n };\n return CompositionHelper;\n}());\nexports.CompositionHelper = CompositionHelper;\n//# sourceMappingURL=CompositionHelper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TypedArrayUtils_1 = require(\"./common/TypedArrayUtils\");\nexports.wcwidth = (function (opts) {\n var COMBINING_BMP = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]\n ];\n var COMBINING_HIGH = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n ];\n function bisearch(ucs, data) {\n var min = 0;\n var max = data.length - 1;\n var mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n }\n else if (ucs < data[mid][0]) {\n max = mid - 1;\n }\n else {\n return true;\n }\n }\n return false;\n }\n function wcwidthHigh(ucs) {\n if (bisearch(ucs, COMBINING_HIGH)) {\n return 0;\n }\n if ((ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd)) {\n return 2;\n }\n return 1;\n }\n var control = opts.control | 0;\n var table = new Uint8Array(65536);\n TypedArrayUtils_1.fill(table, 1);\n table[0] = opts.nul;\n TypedArrayUtils_1.fill(table, opts.control, 1, 32);\n TypedArrayUtils_1.fill(table, opts.control, 0x7f, 0xa0);\n TypedArrayUtils_1.fill(table, 2, 0x1100, 0x1160);\n table[0x2329] = 2;\n table[0x232a] = 2;\n TypedArrayUtils_1.fill(table, 2, 0x2e80, 0xa4d0);\n table[0x303f] = 1;\n TypedArrayUtils_1.fill(table, 2, 0xac00, 0xd7a4);\n TypedArrayUtils_1.fill(table, 2, 0xf900, 0xfb00);\n TypedArrayUtils_1.fill(table, 2, 0xfe10, 0xfe1a);\n TypedArrayUtils_1.fill(table, 2, 0xfe30, 0xfe70);\n TypedArrayUtils_1.fill(table, 2, 0xff00, 0xff61);\n TypedArrayUtils_1.fill(table, 2, 0xffe0, 0xffe7);\n for (var r = 0; r < COMBINING_BMP.length; ++r) {\n TypedArrayUtils_1.fill(table, 0, COMBINING_BMP[r][0], COMBINING_BMP[r][1] + 1);\n }\n return function (num) {\n if (num < 32) {\n return control | 0;\n }\n if (num < 127) {\n return 1;\n }\n if (num < 65536) {\n return table[num];\n }\n return wcwidthHigh(num);\n };\n})({ nul: 0, control: 0 });\nfunction getStringCellWidth(s) {\n var result = 0;\n var length = s.length;\n for (var i = 0; i < length; ++i) {\n var code = s.charCodeAt(i);\n if (0xD800 <= code && code <= 0xDBFF) {\n if (++i >= length) {\n return result + exports.wcwidth(code);\n }\n var second = s.charCodeAt(i);\n if (0xDC00 <= second && second <= 0xDFFF) {\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n else {\n result += exports.wcwidth(second);\n }\n }\n result += exports.wcwidth(code);\n }\n return result;\n}\nexports.getStringCellWidth = getStringCellWidth;\n//# sourceMappingURL=CharWidth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHARSETS = {};\nexports.DEFAULT_CHARSET = exports.CHARSETS['B'];\nexports.CHARSETS['0'] = {\n '`': '\\u25c6',\n 'a': '\\u2592',\n 'b': '\\u0009',\n 'c': '\\u000c',\n 'd': '\\u000d',\n 'e': '\\u000a',\n 'f': '\\u00b0',\n 'g': '\\u00b1',\n 'h': '\\u2424',\n 'i': '\\u000b',\n 'j': '\\u2518',\n 'k': '\\u2510',\n 'l': '\\u250c',\n 'm': '\\u2514',\n 'n': '\\u253c',\n 'o': '\\u23ba',\n 'p': '\\u23bb',\n 'q': '\\u2500',\n 'r': '\\u23bc',\n 's': '\\u23bd',\n 't': '\\u251c',\n 'u': '\\u2524',\n 'v': '\\u2534',\n 'w': '\\u252c',\n 'x': '\\u2502',\n 'y': '\\u2264',\n 'z': '\\u2265',\n '{': '\\u03c0',\n '|': '\\u2260',\n '}': '\\u00a3',\n '~': '\\u00b7'\n};\nexports.CHARSETS['A'] = {\n '#': '£'\n};\nexports.CHARSETS['B'] = null;\nexports.CHARSETS['4'] = {\n '#': '£',\n '@': '¾',\n '[': 'ij',\n '\\\\': '½',\n ']': '|',\n '{': '¨',\n '|': 'f',\n '}': '¼',\n '~': '´'\n};\nexports.CHARSETS['C'] =\n exports.CHARSETS['5'] = {\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['R'] = {\n '#': '£',\n '@': 'à',\n '[': '°',\n '\\\\': 'ç',\n ']': '§',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': '¨'\n};\nexports.CHARSETS['Q'] = {\n '@': 'à',\n '[': 'â',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '`': 'ô',\n '{': 'é',\n '|': 'ù',\n '}': 'è',\n '~': 'û'\n};\nexports.CHARSETS['K'] = {\n '@': '§',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Ü',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'ß'\n};\nexports.CHARSETS['Y'] = {\n '#': '£',\n '@': '§',\n '[': '°',\n '\\\\': 'ç',\n ']': 'é',\n '`': 'ù',\n '{': 'à',\n '|': 'ò',\n '}': 'è',\n '~': 'ì'\n};\nexports.CHARSETS['E'] =\n exports.CHARSETS['6'] = {\n '@': 'Ä',\n '[': 'Æ',\n '\\\\': 'Ø',\n ']': 'Å',\n '^': 'Ü',\n '`': 'ä',\n '{': 'æ',\n '|': 'ø',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['Z'] = {\n '#': '£',\n '@': '§',\n '[': '¡',\n '\\\\': 'Ñ',\n ']': '¿',\n '{': '°',\n '|': 'ñ',\n '}': 'ç'\n};\nexports.CHARSETS['H'] =\n exports.CHARSETS['7'] = {\n '@': 'É',\n '[': 'Ä',\n '\\\\': 'Ö',\n ']': 'Å',\n '^': 'Ü',\n '`': 'é',\n '{': 'ä',\n '|': 'ö',\n '}': 'å',\n '~': 'ü'\n };\nexports.CHARSETS['='] = {\n '#': 'ù',\n '@': 'à',\n '[': 'é',\n '\\\\': 'ç',\n ']': 'ê',\n '^': 'î',\n '_': 'è',\n '`': 'ô',\n '{': 'ä',\n '|': 'ö',\n '}': 'ü',\n '~': 'û'\n};\n//# sourceMappingURL=Charsets.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferSet_1 = require(\"./BufferSet\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CompositionHelper_1 = require(\"./CompositionHelper\");\nvar EventEmitter_1 = require(\"./common/EventEmitter\");\nvar Viewport_1 = require(\"./Viewport\");\nvar Clipboard_1 = require(\"./Clipboard\");\nvar EscapeSequences_1 = require(\"./common/data/EscapeSequences\");\nvar InputHandler_1 = require(\"./InputHandler\");\nvar Renderer_1 = require(\"./renderer/Renderer\");\nvar Linkifier_1 = require(\"./Linkifier\");\nvar SelectionManager_1 = require(\"./SelectionManager\");\nvar CharMeasure_1 = require(\"./CharMeasure\");\nvar Browser = require(\"./common/Platform\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Strings = require(\"./Strings\");\nvar MouseHelper_1 = require(\"./MouseHelper\");\nvar SoundManager_1 = require(\"./SoundManager\");\nvar MouseZoneManager_1 = require(\"./MouseZoneManager\");\nvar AccessibilityManager_1 = require(\"./AccessibilityManager\");\nvar CharAtlasCache_1 = require(\"./renderer/atlas/CharAtlasCache\");\nvar DomRenderer_1 = require(\"./renderer/dom/DomRenderer\");\nvar Keyboard_1 = require(\"./core/input/Keyboard\");\nvar Clone_1 = require(\"./common/Clone\");\nvar EventEmitter2_1 = require(\"./common/EventEmitter2\");\nvar BufferLine_1 = require(\"./core/buffer/BufferLine\");\nvar WindowsMode_1 = require(\"./WindowsMode\");\nvar ColorManager_1 = require(\"./ui/ColorManager\");\nvar RenderCoordinator_1 = require(\"./renderer/RenderCoordinator\");\nvar document = (typeof window !== 'undefined') ? window.document : null;\nvar WRITE_BUFFER_PAUSE_THRESHOLD = 5;\nvar WRITE_TIMEOUT_MS = 12;\nvar WRITE_BUFFER_LENGTH_THRESHOLD = 50;\nvar MINIMUM_COLS = 2;\nvar MINIMUM_ROWS = 1;\nvar CONSTRUCTOR_ONLY_OPTIONS = ['cols', 'rows'];\nvar DEFAULT_OPTIONS = {\n cols: 80,\n rows: 24,\n convertEol: false,\n termName: 'xterm',\n cursorBlink: false,\n cursorStyle: 'block',\n bellSound: SoundManager_1.DEFAULT_BELL_SOUND,\n bellStyle: 'none',\n drawBoldTextInBrightColors: true,\n enableBold: true,\n experimentalCharAtlas: 'static',\n fontFamily: 'courier-new, courier, monospace',\n fontSize: 15,\n fontWeight: 'normal',\n fontWeightBold: 'bold',\n lineHeight: 1.0,\n letterSpacing: 0,\n scrollback: 1000,\n screenKeys: false,\n screenReaderMode: false,\n debug: false,\n macOptionIsMeta: false,\n macOptionClickForcesSelection: false,\n cancelEvents: false,\n disableStdin: false,\n useFlowControl: false,\n allowTransparency: false,\n tabStopWidth: 8,\n theme: undefined,\n rightClickSelectsWord: Browser.isMac,\n rendererType: 'canvas',\n windowsMode: false\n};\nvar Terminal = (function (_super) {\n __extends(Terminal, _super);\n function Terminal(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this) || this;\n _this.browser = Browser;\n _this._blankLine = null;\n _this._onCursorMove = new EventEmitter2_1.EventEmitter2();\n _this._onData = new EventEmitter2_1.EventEmitter2();\n _this._onKey = new EventEmitter2_1.EventEmitter2();\n _this._onLineFeed = new EventEmitter2_1.EventEmitter2();\n _this._onRender = new EventEmitter2_1.EventEmitter2();\n _this._onResize = new EventEmitter2_1.EventEmitter2();\n _this._onScroll = new EventEmitter2_1.EventEmitter2();\n _this._onSelectionChange = new EventEmitter2_1.EventEmitter2();\n _this._onTitleChange = new EventEmitter2_1.EventEmitter2();\n _this.options = Clone_1.clone(options);\n _this._setup();\n _this.onCursorMove(function () { return _this.emit('cursormove'); });\n _this.onData(function (e) { return _this.emit('data', e); });\n _this.onKey(function (e) { return _this.emit('key', e.key, e.domEvent); });\n _this.onLineFeed(function () { return _this.emit('linefeed'); });\n _this.onRender(function (e) { return _this.emit('refresh', e); });\n _this.onResize(function (e) { return _this.emit('resize', e); });\n _this.onSelectionChange(function () { return _this.emit('selection'); });\n _this.onScroll(function (e) { return _this.emit('scroll', e); });\n _this.onTitleChange(function (e) { return _this.emit('title', e); });\n return _this;\n }\n Object.defineProperty(Terminal.prototype, \"onCursorMove\", {\n get: function () { return this._onCursorMove.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onData\", {\n get: function () { return this._onData.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onKey\", {\n get: function () { return this._onKey.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onLineFeed\", {\n get: function () { return this._onLineFeed.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onRender\", {\n get: function () { return this._onRender.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onResize\", {\n get: function () { return this._onResize.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onScroll\", {\n get: function () { return this._onScroll.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onSelectionChange\", {\n get: function () { return this._onSelectionChange.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Terminal.prototype, \"onTitleChange\", {\n get: function () { return this._onTitleChange.event; },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (this._windowsMode) {\n this._windowsMode.dispose();\n this._windowsMode = undefined;\n }\n this._customKeyEventHandler = null;\n CharAtlasCache_1.removeTerminalFromCache(this);\n this.handler = function () { };\n this.write = function () { };\n if (this.element && this.element.parentNode) {\n this.element.parentNode.removeChild(this.element);\n }\n };\n Terminal.prototype.destroy = function () {\n this.dispose();\n };\n Terminal.prototype._setup = function () {\n var _this = this;\n Object.keys(DEFAULT_OPTIONS).forEach(function (key) {\n if (_this.options[key] === null || _this.options[key] === undefined) {\n _this.options[key] = DEFAULT_OPTIONS[key];\n }\n });\n this._parent = document ? document.body : null;\n this.cols = Math.max(this.options.cols, MINIMUM_COLS);\n this.rows = Math.max(this.options.rows, MINIMUM_ROWS);\n if (this.options.handler) {\n this.onData(this.options.handler);\n }\n this.cursorState = 0;\n this.cursorHidden = false;\n this._customKeyEventHandler = null;\n this.applicationKeypad = false;\n this.applicationCursor = false;\n this.originMode = false;\n this.insertMode = false;\n this.wraparoundMode = true;\n this.bracketedPasteMode = false;\n this.charset = null;\n this.gcharset = null;\n this.glevel = 0;\n this.charsets = [null];\n this.curAttrData = BufferLine_1.DEFAULT_ATTR_DATA.clone();\n this._eraseAttrData = BufferLine_1.DEFAULT_ATTR_DATA.clone();\n this.params = [];\n this.currentParam = 0;\n this.writeBuffer = [];\n this.writeBufferUtf8 = [];\n this._writeInProgress = false;\n this._xoffSentToCatchUp = false;\n this._userScrolling = false;\n this._inputHandler = new InputHandler_1.InputHandler(this);\n this._inputHandler.onCursorMove(function () { return _this._onCursorMove.fire(); });\n this._inputHandler.onLineFeed(function () { return _this._onLineFeed.fire(); });\n this._inputHandler.onData(function (e) { return _this._onData.fire(e); });\n this.register(this._inputHandler);\n this.selectionManager = this.selectionManager || null;\n this.linkifier = this.linkifier || new Linkifier_1.Linkifier(this);\n this._mouseZoneManager = this._mouseZoneManager || null;\n this.soundManager = this.soundManager || new SoundManager_1.SoundManager(this);\n this.buffers = new BufferSet_1.BufferSet(this);\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n this.selectionManager.initBuffersListeners();\n }\n if (this.options.windowsMode) {\n this._windowsMode = WindowsMode_1.applyWindowsMode(this);\n }\n };\n Object.defineProperty(Terminal.prototype, \"buffer\", {\n get: function () {\n return this.buffers.active;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.eraseAttrData = function () {\n this._eraseAttrData.bg &= ~(50331648 | 0xFFFFFF);\n this._eraseAttrData.bg |= this.curAttrData.bg & ~0xFC000000;\n return this._eraseAttrData;\n };\n Terminal.prototype.focus = function () {\n if (this.textarea) {\n this.textarea.focus({ preventScroll: true });\n }\n };\n Object.defineProperty(Terminal.prototype, \"isFocused\", {\n get: function () {\n return document.activeElement === this.textarea && document.hasFocus();\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.getOption = function (key) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n return this.options[key];\n };\n Terminal.prototype.setOption = function (key, value) {\n if (!(key in DEFAULT_OPTIONS)) {\n throw new Error('No option with key \"' + key + '\"');\n }\n if (CONSTRUCTOR_ONLY_OPTIONS.indexOf(key) !== -1) {\n console.error(\"Option \\\"\" + key + \"\\\" can only be set in the constructor\");\n }\n if (this.options[key] === value) {\n return;\n }\n switch (key) {\n case 'bellStyle':\n if (!value) {\n value = 'none';\n }\n break;\n case 'cursorStyle':\n if (!value) {\n value = 'block';\n }\n break;\n case 'fontWeight':\n if (!value) {\n value = 'normal';\n }\n break;\n case 'fontWeightBold':\n if (!value) {\n value = 'bold';\n }\n break;\n case 'lineHeight':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n case 'rendererType':\n if (!value) {\n value = 'canvas';\n }\n break;\n case 'tabStopWidth':\n if (value < 1) {\n console.warn(key + \" cannot be less than 1, value: \" + value);\n return;\n }\n break;\n case 'theme':\n this._setTheme(value);\n break;\n case 'scrollback':\n value = Math.min(value, Buffer_1.MAX_BUFFER_SIZE);\n if (value < 0) {\n console.warn(key + \" cannot be less than 0, value: \" + value);\n return;\n }\n if (this.options[key] !== value) {\n var newBufferLength = this.rows + value;\n if (this.buffer.lines.length > newBufferLength) {\n var amountToTrim = this.buffer.lines.length - newBufferLength;\n var needsRefresh = (this.buffer.ydisp - amountToTrim < 0);\n this.buffer.lines.trimStart(amountToTrim);\n this.buffer.ybase = Math.max(this.buffer.ybase - amountToTrim, 0);\n this.buffer.ydisp = Math.max(this.buffer.ydisp - amountToTrim, 0);\n if (needsRefresh) {\n this.refresh(0, this.rows - 1);\n }\n }\n }\n break;\n }\n this.options[key] = value;\n switch (key) {\n case 'fontFamily':\n case 'fontSize':\n if (this._renderCoordinator) {\n this._renderCoordinator.clear();\n this.charMeasure.measure(this.options);\n }\n break;\n case 'drawBoldTextInBrightColors':\n case 'experimentalCharAtlas':\n case 'enableBold':\n case 'letterSpacing':\n case 'lineHeight':\n case 'fontWeight':\n case 'fontWeightBold':\n if (this._renderCoordinator) {\n this._renderCoordinator.clear();\n this._renderCoordinator.onResize(this.cols, this.rows);\n this.refresh(0, this.rows - 1);\n }\n break;\n case 'rendererType':\n if (this._renderCoordinator) {\n this._renderCoordinator.setRenderer(this._createRenderer());\n }\n break;\n case 'scrollback':\n this.buffers.resize(this.cols, this.rows);\n if (this.viewport) {\n this.viewport.syncScrollArea();\n }\n break;\n case 'screenReaderMode':\n if (value) {\n if (!this._accessibilityManager && this._renderCoordinator) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this, this._renderCoordinator.dimensions);\n }\n }\n else {\n if (this._accessibilityManager) {\n this._accessibilityManager.dispose();\n this._accessibilityManager = null;\n }\n }\n break;\n case 'tabStopWidth':\n this.buffers.setupTabStops();\n break;\n case 'windowsMode':\n if (value) {\n if (!this._windowsMode) {\n this._windowsMode = WindowsMode_1.applyWindowsMode(this);\n }\n }\n else {\n if (this._windowsMode) {\n this._windowsMode.dispose();\n this._windowsMode = undefined;\n }\n }\n break;\n }\n if (this._renderCoordinator) {\n this._renderCoordinator.onOptionsChanged();\n }\n };\n Terminal.prototype._onTextAreaFocus = function (ev) {\n if (this.sendFocus) {\n this.handler(EscapeSequences_1.C0.ESC + '[I');\n }\n this.updateCursorStyle(ev);\n this.element.classList.add('focus');\n this.showCursor();\n this.emit('focus');\n };\n Terminal.prototype.blur = function () {\n return this.textarea.blur();\n };\n Terminal.prototype._onTextAreaBlur = function () {\n this.textarea.value = '';\n this.refresh(this.buffer.y, this.buffer.y);\n if (this.sendFocus) {\n this.handler(EscapeSequences_1.C0.ESC + '[O');\n }\n this.element.classList.remove('focus');\n this.emit('blur');\n };\n Terminal.prototype._initGlobal = function () {\n var _this = this;\n this._bindKeys();\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'copy', function (event) {\n if (!_this.hasSelection()) {\n return;\n }\n Clipboard_1.copyHandler(event, _this, _this.selectionManager);\n }));\n var pasteHandlerWrapper = function (event) { return Clipboard_1.pasteHandler(event, _this); };\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'paste', pasteHandlerWrapper));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'paste', pasteHandlerWrapper));\n if (Browser.isFirefox) {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (event) {\n if (event.button === 2) {\n Clipboard_1.rightClickHandler(event, _this, _this.selectionManager, _this.options.rightClickSelectsWord);\n }\n }));\n }\n else {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'contextmenu', function (event) {\n Clipboard_1.rightClickHandler(event, _this, _this.selectionManager, _this.options.rightClickSelectsWord);\n }));\n }\n if (Browser.isLinux) {\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'auxclick', function (event) {\n if (event.button === 1) {\n Clipboard_1.moveTextAreaUnderMouseCursor(event, _this);\n }\n }));\n }\n };\n Terminal.prototype._bindKeys = function () {\n var _this = this;\n var self = this;\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keydown', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyDown(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keypress', function (ev) {\n if (document.activeElement !== this) {\n return;\n }\n self._keyPress(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'keyup', function (ev) {\n if (!wasModifierKeyOnlyEvent(ev)) {\n _this.focus();\n }\n self._keyUp(ev);\n }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keydown', function (ev) { return _this._keyDown(ev); }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'keypress', function (ev) { return _this._keyPress(ev); }, true));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionstart', function () { return _this._compositionHelper.compositionstart(); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionupdate', function (e) { return _this._compositionHelper.compositionupdate(e); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'compositionend', function () { return _this._compositionHelper.compositionend(); }));\n this.register(this.onRender(function () { return _this._compositionHelper.updateCompositionElements(); }));\n this.register(this.onRender(function (e) { return _this._queueLinkification(e.start, e.end); }));\n };\n Terminal.prototype.open = function (parent) {\n var _this = this;\n this._parent = parent || this._parent;\n if (!this._parent) {\n throw new Error('Terminal requires a parent element.');\n }\n this._context = this._parent.ownerDocument.defaultView;\n this._document = this._parent.ownerDocument;\n this.element = this._document.createElement('div');\n this.element.dir = 'ltr';\n this.element.classList.add('terminal');\n this.element.classList.add('xterm');\n this.element.setAttribute('tabindex', '0');\n this._parent.appendChild(this.element);\n var fragment = document.createDocumentFragment();\n this._viewportElement = document.createElement('div');\n this._viewportElement.classList.add('xterm-viewport');\n fragment.appendChild(this._viewportElement);\n this._viewportScrollArea = document.createElement('div');\n this._viewportScrollArea.classList.add('xterm-scroll-area');\n this._viewportElement.appendChild(this._viewportScrollArea);\n this.screenElement = document.createElement('div');\n this.screenElement.classList.add('xterm-screen');\n this._helperContainer = document.createElement('div');\n this._helperContainer.classList.add('xterm-helpers');\n this.screenElement.appendChild(this._helperContainer);\n fragment.appendChild(this.screenElement);\n this._mouseZoneManager = new MouseZoneManager_1.MouseZoneManager(this);\n this.register(this._mouseZoneManager);\n this.register(this.onScroll(function () { return _this._mouseZoneManager.clearAll(); }));\n this.linkifier.attachToDom(this._mouseZoneManager);\n this.textarea = document.createElement('textarea');\n this.textarea.classList.add('xterm-helper-textarea');\n this.textarea.setAttribute('aria-label', Strings.promptLabel);\n this.textarea.setAttribute('aria-multiline', 'false');\n this.textarea.setAttribute('autocorrect', 'off');\n this.textarea.setAttribute('autocapitalize', 'off');\n this.textarea.setAttribute('spellcheck', 'false');\n this.textarea.tabIndex = 0;\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'focus', function (ev) { return _this._onTextAreaFocus(ev); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.textarea, 'blur', function () { return _this._onTextAreaBlur(); }));\n this._helperContainer.appendChild(this.textarea);\n this._compositionView = document.createElement('div');\n this._compositionView.classList.add('composition-view');\n this._compositionHelper = new CompositionHelper_1.CompositionHelper(this.textarea, this._compositionView, this);\n this._helperContainer.appendChild(this._compositionView);\n this.charMeasure = new CharMeasure_1.CharMeasure(document, this._helperContainer);\n this.element.appendChild(fragment);\n this._theme = this.options.theme;\n this._colorManager = new ColorManager_1.ColorManager(document, this.options.allowTransparency);\n this._colorManager.setTheme(this._theme);\n var renderer = this._createRenderer();\n this._renderCoordinator = new RenderCoordinator_1.RenderCoordinator(renderer, this.rows, this.screenElement);\n this._renderCoordinator.onRender(function (e) { return _this._onRender.fire(e); });\n this.onResize(function (e) { return _this._renderCoordinator.resize(e.cols, e.rows); });\n this.viewport = new Viewport_1.Viewport(this, this._viewportElement, this._viewportScrollArea, this.charMeasure, this._renderCoordinator.dimensions);\n this.viewport.onThemeChange(this._colorManager.colors);\n this.register(this.viewport);\n this.register(this.onCursorMove(function () { return _this._renderCoordinator.onCursorMove(); }));\n this.register(this.onResize(function () { return _this._renderCoordinator.onResize(_this.cols, _this.rows); }));\n this.register(this.addDisposableListener('blur', function () { return _this._renderCoordinator.onBlur(); }));\n this.register(this.addDisposableListener('focus', function () { return _this._renderCoordinator.onFocus(); }));\n this.register(this.charMeasure.onCharSizeChanged(function () { return _this._renderCoordinator.onCharSizeChanged(); }));\n this.register(this._renderCoordinator.onDimensionsChange(function () { return _this.viewport.syncScrollArea(); }));\n this.selectionManager = new SelectionManager_1.SelectionManager(this, this.charMeasure);\n this.register(this.selectionManager.onSelectionChange(function () { return _this._onSelectionChange.fire(); }));\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (e) { return _this.selectionManager.onMouseDown(e); }));\n this.register(this.selectionManager.onRedrawRequest(function (e) { return _this._renderCoordinator.onSelectionChanged(e.start, e.end, e.columnSelectMode); }));\n this.register(this.selectionManager.onLinuxMouseSelection(function (text) {\n _this.textarea.value = text;\n _this.textarea.focus();\n _this.textarea.select();\n }));\n this.register(this.onScroll(function () {\n _this.viewport.syncScrollArea();\n _this.selectionManager.refresh();\n }));\n this.register(Lifecycle_1.addDisposableDomListener(this._viewportElement, 'scroll', function () { return _this.selectionManager.refresh(); }));\n this.mouseHelper = new MouseHelper_1.MouseHelper(this._renderCoordinator);\n this.element.classList.toggle('enable-mouse-events', this.mouseEvents);\n if (this.mouseEvents) {\n this.selectionManager.disable();\n }\n else {\n this.selectionManager.enable();\n }\n if (this.options.screenReaderMode) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this, this._renderCoordinator.dimensions);\n this._accessibilityManager.register(this._renderCoordinator.onDimensionsChange(function (e) { return _this._accessibilityManager.setDimensions(e); }));\n }\n this.charMeasure.measure(this.options);\n this.refresh(0, this.rows - 1);\n this._initGlobal();\n this.bindMouse();\n };\n Terminal.prototype._createRenderer = function () {\n switch (this.options.rendererType) {\n case 'canvas':\n return new Renderer_1.Renderer(this, this._colorManager.colors);\n break;\n case 'dom':\n return new DomRenderer_1.DomRenderer(this, this._colorManager.colors);\n break;\n default: throw new Error(\"Unrecognized rendererType \\\"\" + this.options.rendererType + \"\\\"\");\n }\n };\n Terminal.prototype._setTheme = function (theme) {\n this._theme = theme;\n if (this._colorManager) {\n this._colorManager.setTheme(theme);\n }\n if (this._renderCoordinator) {\n this._renderCoordinator.setColors(this._colorManager.colors);\n }\n if (this.viewport) {\n this.viewport.onThemeChange(this._colorManager.colors);\n }\n };\n Terminal.prototype.bindMouse = function () {\n var _this = this;\n var el = this.element;\n var self = this;\n var pressed = 32;\n function sendButton(ev) {\n var button;\n var pos;\n button = getButton(ev);\n pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.cols, self.rows);\n if (!pos)\n return;\n sendEvent(button, pos);\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n pressed = button;\n break;\n case 'mouseup':\n pressed = 32;\n break;\n case 'wheel':\n break;\n }\n }\n function sendMove(ev) {\n var button = pressed;\n var pos = self.mouseHelper.getRawByteCoords(ev, self.screenElement, self.charMeasure, self.cols, self.rows);\n if (!pos)\n return;\n button += 32;\n sendEvent(button, pos);\n }\n function encode(data, ch) {\n if (!self.utfMouse) {\n if (ch === 255) {\n data.push(0);\n return;\n }\n if (ch > 127)\n ch = 127;\n data.push(ch);\n }\n else {\n if (ch > 2047) {\n data.push(2047);\n return;\n }\n data.push(ch);\n }\n }\n function sendEvent(button, pos) {\n if (self._vt300Mouse) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n var data_1 = EscapeSequences_1.C0.ESC + '[24';\n if (button === 0)\n data_1 += '1';\n else if (button === 1)\n data_1 += '3';\n else if (button === 2)\n data_1 += '5';\n else if (button === 3)\n return;\n else\n data_1 += '0';\n data_1 += '~[' + pos.x + ',' + pos.y + ']\\r';\n self.handler(data_1);\n return;\n }\n if (self._decLocator) {\n button &= 3;\n pos.x -= 32;\n pos.y -= 32;\n if (button === 0)\n button = 2;\n else if (button === 1)\n button = 4;\n else if (button === 2)\n button = 6;\n else if (button === 3)\n button = 3;\n self.handler(EscapeSequences_1.C0.ESC + '['\n + button\n + ';'\n + (button === 3 ? 4 : 0)\n + ';'\n + pos.y\n + ';'\n + pos.x\n + ';'\n + pos.page || 0\n + '&w');\n return;\n }\n if (self.urxvtMouse) {\n pos.x -= 32;\n pos.y -= 32;\n pos.x++;\n pos.y++;\n self.handler(EscapeSequences_1.C0.ESC + '[' + button + ';' + pos.x + ';' + pos.y + 'M');\n return;\n }\n if (self.sgrMouse) {\n pos.x -= 32;\n pos.y -= 32;\n self.handler(EscapeSequences_1.C0.ESC + '[<'\n + (((button & 3) === 3 ? button & ~3 : button) - 32)\n + ';'\n + pos.x\n + ';'\n + pos.y\n + ((button & 3) === 3 ? 'm' : 'M'));\n return;\n }\n var data = [];\n encode(data, button);\n encode(data, pos.x);\n encode(data, pos.y);\n self.handler(EscapeSequences_1.C0.ESC + '[M' + String.fromCharCode.apply(String, data));\n }\n function getButton(ev) {\n var button;\n var shift;\n var meta;\n var ctrl;\n var mod;\n switch (ev.overrideType || ev.type) {\n case 'mousedown':\n button = ev.button !== null && ev.button !== undefined\n ? +ev.button\n : ev.which !== null && ev.which !== undefined\n ? ev.which - 1\n : null;\n if (Browser.isMSIE) {\n button = button === 1 ? 0 : button === 4 ? 1 : button;\n }\n break;\n case 'mouseup':\n button = 3;\n break;\n case 'DOMMouseScroll':\n button = ev.detail < 0\n ? 64\n : 65;\n break;\n case 'wheel':\n button = ev.deltaY < 0\n ? 64\n : 65;\n break;\n }\n shift = ev.shiftKey ? 4 : 0;\n meta = ev.metaKey ? 8 : 0;\n ctrl = ev.ctrlKey ? 16 : 0;\n mod = shift | meta | ctrl;\n if (self.vt200Mouse) {\n mod &= ctrl;\n }\n else if (!self.normalMouse) {\n mod = 0;\n }\n button = (32 + (mod << 2)) + button;\n return button;\n }\n this.register(Lifecycle_1.addDisposableDomListener(el, 'mousedown', function (ev) {\n ev.preventDefault();\n _this.focus();\n if (!_this.mouseEvents || _this.selectionManager.shouldForceSelection(ev)) {\n return;\n }\n sendButton(ev);\n if (_this.vt200Mouse) {\n ev.overrideType = 'mouseup';\n sendButton(ev);\n return _this.cancel(ev);\n }\n var moveHandler;\n if (_this.normalMouse) {\n moveHandler = function (event) {\n if (!_this.normalMouse) {\n return;\n }\n sendMove(event);\n };\n _this._document.addEventListener('mousemove', moveHandler);\n }\n var handler = function (ev) {\n if (_this.normalMouse && !_this.x10Mouse) {\n sendButton(ev);\n }\n if (moveHandler) {\n _this._document.removeEventListener('mousemove', moveHandler);\n moveHandler = null;\n }\n _this._document.removeEventListener('mouseup', handler);\n return _this.cancel(ev);\n };\n _this._document.addEventListener('mouseup', handler);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {\n if (!_this.mouseEvents) {\n if (!_this.buffer.hasScrollback) {\n var amount = _this.viewport.getLinesScrolled(ev);\n if (amount === 0) {\n return;\n }\n var sequence = EscapeSequences_1.C0.ESC + (_this.applicationCursor ? 'O' : '[') + (ev.deltaY < 0 ? 'A' : 'B');\n var data = '';\n for (var i = 0; i < Math.abs(amount); i++) {\n data += sequence;\n }\n _this.handler(data);\n }\n return;\n }\n if (_this.x10Mouse || _this._vt300Mouse || _this._decLocator)\n return;\n sendButton(ev);\n ev.preventDefault();\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'wheel', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onWheel(ev);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'touchstart', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchStart(ev);\n return _this.cancel(ev);\n }));\n this.register(Lifecycle_1.addDisposableDomListener(el, 'touchmove', function (ev) {\n if (_this.mouseEvents)\n return;\n _this.viewport.onTouchMove(ev);\n return _this.cancel(ev);\n }));\n };\n Terminal.prototype.refresh = function (start, end) {\n if (this._renderCoordinator) {\n this._renderCoordinator.refreshRows(start, end);\n }\n };\n Terminal.prototype._queueLinkification = function (start, end) {\n if (this.linkifier) {\n this.linkifier.linkifyRows(start, end);\n }\n };\n Terminal.prototype.updateCursorStyle = function (ev) {\n if (this.selectionManager && this.selectionManager.shouldColumnSelect(ev)) {\n this.element.classList.add('column-select');\n }\n else {\n this.element.classList.remove('column-select');\n }\n };\n Terminal.prototype.showCursor = function () {\n if (!this.cursorState) {\n this.cursorState = 1;\n this.refresh(this.buffer.y, this.buffer.y);\n }\n };\n Terminal.prototype.scroll = function (isWrapped) {\n if (isWrapped === void 0) { isWrapped = false; }\n var newLine;\n newLine = this._blankLine;\n var eraseAttr = this.eraseAttrData();\n if (!newLine || newLine.length !== this.cols || newLine.getFg(0) !== eraseAttr.fg || newLine.getBg(0) !== eraseAttr.bg) {\n newLine = this.buffer.getBlankLine(eraseAttr, isWrapped);\n this._blankLine = newLine;\n }\n newLine.isWrapped = isWrapped;\n var topRow = this.buffer.ybase + this.buffer.scrollTop;\n var bottomRow = this.buffer.ybase + this.buffer.scrollBottom;\n if (this.buffer.scrollTop === 0) {\n var willBufferBeTrimmed = this.buffer.lines.isFull;\n if (bottomRow === this.buffer.lines.length - 1) {\n if (willBufferBeTrimmed) {\n this.buffer.lines.recycle().copyFrom(newLine);\n }\n else {\n this.buffer.lines.push(newLine.clone());\n }\n }\n else {\n this.buffer.lines.splice(bottomRow + 1, 0, newLine.clone());\n }\n if (!willBufferBeTrimmed) {\n this.buffer.ybase++;\n if (!this._userScrolling) {\n this.buffer.ydisp++;\n }\n }\n else {\n if (this._userScrolling) {\n this.buffer.ydisp = Math.max(this.buffer.ydisp - 1, 0);\n }\n }\n }\n else {\n var scrollRegionHeight = bottomRow - topRow + 1;\n this.buffer.lines.shiftElements(topRow + 1, scrollRegionHeight - 1, -1);\n this.buffer.lines.set(bottomRow, newLine.clone());\n }\n if (!this._userScrolling) {\n this.buffer.ydisp = this.buffer.ybase;\n }\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n this._onScroll.fire(this.buffer.ydisp);\n };\n Terminal.prototype.scrollLines = function (disp, suppressScrollEvent) {\n if (disp < 0) {\n if (this.buffer.ydisp === 0) {\n return;\n }\n this._userScrolling = true;\n }\n else if (disp + this.buffer.ydisp >= this.buffer.ybase) {\n this._userScrolling = false;\n }\n var oldYdisp = this.buffer.ydisp;\n this.buffer.ydisp = Math.max(Math.min(this.buffer.ydisp + disp, this.buffer.ybase), 0);\n if (oldYdisp === this.buffer.ydisp) {\n return;\n }\n if (!suppressScrollEvent) {\n this._onScroll.fire(this.buffer.ydisp);\n }\n this.refresh(0, this.rows - 1);\n };\n Terminal.prototype.scrollPages = function (pageCount) {\n this.scrollLines(pageCount * (this.rows - 1));\n };\n Terminal.prototype.scrollToTop = function () {\n this.scrollLines(-this.buffer.ydisp);\n };\n Terminal.prototype.scrollToBottom = function () {\n this.scrollLines(this.buffer.ybase - this.buffer.ydisp);\n };\n Terminal.prototype.scrollToLine = function (line) {\n var scrollAmount = line - this.buffer.ydisp;\n if (scrollAmount !== 0) {\n this.scrollLines(scrollAmount);\n }\n };\n Terminal.prototype.writeUtf8 = function (data) {\n var _this = this;\n if (this._isDisposed) {\n return;\n }\n if (!data) {\n return;\n }\n this.writeBufferUtf8.push(data);\n if (this.options.useFlowControl && !this._xoffSentToCatchUp && this.writeBufferUtf8.length >= WRITE_BUFFER_PAUSE_THRESHOLD) {\n this.handler(EscapeSequences_1.C0.DC3);\n this._xoffSentToCatchUp = true;\n }\n if (!this._writeInProgress && this.writeBufferUtf8.length > 0) {\n this._writeInProgress = true;\n setTimeout(function () {\n _this._innerWriteUtf8();\n });\n }\n };\n Terminal.prototype._innerWriteUtf8 = function (bufferOffset) {\n var _this = this;\n if (bufferOffset === void 0) { bufferOffset = 0; }\n if (this._isDisposed) {\n this.writeBufferUtf8 = [];\n }\n var startTime = Date.now();\n while (this.writeBufferUtf8.length > bufferOffset) {\n var data = this.writeBufferUtf8[bufferOffset];\n bufferOffset++;\n if (this._xoffSentToCatchUp && this.writeBufferUtf8.length === bufferOffset) {\n this.handler(EscapeSequences_1.C0.DC1);\n this._xoffSentToCatchUp = false;\n }\n this._refreshStart = this.buffer.y;\n this._refreshEnd = this.buffer.y;\n this._inputHandler.parseUtf8(data);\n this.updateRange(this.buffer.y);\n this.refresh(this._refreshStart, this._refreshEnd);\n if (Date.now() - startTime >= WRITE_TIMEOUT_MS) {\n break;\n }\n }\n if (this.writeBufferUtf8.length > bufferOffset) {\n if (bufferOffset > WRITE_BUFFER_LENGTH_THRESHOLD) {\n this.writeBufferUtf8 = this.writeBufferUtf8.slice(bufferOffset);\n bufferOffset = 0;\n }\n setTimeout(function () { return _this._innerWriteUtf8(bufferOffset); }, 0);\n }\n else {\n this._writeInProgress = false;\n this.writeBufferUtf8 = [];\n }\n };\n Terminal.prototype.write = function (data) {\n var _this = this;\n if (this._isDisposed) {\n return;\n }\n if (!data) {\n return;\n }\n this.writeBuffer.push(data);\n if (this.options.useFlowControl && !this._xoffSentToCatchUp && this.writeBuffer.length >= WRITE_BUFFER_PAUSE_THRESHOLD) {\n this.handler(EscapeSequences_1.C0.DC3);\n this._xoffSentToCatchUp = true;\n }\n if (!this._writeInProgress && this.writeBuffer.length > 0) {\n this._writeInProgress = true;\n setTimeout(function () {\n _this._innerWrite();\n });\n }\n };\n Terminal.prototype._innerWrite = function (bufferOffset) {\n var _this = this;\n if (bufferOffset === void 0) { bufferOffset = 0; }\n if (this._isDisposed) {\n this.writeBuffer = [];\n }\n var startTime = Date.now();\n while (this.writeBuffer.length > bufferOffset) {\n var data = this.writeBuffer[bufferOffset];\n bufferOffset++;\n if (this._xoffSentToCatchUp && this.writeBuffer.length === bufferOffset) {\n this.handler(EscapeSequences_1.C0.DC1);\n this._xoffSentToCatchUp = false;\n }\n this._refreshStart = this.buffer.y;\n this._refreshEnd = this.buffer.y;\n this._inputHandler.parse(data);\n this.updateRange(this.buffer.y);\n this.refresh(this._refreshStart, this._refreshEnd);\n if (Date.now() - startTime >= WRITE_TIMEOUT_MS) {\n break;\n }\n }\n if (this.writeBuffer.length > bufferOffset) {\n if (bufferOffset > WRITE_BUFFER_LENGTH_THRESHOLD) {\n this.writeBuffer = this.writeBuffer.slice(bufferOffset);\n bufferOffset = 0;\n }\n setTimeout(function () { return _this._innerWrite(bufferOffset); }, 0);\n }\n else {\n this._writeInProgress = false;\n this.writeBuffer = [];\n }\n };\n Terminal.prototype.writeln = function (data) {\n this.write(data + '\\r\\n');\n };\n Terminal.prototype.attachCustomKeyEventHandler = function (customKeyEventHandler) {\n this._customKeyEventHandler = customKeyEventHandler;\n };\n Terminal.prototype.addCsiHandler = function (flag, callback) {\n return this._inputHandler.addCsiHandler(flag, callback);\n };\n Terminal.prototype.addOscHandler = function (ident, callback) {\n return this._inputHandler.addOscHandler(ident, callback);\n };\n Terminal.prototype.registerLinkMatcher = function (regex, handler, options) {\n var matcherId = this.linkifier.registerLinkMatcher(regex, handler, options);\n this.refresh(0, this.rows - 1);\n return matcherId;\n };\n Terminal.prototype.deregisterLinkMatcher = function (matcherId) {\n if (this.linkifier.deregisterLinkMatcher(matcherId)) {\n this.refresh(0, this.rows - 1);\n }\n };\n Terminal.prototype.registerCharacterJoiner = function (handler) {\n var joinerId = this._renderCoordinator.registerCharacterJoiner(handler);\n this.refresh(0, this.rows - 1);\n return joinerId;\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n if (this._renderCoordinator.deregisterCharacterJoiner(joinerId)) {\n this.refresh(0, this.rows - 1);\n }\n };\n Object.defineProperty(Terminal.prototype, \"markers\", {\n get: function () {\n return this.buffer.markers;\n },\n enumerable: true,\n configurable: true\n });\n Terminal.prototype.addMarker = function (cursorYOffset) {\n if (this.buffer !== this.buffers.normal) {\n return;\n }\n return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);\n };\n Terminal.prototype.hasSelection = function () {\n return this.selectionManager ? this.selectionManager.hasSelection : false;\n };\n Terminal.prototype.select = function (column, row, length) {\n this.selectionManager.setSelection(column, row, length);\n };\n Terminal.prototype.getSelection = function () {\n return this.selectionManager ? this.selectionManager.selectionText : '';\n };\n Terminal.prototype.getSelectionPosition = function () {\n if (!this.selectionManager.hasSelection) {\n return undefined;\n }\n return {\n startColumn: this.selectionManager.selectionStart[0],\n startRow: this.selectionManager.selectionStart[1],\n endColumn: this.selectionManager.selectionEnd[0],\n endRow: this.selectionManager.selectionEnd[1]\n };\n };\n Terminal.prototype.clearSelection = function () {\n if (this.selectionManager) {\n this.selectionManager.clearSelection();\n }\n };\n Terminal.prototype.selectAll = function () {\n if (this.selectionManager) {\n this.selectionManager.selectAll();\n }\n };\n Terminal.prototype.selectLines = function (start, end) {\n if (this.selectionManager) {\n this.selectionManager.selectLines(start, end);\n }\n };\n Terminal.prototype._keyDown = function (event) {\n if (this._customKeyEventHandler && this._customKeyEventHandler(event) === false) {\n return false;\n }\n if (!this._compositionHelper.keydown(event)) {\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n return false;\n }\n var result = Keyboard_1.evaluateKeyboardEvent(event, this.applicationCursor, this.browser.isMac, this.options.macOptionIsMeta);\n this.updateCursorStyle(event);\n if (result.type === 3 || result.type === 2) {\n var scrollCount = this.rows - 1;\n this.scrollLines(result.type === 2 ? -scrollCount : scrollCount);\n return this.cancel(event, true);\n }\n if (result.type === 1) {\n this.selectAll();\n }\n if (this._isThirdLevelShift(this.browser, event)) {\n return true;\n }\n if (result.cancel) {\n this.cancel(event, true);\n }\n if (!result.key) {\n return true;\n }\n this.emit('keydown', event);\n this._onKey.fire({ key: result.key, domEvent: event });\n this.showCursor();\n this.handler(result.key);\n return this.cancel(event, true);\n };\n Terminal.prototype._isThirdLevelShift = function (browser, ev) {\n var thirdLevelKey = (browser.isMac && !this.options.macOptionIsMeta && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||\n (browser.isMSWindows && ev.altKey && ev.ctrlKey && !ev.metaKey);\n if (ev.type === 'keypress') {\n return thirdLevelKey;\n }\n return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);\n };\n Terminal.prototype.setgLevel = function (g) {\n this.glevel = g;\n this.charset = this.charsets[g];\n };\n Terminal.prototype.setgCharset = function (g, charset) {\n this.charsets[g] = charset;\n if (this.glevel === g) {\n this.charset = charset;\n }\n };\n Terminal.prototype._keyUp = function (ev) {\n this.updateCursorStyle(ev);\n };\n Terminal.prototype._keyPress = function (ev) {\n var key;\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return false;\n }\n this.cancel(ev);\n if (ev.charCode) {\n key = ev.charCode;\n }\n else if (ev.which === null || ev.which === undefined) {\n key = ev.keyCode;\n }\n else if (ev.which !== 0 && ev.charCode !== 0) {\n key = ev.which;\n }\n else {\n return false;\n }\n if (!key || ((ev.altKey || ev.ctrlKey || ev.metaKey) && !this._isThirdLevelShift(this.browser, ev))) {\n return false;\n }\n key = String.fromCharCode(key);\n this.emit('keypress', key, ev);\n this._onKey.fire({ key: key, domEvent: ev });\n this.showCursor();\n this.handler(key);\n return true;\n };\n Terminal.prototype.bell = function () {\n var _this = this;\n this.emit('bell');\n if (this._soundBell()) {\n this.soundManager.playBellSound();\n }\n if (this._visualBell()) {\n this.element.classList.add('visual-bell-active');\n clearTimeout(this._visualBellTimer);\n this._visualBellTimer = window.setTimeout(function () {\n _this.element.classList.remove('visual-bell-active');\n }, 200);\n }\n };\n Terminal.prototype.log = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this._context.console || !this._context.console.log)\n return;\n this._context.console.log(text, data);\n };\n Terminal.prototype.error = function (text, data) {\n if (!this.options.debug)\n return;\n if (!this._context.console || !this._context.console.error)\n return;\n this._context.console.error(text, data);\n };\n Terminal.prototype.resize = function (x, y) {\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n if (x === this.cols && y === this.rows) {\n if (this.charMeasure && (!this.charMeasure.width || !this.charMeasure.height)) {\n this.charMeasure.measure(this.options);\n }\n return;\n }\n if (x < MINIMUM_COLS)\n x = MINIMUM_COLS;\n if (y < MINIMUM_ROWS)\n y = MINIMUM_ROWS;\n this.buffers.resize(x, y);\n this.cols = x;\n this.rows = y;\n this.buffers.setupTabStops(this.cols);\n if (this.charMeasure) {\n this.charMeasure.measure(this.options);\n }\n this.refresh(0, this.rows - 1);\n this._onResize.fire({ cols: x, rows: y });\n };\n Terminal.prototype.updateRange = function (y) {\n if (y < this._refreshStart)\n this._refreshStart = y;\n if (y > this._refreshEnd)\n this._refreshEnd = y;\n };\n Terminal.prototype.maxRange = function () {\n this._refreshStart = 0;\n this._refreshEnd = this.rows - 1;\n };\n Terminal.prototype.clear = function () {\n if (this.buffer.ybase === 0 && this.buffer.y === 0) {\n return;\n }\n this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y));\n this.buffer.lines.length = 1;\n this.buffer.ydisp = 0;\n this.buffer.ybase = 0;\n this.buffer.y = 0;\n for (var i = 1; i < this.rows; i++) {\n this.buffer.lines.push(this.buffer.getBlankLine(BufferLine_1.DEFAULT_ATTR_DATA));\n }\n this.refresh(0, this.rows - 1);\n this._onScroll.fire(this.buffer.ydisp);\n };\n Terminal.prototype.is = function (term) {\n return (this.options.termName + '').indexOf(term) === 0;\n };\n Terminal.prototype.handler = function (data) {\n if (this.options.disableStdin) {\n return;\n }\n if (this.selectionManager && this.selectionManager.hasSelection) {\n this.selectionManager.clearSelection();\n }\n if (this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom();\n }\n this._onData.fire(data);\n };\n Terminal.prototype.handleTitle = function (title) {\n this._onTitleChange.fire(title);\n };\n Terminal.prototype.index = function () {\n this.buffer.y++;\n if (this.buffer.y > this.buffer.scrollBottom) {\n this.buffer.y--;\n this.scroll();\n }\n if (this.buffer.x >= this.cols) {\n this.buffer.x--;\n }\n };\n Terminal.prototype.reverseIndex = function () {\n if (this.buffer.y === this.buffer.scrollTop) {\n var scrollRegionHeight = this.buffer.scrollBottom - this.buffer.scrollTop;\n this.buffer.lines.shiftElements(this.buffer.y + this.buffer.ybase, scrollRegionHeight, 1);\n this.buffer.lines.set(this.buffer.y + this.buffer.ybase, this.buffer.getBlankLine(this.eraseAttrData()));\n this.updateRange(this.buffer.scrollTop);\n this.updateRange(this.buffer.scrollBottom);\n }\n else {\n this.buffer.y--;\n }\n };\n Terminal.prototype.reset = function () {\n this.options.rows = this.rows;\n this.options.cols = this.cols;\n var customKeyEventHandler = this._customKeyEventHandler;\n var inputHandler = this._inputHandler;\n var cursorState = this.cursorState;\n var writeBuffer = this.writeBuffer;\n var writeBufferUtf8 = this.writeBufferUtf8;\n var writeInProgress = this._writeInProgress;\n var xoffSentToCatchUp = this._xoffSentToCatchUp;\n var userScrolling = this._userScrolling;\n this._setup();\n this._customKeyEventHandler = customKeyEventHandler;\n this._inputHandler = inputHandler;\n this.cursorState = cursorState;\n this.writeBuffer = writeBuffer;\n this.writeBufferUtf8 = writeBufferUtf8;\n this._writeInProgress = writeInProgress;\n this._xoffSentToCatchUp = xoffSentToCatchUp;\n this._userScrolling = userScrolling;\n this.refresh(0, this.rows - 1);\n if (this.viewport) {\n this.viewport.syncScrollArea();\n }\n };\n Terminal.prototype.tabSet = function () {\n this.buffer.tabs[this.buffer.x] = true;\n };\n Terminal.prototype.cancel = function (ev, force) {\n if (!this.options.cancelEvents && !force) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n };\n Terminal.prototype._visualBell = function () {\n return false;\n };\n Terminal.prototype._soundBell = function () {\n return this.options.bellStyle === 'sound';\n };\n return Terminal;\n}(EventEmitter_1.EventEmitter));\nexports.Terminal = Terminal;\nfunction wasModifierKeyOnlyEvent(ev) {\n return ev.keyCode === 16 ||\n ev.keyCode === 17 ||\n ev.keyCode === 18;\n}\n//# sourceMappingURL=Terminal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"../common/data/EscapeSequences\");\nvar AltClickHandler = (function () {\n function AltClickHandler(_mouseEvent, _terminal) {\n var _a;\n this._mouseEvent = _mouseEvent;\n this._terminal = _terminal;\n this._lines = this._terminal.buffer.lines;\n this._startCol = this._terminal.buffer.x;\n this._startRow = this._terminal.buffer.y;\n var coordinates = this._terminal.mouseHelper.getCoords(this._mouseEvent, this._terminal.element, this._terminal.charMeasure, this._terminal.cols, this._terminal.rows, false);\n if (coordinates) {\n _a = coordinates.map(function (coordinate) {\n return coordinate - 1;\n }), this._endCol = _a[0], this._endRow = _a[1];\n }\n }\n AltClickHandler.prototype.move = function () {\n if (this._mouseEvent.altKey && this._endCol !== undefined && this._endRow !== undefined) {\n this._terminal.handler(this._arrowSequences());\n }\n };\n AltClickHandler.prototype._arrowSequences = function () {\n if (!this._terminal.buffer.hasScrollback) {\n return this._resetStartingRow() + this._moveToRequestedRow() + this._moveToRequestedCol();\n }\n return this._moveHorizontallyOnly();\n };\n AltClickHandler.prototype._resetStartingRow = function () {\n if (this._moveToRequestedRow().length === 0) {\n return '';\n }\n return repeat(this._bufferLine(this._startCol, this._startRow, this._startCol, this._startRow - this._wrappedRowsForRow(this._startRow), false).length, this._sequence(\"D\"));\n };\n AltClickHandler.prototype._moveToRequestedRow = function () {\n var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);\n var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n var rowsToMove = Math.abs(startRow - endRow) - this._wrappedRowsCount();\n return repeat(rowsToMove, this._sequence(this._verticalDirection()));\n };\n AltClickHandler.prototype._moveToRequestedCol = function () {\n var startRow;\n if (this._moveToRequestedRow().length > 0) {\n startRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n }\n else {\n startRow = this._startRow;\n }\n var endRow = this._endRow;\n var direction = this._horizontalDirection();\n return repeat(this._bufferLine(this._startCol, startRow, this._endCol, endRow, direction === \"C\").length, this._sequence(direction));\n };\n AltClickHandler.prototype._moveHorizontallyOnly = function () {\n var direction = this._horizontalDirection();\n return repeat(Math.abs(this._startCol - this._endCol), this._sequence(direction));\n };\n AltClickHandler.prototype._wrappedRowsCount = function () {\n var wrappedRows = 0;\n var startRow = this._startRow - this._wrappedRowsForRow(this._startRow);\n var endRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n for (var i = 0; i < Math.abs(startRow - endRow); i++) {\n var direction = this._verticalDirection() === \"A\" ? -1 : 1;\n if (this._lines.get(startRow + (direction * i)).isWrapped) {\n wrappedRows++;\n }\n }\n return wrappedRows;\n };\n AltClickHandler.prototype._wrappedRowsForRow = function (currentRow) {\n var rowCount = 0;\n var lineWraps = this._lines.get(currentRow).isWrapped;\n while (lineWraps && currentRow >= 0 && currentRow < this._terminal.rows) {\n rowCount++;\n currentRow--;\n lineWraps = this._lines.get(currentRow).isWrapped;\n }\n return rowCount;\n };\n AltClickHandler.prototype._horizontalDirection = function () {\n var startRow;\n if (this._moveToRequestedRow().length > 0) {\n startRow = this._endRow - this._wrappedRowsForRow(this._endRow);\n }\n else {\n startRow = this._startRow;\n }\n if ((this._startCol < this._endCol &&\n startRow <= this._endRow) ||\n (this._startCol >= this._endCol &&\n startRow < this._endRow)) {\n return \"C\";\n }\n return \"D\";\n };\n AltClickHandler.prototype._verticalDirection = function () {\n if (this._startRow > this._endRow) {\n return \"A\";\n }\n return \"B\";\n };\n AltClickHandler.prototype._bufferLine = function (startCol, startRow, endCol, endRow, forward) {\n var currentCol = startCol;\n var currentRow = startRow;\n var bufferStr = '';\n while (currentCol !== endCol || currentRow !== endRow) {\n currentCol += forward ? 1 : -1;\n if (forward && currentCol > this._terminal.cols - 1) {\n bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);\n currentCol = 0;\n startCol = 0;\n currentRow++;\n }\n else if (!forward && currentCol < 0) {\n bufferStr += this._terminal.buffer.translateBufferLineToString(currentRow, false, 0, startCol + 1);\n currentCol = this._terminal.cols - 1;\n startCol = currentCol;\n currentRow--;\n }\n }\n return bufferStr + this._terminal.buffer.translateBufferLineToString(currentRow, false, startCol, currentCol);\n };\n AltClickHandler.prototype._sequence = function (direction) {\n var mod = this._terminal.applicationCursor ? 'O' : '[';\n return EscapeSequences_1.C0.ESC + mod + direction;\n };\n return AltClickHandler;\n}());\nexports.AltClickHandler = AltClickHandler;\nfunction repeat(count, str) {\n count = Math.floor(count);\n var rpt = '';\n for (var i = 0; i < count; i++) {\n rpt += str;\n }\n return rpt;\n}\n//# sourceMappingURL=AltClickHandler.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar TextDecoder_1 = require(\"./core/input/TextDecoder\");\nfunction r(low, high) {\n var c = high - low;\n var arr = new Array(c);\n while (c--) {\n arr[c] = --high;\n }\n return arr;\n}\nvar TransitionTable = (function () {\n function TransitionTable(length) {\n this.table = (typeof Uint8Array === 'undefined')\n ? new Array(length)\n : new Uint8Array(length);\n }\n TransitionTable.prototype.add = function (code, state, action, next) {\n this.table[state << 8 | code] = ((action | 0) << 4) | ((next === undefined) ? state : next);\n };\n TransitionTable.prototype.addMany = function (codes, state, action, next) {\n for (var i = 0; i < codes.length; i++) {\n this.add(codes[i], state, action, next);\n }\n };\n return TransitionTable;\n}());\nexports.TransitionTable = TransitionTable;\nvar PRINTABLES = r(0x20, 0x7f);\nvar EXECUTABLES = r(0x00, 0x18);\nEXECUTABLES.push(0x19);\nEXECUTABLES.push.apply(EXECUTABLES, r(0x1c, 0x20));\nvar NON_ASCII_PRINTABLE = 0xA0;\nexports.VT500_TRANSITION_TABLE = (function () {\n var table = new TransitionTable(4095);\n var states = r(0, 13 + 1);\n var state;\n for (state in states) {\n for (var code = 0; code <= NON_ASCII_PRINTABLE; ++code) {\n table.add(code, state, 1, 0);\n }\n }\n table.addMany(PRINTABLES, 0, 2, 0);\n for (state in states) {\n table.addMany([0x18, 0x1a, 0x99, 0x9a], state, 3, 0);\n table.addMany(r(0x80, 0x90), state, 3, 0);\n table.addMany(r(0x90, 0x98), state, 3, 0);\n table.add(0x9c, state, 0, 0);\n table.add(0x1b, state, 11, 1);\n table.add(0x9d, state, 4, 8);\n table.addMany([0x98, 0x9e, 0x9f], state, 0, 7);\n table.add(0x9b, state, 11, 3);\n table.add(0x90, state, 11, 9);\n }\n table.addMany(EXECUTABLES, 0, 3, 0);\n table.addMany(EXECUTABLES, 1, 3, 1);\n table.add(0x7f, 1, 0, 1);\n table.addMany(EXECUTABLES, 8, 0, 8);\n table.addMany(EXECUTABLES, 3, 3, 3);\n table.add(0x7f, 3, 0, 3);\n table.addMany(EXECUTABLES, 4, 3, 4);\n table.add(0x7f, 4, 0, 4);\n table.addMany(EXECUTABLES, 6, 3, 6);\n table.addMany(EXECUTABLES, 5, 3, 5);\n table.add(0x7f, 5, 0, 5);\n table.addMany(EXECUTABLES, 2, 3, 2);\n table.add(0x7f, 2, 0, 2);\n table.add(0x5d, 1, 4, 8);\n table.addMany(PRINTABLES, 8, 5, 8);\n table.add(0x7f, 8, 5, 8);\n table.addMany([0x9c, 0x1b, 0x18, 0x1a, 0x07], 8, 6, 0);\n table.addMany(r(0x1c, 0x20), 8, 0, 8);\n table.addMany([0x58, 0x5e, 0x5f], 1, 0, 7);\n table.addMany(PRINTABLES, 7, 0, 7);\n table.addMany(EXECUTABLES, 7, 0, 7);\n table.add(0x9c, 7, 0, 0);\n table.add(0x7f, 7, 0, 7);\n table.add(0x5b, 1, 11, 3);\n table.addMany(r(0x40, 0x7f), 3, 7, 0);\n table.addMany(r(0x30, 0x3a), 3, 8, 4);\n table.add(0x3b, 3, 8, 4);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 3, 9, 4);\n table.addMany(r(0x30, 0x3a), 4, 8, 4);\n table.add(0x3b, 4, 8, 4);\n table.addMany(r(0x40, 0x7f), 4, 7, 0);\n table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 4, 0, 6);\n table.addMany(r(0x20, 0x40), 6, 0, 6);\n table.add(0x7f, 6, 0, 6);\n table.addMany(r(0x40, 0x7f), 6, 0, 0);\n table.add(0x3a, 3, 0, 6);\n table.addMany(r(0x20, 0x30), 3, 9, 5);\n table.addMany(r(0x20, 0x30), 5, 9, 5);\n table.addMany(r(0x30, 0x40), 5, 0, 6);\n table.addMany(r(0x40, 0x7f), 5, 7, 0);\n table.addMany(r(0x20, 0x30), 4, 9, 5);\n table.addMany(r(0x20, 0x30), 1, 9, 2);\n table.addMany(r(0x20, 0x30), 2, 9, 2);\n table.addMany(r(0x30, 0x7f), 2, 10, 0);\n table.addMany(r(0x30, 0x50), 1, 10, 0);\n table.addMany(r(0x51, 0x58), 1, 10, 0);\n table.addMany([0x59, 0x5a, 0x5c], 1, 10, 0);\n table.addMany(r(0x60, 0x7f), 1, 10, 0);\n table.add(0x50, 1, 11, 9);\n table.addMany(EXECUTABLES, 9, 0, 9);\n table.add(0x7f, 9, 0, 9);\n table.addMany(r(0x1c, 0x20), 9, 0, 9);\n table.addMany(r(0x20, 0x30), 9, 9, 12);\n table.add(0x3a, 9, 0, 11);\n table.addMany(r(0x30, 0x3a), 9, 8, 10);\n table.add(0x3b, 9, 8, 10);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], 9, 9, 10);\n table.addMany(EXECUTABLES, 11, 0, 11);\n table.addMany(r(0x20, 0x80), 11, 0, 11);\n table.addMany(r(0x1c, 0x20), 11, 0, 11);\n table.addMany(EXECUTABLES, 10, 0, 10);\n table.add(0x7f, 10, 0, 10);\n table.addMany(r(0x1c, 0x20), 10, 0, 10);\n table.addMany(r(0x30, 0x3a), 10, 8, 10);\n table.add(0x3b, 10, 8, 10);\n table.addMany([0x3a, 0x3c, 0x3d, 0x3e, 0x3f], 10, 0, 11);\n table.addMany(r(0x20, 0x30), 10, 9, 12);\n table.addMany(EXECUTABLES, 12, 0, 12);\n table.add(0x7f, 12, 0, 12);\n table.addMany(r(0x1c, 0x20), 12, 0, 12);\n table.addMany(r(0x20, 0x30), 12, 9, 12);\n table.addMany(r(0x30, 0x40), 12, 0, 11);\n table.addMany(r(0x40, 0x7f), 12, 12, 13);\n table.addMany(r(0x40, 0x7f), 10, 12, 13);\n table.addMany(r(0x40, 0x7f), 9, 12, 13);\n table.addMany(EXECUTABLES, 13, 13, 13);\n table.addMany(PRINTABLES, 13, 13, 13);\n table.add(0x7f, 13, 0, 13);\n table.addMany([0x1b, 0x9c], 13, 14, 0);\n table.add(NON_ASCII_PRINTABLE, 8, 5, 8);\n return table;\n})();\nvar DcsDummy = (function () {\n function DcsDummy() {\n }\n DcsDummy.prototype.hook = function (collect, params, flag) { };\n DcsDummy.prototype.put = function (data, start, end) { };\n DcsDummy.prototype.unhook = function () { };\n return DcsDummy;\n}());\nvar EscapeSequenceParser = (function (_super) {\n __extends(EscapeSequenceParser, _super);\n function EscapeSequenceParser(TRANSITIONS) {\n if (TRANSITIONS === void 0) { TRANSITIONS = exports.VT500_TRANSITION_TABLE; }\n var _this = _super.call(this) || this;\n _this.TRANSITIONS = TRANSITIONS;\n _this.initialState = 0;\n _this.currentState = _this.initialState;\n _this._osc = '';\n _this._params = [0];\n _this._collect = '';\n _this._printHandlerFb = function (data, start, end) { };\n _this._executeHandlerFb = function (code) { };\n _this._csiHandlerFb = function (collect, params, flag) { };\n _this._escHandlerFb = function (collect, flag) { };\n _this._oscHandlerFb = function (identifier, data) { };\n _this._dcsHandlerFb = new DcsDummy();\n _this._errorHandlerFb = function (state) { return state; };\n _this._printHandler = _this._printHandlerFb;\n _this._executeHandlers = Object.create(null);\n _this._csiHandlers = Object.create(null);\n _this._escHandlers = Object.create(null);\n _this._oscHandlers = Object.create(null);\n _this._dcsHandlers = Object.create(null);\n _this._activeDcsHandler = null;\n _this._errorHandler = _this._errorHandlerFb;\n _this.setEscHandler('\\\\', function () { });\n return _this;\n }\n EscapeSequenceParser.prototype.dispose = function () {\n this._printHandlerFb = null;\n this._executeHandlerFb = null;\n this._csiHandlerFb = null;\n this._escHandlerFb = null;\n this._oscHandlerFb = null;\n this._dcsHandlerFb = null;\n this._errorHandlerFb = null;\n this._printHandler = null;\n this._executeHandlers = null;\n this._escHandlers = null;\n this._csiHandlers = null;\n this._oscHandlers = null;\n this._dcsHandlers = null;\n this._activeDcsHandler = null;\n this._errorHandler = null;\n };\n EscapeSequenceParser.prototype.setPrintHandler = function (callback) {\n this._printHandler = callback;\n };\n EscapeSequenceParser.prototype.clearPrintHandler = function () {\n this._printHandler = this._printHandlerFb;\n };\n EscapeSequenceParser.prototype.setExecuteHandler = function (flag, callback) {\n this._executeHandlers[flag.charCodeAt(0)] = callback;\n };\n EscapeSequenceParser.prototype.clearExecuteHandler = function (flag) {\n if (this._executeHandlers[flag.charCodeAt(0)])\n delete this._executeHandlers[flag.charCodeAt(0)];\n };\n EscapeSequenceParser.prototype.setExecuteHandlerFallback = function (callback) {\n this._executeHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.addCsiHandler = function (flag, callback) {\n var index = flag.charCodeAt(0);\n if (this._csiHandlers[index] === undefined) {\n this._csiHandlers[index] = [];\n }\n var handlerList = this._csiHandlers[index];\n handlerList.push(callback);\n return {\n dispose: function () {\n var handlerIndex = handlerList.indexOf(callback);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n };\n EscapeSequenceParser.prototype.setCsiHandler = function (flag, callback) {\n this._csiHandlers[flag.charCodeAt(0)] = [callback];\n };\n EscapeSequenceParser.prototype.clearCsiHandler = function (flag) {\n if (this._csiHandlers[flag.charCodeAt(0)])\n delete this._csiHandlers[flag.charCodeAt(0)];\n };\n EscapeSequenceParser.prototype.setCsiHandlerFallback = function (callback) {\n this._csiHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setEscHandler = function (collectAndFlag, callback) {\n this._escHandlers[collectAndFlag] = callback;\n };\n EscapeSequenceParser.prototype.clearEscHandler = function (collectAndFlag) {\n if (this._escHandlers[collectAndFlag])\n delete this._escHandlers[collectAndFlag];\n };\n EscapeSequenceParser.prototype.setEscHandlerFallback = function (callback) {\n this._escHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.addOscHandler = function (ident, callback) {\n if (this._oscHandlers[ident] === undefined) {\n this._oscHandlers[ident] = [];\n }\n var handlerList = this._oscHandlers[ident];\n handlerList.push(callback);\n return {\n dispose: function () {\n var handlerIndex = handlerList.indexOf(callback);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n };\n EscapeSequenceParser.prototype.setOscHandler = function (ident, callback) {\n this._oscHandlers[ident] = [callback];\n };\n EscapeSequenceParser.prototype.clearOscHandler = function (ident) {\n if (this._oscHandlers[ident])\n delete this._oscHandlers[ident];\n };\n EscapeSequenceParser.prototype.setOscHandlerFallback = function (callback) {\n this._oscHandlerFb = callback;\n };\n EscapeSequenceParser.prototype.setDcsHandler = function (collectAndFlag, handler) {\n this._dcsHandlers[collectAndFlag] = handler;\n };\n EscapeSequenceParser.prototype.clearDcsHandler = function (collectAndFlag) {\n if (this._dcsHandlers[collectAndFlag])\n delete this._dcsHandlers[collectAndFlag];\n };\n EscapeSequenceParser.prototype.setDcsHandlerFallback = function (handler) {\n this._dcsHandlerFb = handler;\n };\n EscapeSequenceParser.prototype.setErrorHandler = function (callback) {\n this._errorHandler = callback;\n };\n EscapeSequenceParser.prototype.clearErrorHandler = function () {\n this._errorHandler = this._errorHandlerFb;\n };\n EscapeSequenceParser.prototype.reset = function () {\n this.currentState = this.initialState;\n this._osc = '';\n this._params = [0];\n this._collect = '';\n this._activeDcsHandler = null;\n };\n EscapeSequenceParser.prototype.parse = function (data, length) {\n var code = 0;\n var transition = 0;\n var error = false;\n var currentState = this.currentState;\n var print = -1;\n var dcs = -1;\n var osc = this._osc;\n var collect = this._collect;\n var params = this._params;\n var table = this.TRANSITIONS.table;\n var dcsHandler = this._activeDcsHandler;\n var callback = null;\n for (var i = 0; i < length; ++i) {\n code = data[i];\n if (currentState === 0 && code > 0x1f && code < 0x80) {\n print = (~print) ? print : i;\n do\n i++;\n while (i < length && data[i] > 0x1f && data[i] < 0x80);\n i--;\n continue;\n }\n if (currentState === 4 && (code > 0x2f && code < 0x39)) {\n params[params.length - 1] = params[params.length - 1] * 10 + code - 48;\n continue;\n }\n transition = table[currentState << 8 | (code < 0xa0 ? code : NON_ASCII_PRINTABLE)];\n switch (transition >> 4) {\n case 2:\n print = (~print) ? print : i;\n break;\n case 3:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n callback = this._executeHandlers[code];\n if (callback)\n callback();\n else\n this._executeHandlerFb(code);\n break;\n case 0:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n else if (~dcs) {\n dcsHandler.put(data, dcs, i);\n dcs = -1;\n }\n break;\n case 1:\n if (code > 0x9f) {\n switch (currentState) {\n case 0:\n print = (~print) ? print : i;\n break;\n case 6:\n transition |= 6;\n break;\n case 11:\n transition |= 11;\n break;\n case 13:\n dcs = (~dcs) ? dcs : i;\n transition |= 13;\n break;\n default:\n error = true;\n }\n }\n else {\n error = true;\n }\n if (error) {\n var inject = this._errorHandler({\n position: i,\n code: code,\n currentState: currentState,\n print: print,\n dcs: dcs,\n osc: osc,\n collect: collect,\n params: params,\n abort: false\n });\n if (inject.abort)\n return;\n error = false;\n }\n break;\n case 7:\n var handlers = this._csiHandlers[code];\n var j = handlers ? handlers.length - 1 : -1;\n for (; j >= 0; j--) {\n if (handlers[j](params, collect) !== false) {\n break;\n }\n }\n if (j < 0) {\n this._csiHandlerFb(collect, params, code);\n }\n break;\n case 8:\n if (code === 0x3b)\n params.push(0);\n else\n params[params.length - 1] = params[params.length - 1] * 10 + code - 48;\n break;\n case 9:\n collect += String.fromCharCode(code);\n break;\n case 10:\n callback = this._escHandlers[collect + String.fromCharCode(code)];\n if (callback)\n callback(collect, code);\n else\n this._escHandlerFb(collect, code);\n break;\n case 11:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n case 12:\n dcsHandler = this._dcsHandlers[collect + String.fromCharCode(code)];\n if (!dcsHandler)\n dcsHandler = this._dcsHandlerFb;\n dcsHandler.hook(collect, params, code);\n break;\n case 13:\n dcs = (~dcs) ? dcs : i;\n break;\n case 14:\n if (dcsHandler) {\n if (~dcs)\n dcsHandler.put(data, dcs, i);\n dcsHandler.unhook();\n dcsHandler = null;\n }\n if (code === 0x1b)\n transition |= 1;\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n case 4:\n if (~print) {\n this._printHandler(data, print, i);\n print = -1;\n }\n osc = '';\n break;\n case 5:\n for (var j_1 = i + 1;; j_1++) {\n if (j_1 >= length\n || (code = data[j_1]) < 0x20\n || (code > 0x7f && code <= 0x9f)) {\n osc += TextDecoder_1.utf32ToString(data, i, j_1);\n i = j_1 - 1;\n break;\n }\n }\n break;\n case 6:\n if (osc && code !== 0x18 && code !== 0x1a) {\n var idx = osc.indexOf(';');\n if (idx === -1) {\n this._oscHandlerFb(-1, osc);\n }\n else {\n var identifier = parseInt(osc.substring(0, idx));\n var content = osc.substring(idx + 1);\n var handlers_1 = this._oscHandlers[identifier];\n var j_2 = handlers_1 ? handlers_1.length - 1 : -1;\n for (; j_2 >= 0; j_2--) {\n if (handlers_1[j_2](content) !== false) {\n break;\n }\n }\n if (j_2 < 0) {\n this._oscHandlerFb(identifier, content);\n }\n }\n }\n if (code === 0x1b)\n transition |= 1;\n osc = '';\n params = [0];\n collect = '';\n dcs = -1;\n break;\n }\n currentState = transition & 15;\n }\n if (currentState === 0 && ~print) {\n this._printHandler(data, print, length);\n }\n else if (currentState === 13 && ~dcs && dcsHandler) {\n dcsHandler.put(data, dcs, length);\n }\n this._osc = osc;\n this._collect = collect;\n this._params = params;\n this._activeDcsHandler = dcsHandler;\n this.currentState = currentState;\n };\n return EscapeSequenceParser;\n}(Lifecycle_1.Disposable));\nexports.EscapeSequenceParser = EscapeSequenceParser;\n//# sourceMappingURL=EscapeSequenceParser.js.map","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 88);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return normalizeComponent; });\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nfunction normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/migrating\");\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/focus\");\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 88:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/component.vue?vue&type=template&id=2dcd8fbb&\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"el-switch\",\n class: { \"is-disabled\": _vm.switchDisabled, \"is-checked\": _vm.checked },\n attrs: {\n role: \"switch\",\n \"aria-checked\": _vm.checked,\n \"aria-disabled\": _vm.switchDisabled\n },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.switchValue($event)\n }\n }\n },\n [\n _c(\"input\", {\n ref: \"input\",\n staticClass: \"el-switch__input\",\n attrs: {\n type: \"checkbox\",\n id: _vm.id,\n name: _vm.name,\n \"true-value\": _vm.activeValue,\n \"false-value\": _vm.inactiveValue,\n disabled: _vm.switchDisabled\n },\n on: {\n change: _vm.handleChange,\n keydown: function($event) {\n if (\n !(\"button\" in $event) &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.switchValue($event)\n }\n }\n }),\n _vm.inactiveIconClass || _vm.inactiveText\n ? _c(\n \"span\",\n {\n class: [\n \"el-switch__label\",\n \"el-switch__label--left\",\n !_vm.checked ? \"is-active\" : \"\"\n ]\n },\n [\n _vm.inactiveIconClass\n ? _c(\"i\", { class: [_vm.inactiveIconClass] })\n : _vm._e(),\n !_vm.inactiveIconClass && _vm.inactiveText\n ? _c(\"span\", { attrs: { \"aria-hidden\": _vm.checked } }, [\n _vm._v(_vm._s(_vm.inactiveText))\n ])\n : _vm._e()\n ]\n )\n : _vm._e(),\n _c(\"span\", {\n ref: \"core\",\n staticClass: \"el-switch__core\",\n style: { width: _vm.coreWidth + \"px\" }\n }),\n _vm.activeIconClass || _vm.activeText\n ? _c(\n \"span\",\n {\n class: [\n \"el-switch__label\",\n \"el-switch__label--right\",\n _vm.checked ? \"is-active\" : \"\"\n ]\n },\n [\n _vm.activeIconClass\n ? _c(\"i\", { class: [_vm.activeIconClass] })\n : _vm._e(),\n !_vm.activeIconClass && _vm.activeText\n ? _c(\"span\", { attrs: { \"aria-hidden\": !_vm.checked } }, [\n _vm._v(_vm._s(_vm.activeText))\n ])\n : _vm._e()\n ]\n )\n : _vm._e()\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n// CONCATENATED MODULE: ./packages/switch/src/component.vue?vue&type=template&id=2dcd8fbb&\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/emitter\"\nvar emitter_ = __webpack_require__(4);\nvar emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/focus\"\nvar focus_ = __webpack_require__(22);\nvar focus_default = /*#__PURE__*/__webpack_require__.n(focus_);\n\n// EXTERNAL MODULE: external \"element-ui/lib/mixins/migrating\"\nvar migrating_ = __webpack_require__(11);\nvar migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);\n\n// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/component.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ var componentvue_type_script_lang_js_ = ({\n name: 'ElSwitch',\n mixins: [focus_default()('input'), migrating_default.a, emitter_default.a],\n inject: {\n elForm: {\n default: ''\n }\n },\n props: {\n value: {\n type: [Boolean, String, Number],\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n width: {\n type: Number,\n default: 40\n },\n activeIconClass: {\n type: String,\n default: ''\n },\n inactiveIconClass: {\n type: String,\n default: ''\n },\n activeText: String,\n inactiveText: String,\n activeColor: {\n type: String,\n default: ''\n },\n inactiveColor: {\n type: String,\n default: ''\n },\n activeValue: {\n type: [Boolean, String, Number],\n default: true\n },\n inactiveValue: {\n type: [Boolean, String, Number],\n default: false\n },\n name: {\n type: String,\n default: ''\n },\n validateEvent: {\n type: Boolean,\n default: true\n },\n id: String\n },\n data: function data() {\n return {\n coreWidth: this.width\n };\n },\n created: function created() {\n if (!~[this.activeValue, this.inactiveValue].indexOf(this.value)) {\n this.$emit('input', this.inactiveValue);\n }\n },\n\n computed: {\n checked: function checked() {\n return this.value === this.activeValue;\n },\n switchDisabled: function switchDisabled() {\n return this.disabled || (this.elForm || {}).disabled;\n }\n },\n watch: {\n checked: function checked() {\n this.$refs.input.checked = this.checked;\n if (this.activeColor || this.inactiveColor) {\n this.setBackgroundColor();\n }\n if (this.validateEvent) {\n this.dispatch('ElFormItem', 'el.form.change', [this.value]);\n }\n }\n },\n methods: {\n handleChange: function handleChange(event) {\n var _this = this;\n\n var val = this.checked ? this.inactiveValue : this.activeValue;\n this.$emit('input', val);\n this.$emit('change', val);\n this.$nextTick(function () {\n // set input's checked property\n // in case parent refuses to change component's value\n _this.$refs.input.checked = _this.checked;\n });\n },\n setBackgroundColor: function setBackgroundColor() {\n var newColor = this.checked ? this.activeColor : this.inactiveColor;\n this.$refs.core.style.borderColor = newColor;\n this.$refs.core.style.backgroundColor = newColor;\n },\n switchValue: function switchValue() {\n !this.switchDisabled && this.handleChange();\n },\n getMigratingConfig: function getMigratingConfig() {\n return {\n props: {\n 'on-color': 'on-color is renamed to active-color.',\n 'off-color': 'off-color is renamed to inactive-color.',\n 'on-text': 'on-text is renamed to active-text.',\n 'off-text': 'off-text is renamed to inactive-text.',\n 'on-value': 'on-value is renamed to active-value.',\n 'off-value': 'off-value is renamed to inactive-value.',\n 'on-icon-class': 'on-icon-class is renamed to active-icon-class.',\n 'off-icon-class': 'off-icon-class is renamed to inactive-icon-class.'\n }\n };\n }\n },\n mounted: function mounted() {\n /* istanbul ignore if */\n this.coreWidth = this.width || 40;\n if (this.activeColor || this.inactiveColor) {\n this.setBackgroundColor();\n }\n this.$refs.input.checked = this.checked;\n }\n});\n// CONCATENATED MODULE: ./packages/switch/src/component.vue?vue&type=script&lang=js&\n /* harmony default export */ var src_componentvue_type_script_lang_js_ = (componentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./packages/switch/src/component.vue\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer[\"a\" /* default */])(\n src_componentvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"packages/switch/src/component.vue\"\n/* harmony default export */ var src_component = (component.exports);\n// CONCATENATED MODULE: ./packages/switch/index.js\n\n\n/* istanbul ignore next */\nsrc_component.install = function (Vue) {\n Vue.component(src_component.name, src_component);\n};\n\n/* harmony default export */ var packages_switch = __webpack_exports__[\"default\"] = (src_component);\n\n/***/ })\n\n/******/ });","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRUMap = (function () {\n function LRUMap(capacity) {\n this.capacity = capacity;\n this._map = {};\n this._head = null;\n this._tail = null;\n this._nodePool = [];\n this.size = 0;\n }\n LRUMap.prototype._unlinkNode = function (node) {\n var prev = node.prev;\n var next = node.next;\n if (node === this._head) {\n this._head = next;\n }\n if (node === this._tail) {\n this._tail = prev;\n }\n if (prev !== null) {\n prev.next = next;\n }\n if (next !== null) {\n next.prev = prev;\n }\n };\n LRUMap.prototype._appendNode = function (node) {\n var tail = this._tail;\n if (tail !== null) {\n tail.next = node;\n }\n node.prev = tail;\n node.next = null;\n this._tail = node;\n if (this._head === null) {\n this._head = node;\n }\n };\n LRUMap.prototype.prealloc = function (count) {\n var nodePool = this._nodePool;\n for (var i = 0; i < count; i++) {\n nodePool.push({\n prev: null,\n next: null,\n key: null,\n value: null\n });\n }\n };\n LRUMap.prototype.get = function (key) {\n var node = this._map[key];\n if (node !== undefined) {\n this._unlinkNode(node);\n this._appendNode(node);\n return node.value;\n }\n return null;\n };\n LRUMap.prototype.peekValue = function (key) {\n var node = this._map[key];\n if (node !== undefined) {\n return node.value;\n }\n return null;\n };\n LRUMap.prototype.peek = function () {\n var head = this._head;\n return head === null ? null : head.value;\n };\n LRUMap.prototype.set = function (key, value) {\n var node = this._map[key];\n if (node !== undefined) {\n node = this._map[key];\n this._unlinkNode(node);\n node.value = value;\n }\n else if (this.size >= this.capacity) {\n node = this._head;\n this._unlinkNode(node);\n delete this._map[node.key];\n node.key = key;\n node.value = value;\n this._map[key] = node;\n }\n else {\n var nodePool = this._nodePool;\n if (nodePool.length > 0) {\n node = nodePool.pop();\n node.key = key;\n node.value = value;\n }\n else {\n node = {\n prev: null,\n next: null,\n key: key,\n value: value\n };\n }\n this._map[key] = node;\n this.size++;\n }\n this._appendNode(node);\n };\n return LRUMap;\n}());\nexports.default = LRUMap;\n//# sourceMappingURL=LRUMap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseZoneManager_1 = require(\"./MouseZoneManager\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar EventEmitter2_1 = require(\"./common/EventEmitter2\");\nvar Linkifier = (function () {\n function Linkifier(_terminal) {\n this._terminal = _terminal;\n this._linkMatchers = [];\n this._nextLinkMatcherId = 0;\n this._onLinkHover = new EventEmitter2_1.EventEmitter2();\n this._onLinkLeave = new EventEmitter2_1.EventEmitter2();\n this._onLinkTooltip = new EventEmitter2_1.EventEmitter2();\n this._rowsToLinkify = {\n start: null,\n end: null\n };\n }\n Object.defineProperty(Linkifier.prototype, \"onLinkHover\", {\n get: function () { return this._onLinkHover.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Linkifier.prototype, \"onLinkLeave\", {\n get: function () { return this._onLinkLeave.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Linkifier.prototype, \"onLinkTooltip\", {\n get: function () { return this._onLinkTooltip.event; },\n enumerable: true,\n configurable: true\n });\n Linkifier.prototype.attachToDom = function (mouseZoneManager) {\n this._mouseZoneManager = mouseZoneManager;\n };\n Linkifier.prototype.linkifyRows = function (start, end) {\n var _this = this;\n if (!this._mouseZoneManager) {\n return;\n }\n if (this._rowsToLinkify.start === null) {\n this._rowsToLinkify.start = start;\n this._rowsToLinkify.end = end;\n }\n else {\n this._rowsToLinkify.start = Math.min(this._rowsToLinkify.start, start);\n this._rowsToLinkify.end = Math.max(this._rowsToLinkify.end, end);\n }\n this._mouseZoneManager.clearAll(start, end);\n if (this._rowsTimeoutId) {\n clearTimeout(this._rowsTimeoutId);\n }\n this._rowsTimeoutId = setTimeout(function () { return _this._linkifyRows(); }, Linkifier.TIME_BEFORE_LINKIFY);\n };\n Linkifier.prototype._linkifyRows = function () {\n this._rowsTimeoutId = null;\n var buffer = this._terminal.buffer;\n var absoluteRowIndexStart = buffer.ydisp + this._rowsToLinkify.start;\n if (absoluteRowIndexStart >= buffer.lines.length) {\n return;\n }\n var absoluteRowIndexEnd = buffer.ydisp + Math.min(this._rowsToLinkify.end, this._terminal.rows) + 1;\n var overscanLineLimit = Math.ceil(Linkifier.OVERSCAN_CHAR_LIMIT / this._terminal.cols);\n var iterator = this._terminal.buffer.iterator(false, absoluteRowIndexStart, absoluteRowIndexEnd, overscanLineLimit, overscanLineLimit);\n while (iterator.hasNext()) {\n var lineData = iterator.next();\n for (var i = 0; i < this._linkMatchers.length; i++) {\n this._doLinkifyRow(lineData.range.first, lineData.content, this._linkMatchers[i]);\n }\n }\n this._rowsToLinkify.start = null;\n this._rowsToLinkify.end = null;\n };\n Linkifier.prototype.registerLinkMatcher = function (regex, handler, options) {\n if (options === void 0) { options = {}; }\n if (!handler) {\n throw new Error('handler must be defined');\n }\n var matcher = {\n id: this._nextLinkMatcherId++,\n regex: regex,\n handler: handler,\n matchIndex: options.matchIndex,\n validationCallback: options.validationCallback,\n hoverTooltipCallback: options.tooltipCallback,\n hoverLeaveCallback: options.leaveCallback,\n willLinkActivate: options.willLinkActivate,\n priority: options.priority || 0\n };\n this._addLinkMatcherToList(matcher);\n return matcher.id;\n };\n Linkifier.prototype._addLinkMatcherToList = function (matcher) {\n if (this._linkMatchers.length === 0) {\n this._linkMatchers.push(matcher);\n return;\n }\n for (var i = this._linkMatchers.length - 1; i >= 0; i--) {\n if (matcher.priority <= this._linkMatchers[i].priority) {\n this._linkMatchers.splice(i + 1, 0, matcher);\n return;\n }\n }\n this._linkMatchers.splice(0, 0, matcher);\n };\n Linkifier.prototype.deregisterLinkMatcher = function (matcherId) {\n for (var i = 0; i < this._linkMatchers.length; i++) {\n if (this._linkMatchers[i].id === matcherId) {\n this._linkMatchers.splice(i, 1);\n return true;\n }\n }\n return false;\n };\n Linkifier.prototype._doLinkifyRow = function (rowIndex, text, matcher) {\n var _this = this;\n var rex = new RegExp(matcher.regex.source, matcher.regex.flags + 'g');\n var match;\n var stringIndex = -1;\n var _loop_1 = function () {\n var uri = match[typeof matcher.matchIndex !== 'number' ? 0 : matcher.matchIndex];\n if (!uri) {\n if (this_1._terminal.debug) {\n console.log({ match: match, matcher: matcher });\n throw new Error('match found without corresponding matchIndex');\n }\n return \"break\";\n }\n stringIndex = text.indexOf(uri, stringIndex + 1);\n rex.lastIndex = stringIndex + uri.length;\n if (stringIndex < 0) {\n return \"break\";\n }\n var bufferIndex = this_1._terminal.buffer.stringIndexToBufferIndex(rowIndex, stringIndex);\n if (bufferIndex[0] < 0) {\n return \"break\";\n }\n var line = this_1._terminal.buffer.lines.get(bufferIndex[0]);\n var attr = line.getFg(bufferIndex[1]);\n var fg;\n if (attr) {\n fg = (attr >> 9) & 0x1ff;\n }\n if (matcher.validationCallback) {\n matcher.validationCallback(uri, function (isValid) {\n if (_this._rowsTimeoutId) {\n return;\n }\n if (isValid) {\n _this._addLink(bufferIndex[1], bufferIndex[0] - _this._terminal.buffer.ydisp, uri, matcher, fg);\n }\n });\n }\n else {\n this_1._addLink(bufferIndex[1], bufferIndex[0] - this_1._terminal.buffer.ydisp, uri, matcher, fg);\n }\n };\n var this_1 = this;\n while ((match = rex.exec(text)) !== null) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n };\n Linkifier.prototype._addLink = function (x, y, uri, matcher, fg) {\n var _this = this;\n var width = CharWidth_1.getStringCellWidth(uri);\n var x1 = x % this._terminal.cols;\n var y1 = y + Math.floor(x / this._terminal.cols);\n var x2 = (x1 + width) % this._terminal.cols;\n var y2 = y1 + Math.floor((x1 + width) / this._terminal.cols);\n if (x2 === 0) {\n x2 = this._terminal.cols;\n y2--;\n }\n this._mouseZoneManager.add(new MouseZoneManager_1.MouseZone(x1 + 1, y1 + 1, x2 + 1, y2 + 1, function (e) {\n if (matcher.handler) {\n return matcher.handler(e, uri);\n }\n window.open(uri, '_blank');\n }, function () {\n _this._onLinkHover.fire(_this._createLinkHoverEvent(x1, y1, x2, y2, fg));\n _this._terminal.element.classList.add('xterm-cursor-pointer');\n }, function (e) {\n _this._onLinkTooltip.fire(_this._createLinkHoverEvent(x1, y1, x2, y2, fg));\n if (matcher.hoverTooltipCallback) {\n matcher.hoverTooltipCallback(e, uri);\n }\n }, function () {\n _this._onLinkLeave.fire(_this._createLinkHoverEvent(x1, y1, x2, y2, fg));\n _this._terminal.element.classList.remove('xterm-cursor-pointer');\n if (matcher.hoverLeaveCallback) {\n matcher.hoverLeaveCallback();\n }\n }, function (e) {\n if (matcher.willLinkActivate) {\n return matcher.willLinkActivate(e, uri);\n }\n return true;\n }));\n };\n Linkifier.prototype._createLinkHoverEvent = function (x1, y1, x2, y2, fg) {\n return { x1: x1, y1: y1, x2: x2, y2: y2, cols: this._terminal.cols, fg: fg };\n };\n Linkifier.TIME_BEFORE_LINKIFY = 200;\n Linkifier.OVERSCAN_CHAR_LIMIT = 2000;\n return Linkifier;\n}());\nexports.Linkifier = Linkifier;\n//# sourceMappingURL=Linkifier.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter2_1 = require(\"../../common/EventEmitter2\");\nvar Lifecycle_1 = require(\"../../common/Lifecycle\");\nvar Marker = (function (_super) {\n __extends(Marker, _super);\n function Marker(line) {\n var _this = _super.call(this) || this;\n _this.line = line;\n _this._id = Marker._nextId++;\n _this.isDisposed = false;\n _this._onDispose = new EventEmitter2_1.EventEmitter2();\n return _this;\n }\n Object.defineProperty(Marker.prototype, \"id\", {\n get: function () { return this._id; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Marker.prototype, \"onDispose\", {\n get: function () { return this._onDispose.event; },\n enumerable: true,\n configurable: true\n });\n Marker.prototype.dispose = function () {\n if (this.isDisposed) {\n return;\n }\n this.isDisposed = true;\n this._onDispose.fire();\n };\n Marker._nextId = 1;\n return Marker;\n}(Lifecycle_1.Disposable));\nexports.Marker = Marker;\n//# sourceMappingURL=Marker.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AddonManager = (function () {\n function AddonManager() {\n this._addons = [];\n }\n AddonManager.prototype.dispose = function () {\n for (var i = this._addons.length - 1; i >= 0; i--) {\n this._addons[i].instance.dispose();\n }\n };\n AddonManager.prototype.loadAddon = function (terminal, instance) {\n var _this = this;\n var loadedAddon = {\n instance: instance,\n dispose: instance.dispose,\n isDisposed: false\n };\n this._addons.push(loadedAddon);\n instance.dispose = function () { return _this._wrappedAddonDispose(loadedAddon); };\n instance.activate(terminal);\n };\n AddonManager.prototype._wrappedAddonDispose = function (loadedAddon) {\n if (loadedAddon.isDisposed) {\n return;\n }\n var index = -1;\n for (var i = 0; i < this._addons.length; i++) {\n if (this._addons[i] === loadedAddon) {\n index = i;\n break;\n }\n }\n if (index === -1) {\n throw new Error('Could not dispose an addon that has not been loaded');\n }\n loadedAddon.isDisposed = true;\n loadedAddon.dispose.apply(loadedAddon.instance);\n this._addons.splice(index, 1);\n };\n return AddonManager;\n}());\nexports.AddonManager = AddonManager;\n//# sourceMappingURL=AddonManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper = (function () {\n function MouseHelper(_renderCoordinator) {\n this._renderCoordinator = _renderCoordinator;\n }\n MouseHelper.getCoordsRelativeToElement = function (event, element) {\n var rect = element.getBoundingClientRect();\n return [event.clientX - rect.left, event.clientY - rect.top];\n };\n MouseHelper.prototype.getCoords = function (event, element, charMeasure, colCount, rowCount, isSelection) {\n if (!charMeasure.width || !charMeasure.height) {\n return null;\n }\n var coords = MouseHelper.getCoordsRelativeToElement(event, element);\n if (!coords) {\n return null;\n }\n coords[0] = Math.ceil((coords[0] + (isSelection ? this._renderCoordinator.dimensions.actualCellWidth / 2 : 0)) / this._renderCoordinator.dimensions.actualCellWidth);\n coords[1] = Math.ceil(coords[1] / this._renderCoordinator.dimensions.actualCellHeight);\n coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));\n coords[1] = Math.min(Math.max(coords[1], 1), rowCount);\n return coords;\n };\n MouseHelper.prototype.getRawByteCoords = function (event, element, charMeasure, colCount, rowCount) {\n var coords = this.getCoords(event, element, charMeasure, colCount, rowCount);\n var x = coords[0];\n var y = coords[1];\n x += 32;\n y += 32;\n return { x: x, y: y };\n };\n return MouseHelper;\n}());\nexports.MouseHelper = MouseHelper;\n//# sourceMappingURL=MouseHelper.js.map","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleCmd.vue?vue&type=style&index=0&id=f9f17e90&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsoleCmd.vue?vue&type=style&index=0&id=f9f17e90&lang=scss&scoped=true&\"","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar Lifecycle_2 = require(\"./ui/Lifecycle\");\nvar HOVER_DURATION = 500;\nvar MouseZoneManager = (function (_super) {\n __extends(MouseZoneManager, _super);\n function MouseZoneManager(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._zones = [];\n _this._areZonesActive = false;\n _this._tooltipTimeout = null;\n _this._currentZone = null;\n _this._lastHoverCoords = [null, null];\n _this.register(Lifecycle_2.addDisposableDomListener(_this._terminal.element, 'mousedown', function (e) { return _this._onMouseDown(e); }));\n _this._mouseMoveListener = function (e) { return _this._onMouseMove(e); };\n _this._mouseLeaveListener = function (e) { return _this._onMouseLeave(e); };\n _this._clickListener = function (e) { return _this._onClick(e); };\n return _this;\n }\n MouseZoneManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._deactivate();\n };\n MouseZoneManager.prototype.add = function (zone) {\n this._zones.push(zone);\n if (this._zones.length === 1) {\n this._activate();\n }\n };\n MouseZoneManager.prototype.clearAll = function (start, end) {\n if (this._zones.length === 0) {\n return;\n }\n if (!end) {\n start = 0;\n end = this._terminal.rows - 1;\n }\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if ((zone.y1 > start && zone.y1 <= end + 1) ||\n (zone.y2 > start && zone.y2 <= end + 1) ||\n (zone.y1 < start && zone.y2 > end + 1)) {\n if (this._currentZone && this._currentZone === zone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n }\n this._zones.splice(i--, 1);\n }\n }\n if (this._zones.length === 0) {\n this._deactivate();\n }\n };\n MouseZoneManager.prototype._activate = function () {\n if (!this._areZonesActive) {\n this._areZonesActive = true;\n this._terminal.element.addEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.addEventListener('mouseleave', this._mouseLeaveListener);\n this._terminal.element.addEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._deactivate = function () {\n if (this._areZonesActive) {\n this._areZonesActive = false;\n this._terminal.element.removeEventListener('mousemove', this._mouseMoveListener);\n this._terminal.element.removeEventListener('mouseleave', this._mouseLeaveListener);\n this._terminal.element.removeEventListener('click', this._clickListener);\n }\n };\n MouseZoneManager.prototype._onMouseMove = function (e) {\n if (this._lastHoverCoords[0] !== e.pageX || this._lastHoverCoords[1] !== e.pageY) {\n this._onHover(e);\n this._lastHoverCoords = [e.pageX, e.pageY];\n }\n };\n MouseZoneManager.prototype._onHover = function (e) {\n var _this = this;\n var zone = this._findZoneEventAt(e);\n if (zone === this._currentZone) {\n return;\n }\n if (this._currentZone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n if (this._tooltipTimeout) {\n clearTimeout(this._tooltipTimeout);\n }\n }\n if (!zone) {\n return;\n }\n this._currentZone = zone;\n if (zone.hoverCallback) {\n zone.hoverCallback(e);\n }\n this._tooltipTimeout = setTimeout(function () { return _this._onTooltip(e); }, HOVER_DURATION);\n };\n MouseZoneManager.prototype._onTooltip = function (e) {\n this._tooltipTimeout = null;\n var zone = this._findZoneEventAt(e);\n if (zone && zone.tooltipCallback) {\n zone.tooltipCallback(e);\n }\n };\n MouseZoneManager.prototype._onMouseDown = function (e) {\n this._initialSelectionLength = this._terminal.getSelection().length;\n if (!this._areZonesActive) {\n return;\n }\n var zone = this._findZoneEventAt(e);\n if (zone) {\n if (zone.willLinkActivate(e)) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n }\n };\n MouseZoneManager.prototype._onMouseLeave = function (e) {\n if (this._currentZone) {\n this._currentZone.leaveCallback();\n this._currentZone = null;\n if (this._tooltipTimeout) {\n clearTimeout(this._tooltipTimeout);\n }\n }\n };\n MouseZoneManager.prototype._onClick = function (e) {\n var zone = this._findZoneEventAt(e);\n var currentSelectionLength = this._terminal.getSelection().length;\n if (zone && currentSelectionLength === this._initialSelectionLength) {\n zone.clickCallback(e);\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n };\n MouseZoneManager.prototype._findZoneEventAt = function (e) {\n var coords = this._terminal.mouseHelper.getCoords(e, this._terminal.screenElement, this._terminal.charMeasure, this._terminal.cols, this._terminal.rows);\n if (!coords) {\n return null;\n }\n var x = coords[0];\n var y = coords[1];\n for (var i = 0; i < this._zones.length; i++) {\n var zone = this._zones[i];\n if (zone.y1 === zone.y2) {\n if (y === zone.y1 && x >= zone.x1 && x < zone.x2) {\n return zone;\n }\n }\n else {\n if ((y === zone.y1 && x >= zone.x1) ||\n (y === zone.y2 && x < zone.x2) ||\n (y > zone.y1 && y < zone.y2)) {\n return zone;\n }\n }\n }\n return null;\n };\n return MouseZoneManager;\n}(Lifecycle_1.Disposable));\nexports.MouseZoneManager = MouseZoneManager;\nvar MouseZone = (function () {\n function MouseZone(x1, y1, x2, y2, clickCallback, hoverCallback, tooltipCallback, leaveCallback, willLinkActivate) {\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.clickCallback = clickCallback;\n this.hoverCallback = hoverCallback;\n this.tooltipCallback = tooltipCallback;\n this.leaveCallback = leaveCallback;\n this.willLinkActivate = willLinkActivate;\n }\n return MouseZone;\n}());\nexports.MouseZone = MouseZone;\n//# sourceMappingURL=MouseZoneManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INVERTED_DEFAULT_COLOR = 257;\nexports.DIM_OPACITY = 0.5;\nexports.CHAR_ATLAS_CELL_SPACING = 1;\n//# sourceMappingURL=Types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter2_1 = require(\"./EventEmitter2\");\nvar CircularList = (function () {\n function CircularList(_maxLength) {\n this._maxLength = _maxLength;\n this.onDeleteEmitter = new EventEmitter2_1.EventEmitter2();\n this.onInsertEmitter = new EventEmitter2_1.EventEmitter2();\n this.onTrimEmitter = new EventEmitter2_1.EventEmitter2();\n this._array = new Array(this._maxLength);\n this._startIndex = 0;\n this._length = 0;\n }\n Object.defineProperty(CircularList.prototype, \"onDelete\", {\n get: function () { return this.onDeleteEmitter.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"onInsert\", {\n get: function () { return this.onInsertEmitter.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"onTrim\", {\n get: function () { return this.onTrimEmitter.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"maxLength\", {\n get: function () {\n return this._maxLength;\n },\n set: function (newMaxLength) {\n if (this._maxLength === newMaxLength) {\n return;\n }\n var newArray = new Array(newMaxLength);\n for (var i = 0; i < Math.min(newMaxLength, this.length); i++) {\n newArray[i] = this._array[this._getCyclicIndex(i)];\n }\n this._array = newArray;\n this._maxLength = newMaxLength;\n this._startIndex = 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CircularList.prototype, \"length\", {\n get: function () {\n return this._length;\n },\n set: function (newLength) {\n if (newLength > this._length) {\n for (var i = this._length; i < newLength; i++) {\n this._array[i] = undefined;\n }\n }\n this._length = newLength;\n },\n enumerable: true,\n configurable: true\n });\n CircularList.prototype.get = function (index) {\n return this._array[this._getCyclicIndex(index)];\n };\n CircularList.prototype.set = function (index, value) {\n this._array[this._getCyclicIndex(index)] = value;\n };\n CircularList.prototype.push = function (value) {\n this._array[this._getCyclicIndex(this._length)] = value;\n if (this._length === this._maxLength) {\n this._startIndex = ++this._startIndex % this._maxLength;\n this.onTrimEmitter.fire(1);\n }\n else {\n this._length++;\n }\n };\n CircularList.prototype.recycle = function () {\n if (this._length !== this._maxLength) {\n throw new Error('Can only recycle when the buffer is full');\n }\n this._startIndex = ++this._startIndex % this._maxLength;\n this.onTrimEmitter.fire(1);\n return this._array[this._getCyclicIndex(this._length - 1)];\n };\n Object.defineProperty(CircularList.prototype, \"isFull\", {\n get: function () {\n return this._length === this._maxLength;\n },\n enumerable: true,\n configurable: true\n });\n CircularList.prototype.pop = function () {\n return this._array[this._getCyclicIndex(this._length-- - 1)];\n };\n CircularList.prototype.splice = function (start, deleteCount) {\n var items = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n items[_i - 2] = arguments[_i];\n }\n if (deleteCount) {\n for (var i = start; i < this._length - deleteCount; i++) {\n this._array[this._getCyclicIndex(i)] = this._array[this._getCyclicIndex(i + deleteCount)];\n }\n this._length -= deleteCount;\n }\n for (var i = this._length - 1; i >= start; i--) {\n this._array[this._getCyclicIndex(i + items.length)] = this._array[this._getCyclicIndex(i)];\n }\n for (var i = 0; i < items.length; i++) {\n this._array[this._getCyclicIndex(start + i)] = items[i];\n }\n if (this._length + items.length > this._maxLength) {\n var countToTrim = (this._length + items.length) - this._maxLength;\n this._startIndex += countToTrim;\n this._length = this._maxLength;\n this.onTrimEmitter.fire(countToTrim);\n }\n else {\n this._length += items.length;\n }\n };\n CircularList.prototype.trimStart = function (count) {\n if (count > this._length) {\n count = this._length;\n }\n this._startIndex += count;\n this._length -= count;\n this.onTrimEmitter.fire(count);\n };\n CircularList.prototype.shiftElements = function (start, count, offset) {\n if (count <= 0) {\n return;\n }\n if (start < 0 || start >= this._length) {\n throw new Error('start argument out of range');\n }\n if (start + offset < 0) {\n throw new Error('Cannot shift elements in list beyond index 0');\n }\n if (offset > 0) {\n for (var i = count - 1; i >= 0; i--) {\n this.set(start + i + offset, this.get(start + i));\n }\n var expandListBy = (start + count + offset) - this._length;\n if (expandListBy > 0) {\n this._length += expandListBy;\n while (this._length > this._maxLength) {\n this._length--;\n this._startIndex++;\n this.onTrimEmitter.fire(1);\n }\n }\n }\n else {\n for (var i = 0; i < count; i++) {\n this.set(start + i + offset, this.get(start + i));\n }\n }\n };\n CircularList.prototype._getCyclicIndex = function (index) {\n return (this._startIndex + index) % this._maxLength;\n };\n return CircularList;\n}());\nexports.CircularList = CircularList;\n//# sourceMappingURL=CircularList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SelectionModel = (function () {\n function SelectionModel(_terminal) {\n this._terminal = _terminal;\n this.clearSelection();\n }\n SelectionModel.prototype.clearSelection = function () {\n this.selectionStart = null;\n this.selectionEnd = null;\n this.isSelectAllActive = false;\n this.selectionStartLength = 0;\n };\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionStart\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [0, 0];\n }\n if (!this.selectionEnd || !this.selectionStart) {\n return this.selectionStart;\n }\n return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SelectionModel.prototype, \"finalSelectionEnd\", {\n get: function () {\n if (this.isSelectAllActive) {\n return [this._terminal.cols, this._terminal.buffer.ybase + this._terminal.rows - 1];\n }\n if (!this.selectionStart) {\n return null;\n }\n if (!this.selectionEnd || this.areSelectionValuesReversed()) {\n var startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._terminal.cols) {\n return [startPlusLength % this._terminal.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._terminal.cols)];\n }\n return [startPlusLength, this.selectionStart[1]];\n }\n if (this.selectionStartLength) {\n if (this.selectionEnd[1] === this.selectionStart[1]) {\n return [Math.max(this.selectionStart[0] + this.selectionStartLength, this.selectionEnd[0]), this.selectionEnd[1]];\n }\n }\n return this.selectionEnd;\n },\n enumerable: true,\n configurable: true\n });\n SelectionModel.prototype.areSelectionValuesReversed = function () {\n var start = this.selectionStart;\n var end = this.selectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);\n };\n SelectionModel.prototype.onTrim = function (amount) {\n if (this.selectionStart) {\n this.selectionStart[1] -= amount;\n }\n if (this.selectionEnd) {\n this.selectionEnd[1] -= amount;\n }\n if (this.selectionEnd && this.selectionEnd[1] < 0) {\n this.clearSelection();\n return true;\n }\n if (this.selectionStart && this.selectionStart[1] < 0) {\n this.selectionStart[1] = 0;\n }\n return false;\n };\n return SelectionModel;\n}());\nexports.SelectionModel = SelectionModel;\n//# sourceMappingURL=SelectionModel.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\nvar Types_1 = require(\"./atlas/Types\");\nvar CharAtlasUtils_1 = require(\"./atlas/CharAtlasUtils\");\nvar LinkRenderLayer = (function (_super) {\n __extends(LinkRenderLayer, _super);\n function LinkRenderLayer(container, zIndex, colors, terminal) {\n var _this = _super.call(this, container, 'link', zIndex, true, colors) || this;\n _this._state = null;\n terminal.linkifier.onLinkHover(function (e) { return _this._onLinkHover(e); });\n terminal.linkifier.onLinkLeave(function (e) { return _this._onLinkLeave(e); });\n return _this;\n }\n LinkRenderLayer.prototype.resize = function (terminal, dim) {\n _super.prototype.resize.call(this, terminal, dim);\n this._state = null;\n };\n LinkRenderLayer.prototype.reset = function (terminal) {\n this._clearCurrentLink();\n };\n LinkRenderLayer.prototype._clearCurrentLink = function () {\n if (this._state) {\n this.clearCells(this._state.x1, this._state.y1, this._state.cols - this._state.x1, 1);\n var middleRowCount = this._state.y2 - this._state.y1 - 1;\n if (middleRowCount > 0) {\n this.clearCells(0, this._state.y1 + 1, this._state.cols, middleRowCount);\n }\n this.clearCells(0, this._state.y2, this._state.x2, 1);\n this._state = null;\n }\n };\n LinkRenderLayer.prototype._onLinkHover = function (e) {\n if (e.fg === Types_1.INVERTED_DEFAULT_COLOR) {\n this._ctx.fillStyle = this._colors.background.css;\n }\n else if (CharAtlasUtils_1.is256Color(e.fg)) {\n this._ctx.fillStyle = this._colors.ansi[e.fg].css;\n }\n else {\n this._ctx.fillStyle = this._colors.foreground.css;\n }\n if (e.y1 === e.y2) {\n this.fillBottomLineAtCells(e.x1, e.y1, e.x2 - e.x1);\n }\n else {\n this.fillBottomLineAtCells(e.x1, e.y1, e.cols - e.x1);\n for (var y = e.y1 + 1; y < e.y2; y++) {\n this.fillBottomLineAtCells(0, y, e.cols);\n }\n this.fillBottomLineAtCells(0, e.y2, e.x2);\n }\n this._state = e;\n };\n LinkRenderLayer.prototype._onLinkLeave = function (e) {\n this._clearCurrentLink();\n };\n return LinkRenderLayer;\n}(BaseRenderLayer_1.BaseRenderLayer));\nexports.LinkRenderLayer = LinkRenderLayer;\n//# sourceMappingURL=LinkRenderLayer.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EscapeSequences_1 = require(\"./common/data/EscapeSequences\");\nvar Charsets_1 = require(\"./core/data/Charsets\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar EscapeSequenceParser_1 = require(\"./EscapeSequenceParser\");\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar TypedArrayUtils_1 = require(\"./common/TypedArrayUtils\");\nvar TextDecoder_1 = require(\"./core/input/TextDecoder\");\nvar BufferLine_1 = require(\"./core/buffer/BufferLine\");\nvar EventEmitter2_1 = require(\"./common/EventEmitter2\");\nvar GLEVEL = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };\nvar DECRQSS = (function () {\n function DECRQSS(_terminal) {\n this._terminal = _terminal;\n this._data = new Uint32Array(0);\n }\n DECRQSS.prototype.hook = function (collect, params, flag) {\n this._data = new Uint32Array(0);\n };\n DECRQSS.prototype.put = function (data, start, end) {\n this._data = TypedArrayUtils_1.concat(this._data, data.subarray(start, end));\n };\n DECRQSS.prototype.unhook = function () {\n var data = TextDecoder_1.utf32ToString(this._data);\n this._data = new Uint32Array(0);\n switch (data) {\n case '\"q':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r0\\\"q\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case '\"p':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r61\\\"p\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case 'r':\n var pt = '' + (this._terminal.buffer.scrollTop + 1) +\n ';' + (this._terminal.buffer.scrollBottom + 1) + 'r';\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r\" + pt + EscapeSequences_1.C0.ESC + \"\\\\\");\n case 'm':\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r0m\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n case ' q':\n var STYLES = { 'block': 2, 'underline': 4, 'bar': 6 };\n var style = STYLES[this._terminal.getOption('cursorStyle')];\n style -= this._terminal.getOption('cursorBlink');\n return this._terminal.handler(EscapeSequences_1.C0.ESC + \"P1$r\" + style + \" q\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n default:\n this._terminal.error('Unknown DCS $q %s', data);\n this._terminal.handler(EscapeSequences_1.C0.ESC + \"P0$r\" + EscapeSequences_1.C0.ESC + \"\\\\\");\n }\n };\n return DECRQSS;\n}());\nvar InputHandler = (function (_super) {\n __extends(InputHandler, _super);\n function InputHandler(_terminal, _parser) {\n if (_parser === void 0) { _parser = new EscapeSequenceParser_1.EscapeSequenceParser(); }\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._parser = _parser;\n _this._parseBuffer = new Uint32Array(4096);\n _this._stringDecoder = new TextDecoder_1.StringToUtf32();\n _this._utf8Decoder = new TextDecoder_1.Utf8ToUtf32();\n _this._workCell = new BufferLine_1.CellData();\n _this._onCursorMove = new EventEmitter2_1.EventEmitter2();\n _this._onData = new EventEmitter2_1.EventEmitter2();\n _this._onLineFeed = new EventEmitter2_1.EventEmitter2();\n _this._onScroll = new EventEmitter2_1.EventEmitter2();\n _this.register(_this._parser);\n _this._parser.setCsiHandlerFallback(function (collect, params, flag) {\n _this._terminal.error('Unknown CSI code: ', { collect: collect, params: params, flag: String.fromCharCode(flag) });\n });\n _this._parser.setEscHandlerFallback(function (collect, flag) {\n _this._terminal.error('Unknown ESC code: ', { collect: collect, flag: String.fromCharCode(flag) });\n });\n _this._parser.setExecuteHandlerFallback(function (code) {\n _this._terminal.error('Unknown EXECUTE code: ', { code: code });\n });\n _this._parser.setOscHandlerFallback(function (identifier, data) {\n _this._terminal.error('Unknown OSC code: ', { identifier: identifier, data: data });\n });\n _this._parser.setPrintHandler(function (data, start, end) { return _this.print(data, start, end); });\n _this._parser.setCsiHandler('@', function (params, collect) { return _this.insertChars(params); });\n _this._parser.setCsiHandler('A', function (params, collect) { return _this.cursorUp(params); });\n _this._parser.setCsiHandler('B', function (params, collect) { return _this.cursorDown(params); });\n _this._parser.setCsiHandler('C', function (params, collect) { return _this.cursorForward(params); });\n _this._parser.setCsiHandler('D', function (params, collect) { return _this.cursorBackward(params); });\n _this._parser.setCsiHandler('E', function (params, collect) { return _this.cursorNextLine(params); });\n _this._parser.setCsiHandler('F', function (params, collect) { return _this.cursorPrecedingLine(params); });\n _this._parser.setCsiHandler('G', function (params, collect) { return _this.cursorCharAbsolute(params); });\n _this._parser.setCsiHandler('H', function (params, collect) { return _this.cursorPosition(params); });\n _this._parser.setCsiHandler('I', function (params, collect) { return _this.cursorForwardTab(params); });\n _this._parser.setCsiHandler('J', function (params, collect) { return _this.eraseInDisplay(params); });\n _this._parser.setCsiHandler('K', function (params, collect) { return _this.eraseInLine(params); });\n _this._parser.setCsiHandler('L', function (params, collect) { return _this.insertLines(params); });\n _this._parser.setCsiHandler('M', function (params, collect) { return _this.deleteLines(params); });\n _this._parser.setCsiHandler('P', function (params, collect) { return _this.deleteChars(params); });\n _this._parser.setCsiHandler('S', function (params, collect) { return _this.scrollUp(params); });\n _this._parser.setCsiHandler('T', function (params, collect) { return _this.scrollDown(params, collect); });\n _this._parser.setCsiHandler('X', function (params, collect) { return _this.eraseChars(params); });\n _this._parser.setCsiHandler('Z', function (params, collect) { return _this.cursorBackwardTab(params); });\n _this._parser.setCsiHandler('`', function (params, collect) { return _this.charPosAbsolute(params); });\n _this._parser.setCsiHandler('a', function (params, collect) { return _this.hPositionRelative(params); });\n _this._parser.setCsiHandler('b', function (params, collect) { return _this.repeatPrecedingCharacter(params); });\n _this._parser.setCsiHandler('c', function (params, collect) { return _this.sendDeviceAttributes(params, collect); });\n _this._parser.setCsiHandler('d', function (params, collect) { return _this.linePosAbsolute(params); });\n _this._parser.setCsiHandler('e', function (params, collect) { return _this.vPositionRelative(params); });\n _this._parser.setCsiHandler('f', function (params, collect) { return _this.hVPosition(params); });\n _this._parser.setCsiHandler('g', function (params, collect) { return _this.tabClear(params); });\n _this._parser.setCsiHandler('h', function (params, collect) { return _this.setMode(params, collect); });\n _this._parser.setCsiHandler('l', function (params, collect) { return _this.resetMode(params, collect); });\n _this._parser.setCsiHandler('m', function (params, collect) { return _this.charAttributes(params); });\n _this._parser.setCsiHandler('n', function (params, collect) { return _this.deviceStatus(params, collect); });\n _this._parser.setCsiHandler('p', function (params, collect) { return _this.softReset(params, collect); });\n _this._parser.setCsiHandler('q', function (params, collect) { return _this.setCursorStyle(params, collect); });\n _this._parser.setCsiHandler('r', function (params, collect) { return _this.setScrollRegion(params, collect); });\n _this._parser.setCsiHandler('s', function (params, collect) { return _this.saveCursor(params); });\n _this._parser.setCsiHandler('u', function (params, collect) { return _this.restoreCursor(params); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.BEL, function () { return _this.bell(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.LF, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.VT, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.FF, function () { return _this.lineFeed(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.CR, function () { return _this.carriageReturn(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.BS, function () { return _this.backspace(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.HT, function () { return _this.tab(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.SO, function () { return _this.shiftOut(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C0.SI, function () { return _this.shiftIn(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.IND, function () { return _this.index(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.NEL, function () { return _this.nextLine(); });\n _this._parser.setExecuteHandler(EscapeSequences_1.C1.HTS, function () { return _this.tabSet(); });\n _this._parser.setOscHandler(0, function (data) { return _this.setTitle(data); });\n _this._parser.setOscHandler(2, function (data) { return _this.setTitle(data); });\n _this._parser.setEscHandler('7', function () { return _this.saveCursor([]); });\n _this._parser.setEscHandler('8', function () { return _this.restoreCursor([]); });\n _this._parser.setEscHandler('D', function () { return _this.index(); });\n _this._parser.setEscHandler('E', function () { return _this.nextLine(); });\n _this._parser.setEscHandler('H', function () { return _this.tabSet(); });\n _this._parser.setEscHandler('M', function () { return _this.reverseIndex(); });\n _this._parser.setEscHandler('=', function () { return _this.keypadApplicationMode(); });\n _this._parser.setEscHandler('>', function () { return _this.keypadNumericMode(); });\n _this._parser.setEscHandler('c', function () { return _this.reset(); });\n _this._parser.setEscHandler('n', function () { return _this.setgLevel(2); });\n _this._parser.setEscHandler('o', function () { return _this.setgLevel(3); });\n _this._parser.setEscHandler('|', function () { return _this.setgLevel(3); });\n _this._parser.setEscHandler('}', function () { return _this.setgLevel(2); });\n _this._parser.setEscHandler('~', function () { return _this.setgLevel(1); });\n _this._parser.setEscHandler('%@', function () { return _this.selectDefaultCharset(); });\n _this._parser.setEscHandler('%G', function () { return _this.selectDefaultCharset(); });\n var _loop_1 = function (flag) {\n this_1._parser.setEscHandler('(' + flag, function () { return _this.selectCharset('(' + flag); });\n this_1._parser.setEscHandler(')' + flag, function () { return _this.selectCharset(')' + flag); });\n this_1._parser.setEscHandler('*' + flag, function () { return _this.selectCharset('*' + flag); });\n this_1._parser.setEscHandler('+' + flag, function () { return _this.selectCharset('+' + flag); });\n this_1._parser.setEscHandler('-' + flag, function () { return _this.selectCharset('-' + flag); });\n this_1._parser.setEscHandler('.' + flag, function () { return _this.selectCharset('.' + flag); });\n this_1._parser.setEscHandler('/' + flag, function () { return _this.selectCharset('/' + flag); });\n };\n var this_1 = this;\n for (var flag in Charsets_1.CHARSETS) {\n _loop_1(flag);\n }\n _this._parser.setErrorHandler(function (state) {\n _this._terminal.error('Parsing error: ', state);\n return state;\n });\n _this._parser.setDcsHandler('$q', new DECRQSS(_this._terminal));\n return _this;\n }\n Object.defineProperty(InputHandler.prototype, \"onCursorMove\", {\n get: function () { return this._onCursorMove.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(InputHandler.prototype, \"onData\", {\n get: function () { return this._onData.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(InputHandler.prototype, \"onLineFeed\", {\n get: function () { return this._onLineFeed.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(InputHandler.prototype, \"onScroll\", {\n get: function () { return this._onScroll.event; },\n enumerable: true,\n configurable: true\n });\n InputHandler.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this._terminal = null;\n };\n InputHandler.prototype.parse = function (data) {\n if (!this._terminal) {\n return;\n }\n var buffer = this._terminal.buffer;\n var cursorStartX = buffer.x;\n var cursorStartY = buffer.y;\n if (this._terminal.debug) {\n this._terminal.log('data: ' + data);\n }\n if (this._parseBuffer.length < data.length) {\n this._parseBuffer = new Uint32Array(data.length);\n }\n this._parser.parse(this._parseBuffer, this._stringDecoder.decode(data, this._parseBuffer));\n buffer = this._terminal.buffer;\n if (buffer.x !== cursorStartX || buffer.y !== cursorStartY) {\n this._onCursorMove.fire();\n }\n };\n InputHandler.prototype.parseUtf8 = function (data) {\n if (!this._terminal) {\n return;\n }\n var buffer = this._terminal.buffer;\n var cursorStartX = buffer.x;\n var cursorStartY = buffer.y;\n if (this._terminal.debug) {\n this._terminal.log('data: ' + data);\n }\n if (this._parseBuffer.length < data.length) {\n this._parseBuffer = new Uint32Array(data.length);\n }\n this._parser.parse(this._parseBuffer, this._utf8Decoder.decode(data, this._parseBuffer));\n buffer = this._terminal.buffer;\n if (buffer.x !== cursorStartX || buffer.y !== cursorStartY) {\n this._terminal.emit('cursormove');\n }\n };\n InputHandler.prototype.print = function (data, start, end) {\n var code;\n var chWidth;\n var buffer = this._terminal.buffer;\n var charset = this._terminal.charset;\n var screenReaderMode = this._terminal.options.screenReaderMode;\n var cols = this._terminal.cols;\n var wraparoundMode = this._terminal.wraparoundMode;\n var insertMode = this._terminal.insertMode;\n var curAttr = this._terminal.curAttrData;\n var bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n this._terminal.updateRange(buffer.y);\n for (var pos = start; pos < end; ++pos) {\n code = data[pos];\n chWidth = CharWidth_1.wcwidth(code);\n if (code < 127 && charset) {\n var ch = charset[String.fromCharCode(code)];\n if (ch) {\n code = ch.charCodeAt(0);\n }\n }\n if (screenReaderMode) {\n this._terminal.emit('a11y.char', TextDecoder_1.stringFromCodePoint(code));\n }\n if (!chWidth && buffer.x) {\n if (!bufferRow.getWidth(buffer.x - 1)) {\n bufferRow.addCodepointToCell(buffer.x - 2, code);\n }\n else {\n bufferRow.addCodepointToCell(buffer.x - 1, code);\n }\n continue;\n }\n if (buffer.x + chWidth - 1 >= cols) {\n if (wraparoundMode) {\n buffer.x = 0;\n buffer.y++;\n if (buffer.y > buffer.scrollBottom) {\n buffer.y--;\n this._terminal.scroll(true);\n }\n else {\n buffer.lines.get(buffer.y).isWrapped = true;\n }\n bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n }\n else {\n if (chWidth === 2) {\n continue;\n }\n }\n }\n if (insertMode) {\n bufferRow.insertCells(buffer.x, chWidth, buffer.getNullCell(curAttr));\n if (bufferRow.getWidth(cols - 1) === 2) {\n bufferRow.setCellFromCodePoint(cols - 1, BufferLine_1.NULL_CELL_CODE, BufferLine_1.NULL_CELL_WIDTH, curAttr.fg, curAttr.bg);\n }\n }\n bufferRow.setCellFromCodePoint(buffer.x++, code, chWidth, curAttr.fg, curAttr.bg);\n if (chWidth > 0) {\n while (--chWidth) {\n bufferRow.setCellFromCodePoint(buffer.x++, 0, 0, curAttr.fg, curAttr.bg);\n }\n }\n }\n this._terminal.updateRange(buffer.y);\n };\n InputHandler.prototype.addCsiHandler = function (flag, callback) {\n return this._parser.addCsiHandler(flag, callback);\n };\n InputHandler.prototype.addOscHandler = function (ident, callback) {\n return this._parser.addOscHandler(ident, callback);\n };\n InputHandler.prototype.bell = function () {\n this._terminal.bell();\n };\n InputHandler.prototype.lineFeed = function () {\n var buffer = this._terminal.buffer;\n if (this._terminal.options.convertEol) {\n buffer.x = 0;\n }\n buffer.y++;\n if (buffer.y > buffer.scrollBottom) {\n buffer.y--;\n this._terminal.scroll();\n }\n if (buffer.x >= this._terminal.cols) {\n buffer.x--;\n }\n this._onLineFeed.fire();\n };\n InputHandler.prototype.carriageReturn = function () {\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.backspace = function () {\n if (this._terminal.buffer.x > 0) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.tab = function () {\n var originalX = this._terminal.buffer.x;\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n if (this._terminal.options.screenReaderMode) {\n this._terminal.emit('a11y.tab', this._terminal.buffer.x - originalX);\n }\n };\n InputHandler.prototype.shiftOut = function () {\n this._terminal.setgLevel(1);\n };\n InputHandler.prototype.shiftIn = function () {\n this._terminal.setgLevel(0);\n };\n InputHandler.prototype.insertChars = function (params) {\n this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).insertCells(this._terminal.buffer.x, params[0] || 1, this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));\n this._terminal.updateRange(this._terminal.buffer.y);\n };\n InputHandler.prototype.cursorUp = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n };\n InputHandler.prototype.cursorDown = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.cursorForward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.cursorBackward = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n this._terminal.buffer.x -= param;\n if (this._terminal.buffer.x < 0) {\n this._terminal.buffer.x = 0;\n }\n };\n InputHandler.prototype.cursorNextLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorPrecedingLine = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y -= param;\n if (this._terminal.buffer.y < 0) {\n this._terminal.buffer.y = 0;\n }\n this._terminal.buffer.x = 0;\n };\n InputHandler.prototype.cursorCharAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n };\n InputHandler.prototype.cursorPosition = function (params) {\n var col;\n var row = params[0] - 1;\n if (params.length >= 2) {\n col = params[1] - 1;\n }\n else {\n col = 0;\n }\n if (row < 0) {\n row = 0;\n }\n else if (row >= this._terminal.rows) {\n row = this._terminal.rows - 1;\n }\n if (col < 0) {\n col = 0;\n }\n else if (col >= this._terminal.cols) {\n col = this._terminal.cols - 1;\n }\n this._terminal.buffer.x = col;\n this._terminal.buffer.y = row;\n };\n InputHandler.prototype.cursorForwardTab = function (params) {\n var param = params[0] || 1;\n while (param--) {\n this._terminal.buffer.x = this._terminal.buffer.nextStop();\n }\n };\n InputHandler.prototype._eraseInBufferLine = function (y, start, end, clearWrap) {\n if (clearWrap === void 0) { clearWrap = false; }\n var line = this._terminal.buffer.lines.get(this._terminal.buffer.ybase + y);\n line.replaceCells(start, end, this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));\n if (clearWrap) {\n line.isWrapped = false;\n }\n };\n InputHandler.prototype._resetBufferLine = function (y) {\n this._eraseInBufferLine(y, 0, this._terminal.cols, true);\n };\n InputHandler.prototype.eraseInDisplay = function (params) {\n var j;\n switch (params[0]) {\n case 0:\n j = this._terminal.buffer.y;\n this._terminal.updateRange(j);\n this._eraseInBufferLine(j++, this._terminal.buffer.x, this._terminal.cols, this._terminal.buffer.x === 0);\n for (; j < this._terminal.rows; j++) {\n this._resetBufferLine(j);\n }\n this._terminal.updateRange(j);\n break;\n case 1:\n j = this._terminal.buffer.y;\n this._terminal.updateRange(j);\n this._eraseInBufferLine(j, 0, this._terminal.buffer.x + 1, true);\n if (this._terminal.buffer.x + 1 >= this._terminal.cols) {\n this._terminal.buffer.lines.get(j + 1).isWrapped = false;\n }\n while (j--) {\n this._resetBufferLine(j);\n }\n this._terminal.updateRange(0);\n break;\n case 2:\n j = this._terminal.rows;\n this._terminal.updateRange(j - 1);\n while (j--) {\n this._resetBufferLine(j);\n }\n this._terminal.updateRange(0);\n break;\n case 3:\n var scrollBackSize = this._terminal.buffer.lines.length - this._terminal.rows;\n if (scrollBackSize > 0) {\n this._terminal.buffer.lines.trimStart(scrollBackSize);\n this._terminal.buffer.ybase = Math.max(this._terminal.buffer.ybase - scrollBackSize, 0);\n this._terminal.buffer.ydisp = Math.max(this._terminal.buffer.ydisp - scrollBackSize, 0);\n this._onScroll.fire(0);\n }\n break;\n }\n };\n InputHandler.prototype.eraseInLine = function (params) {\n switch (params[0]) {\n case 0:\n this._eraseInBufferLine(this._terminal.buffer.y, this._terminal.buffer.x, this._terminal.cols);\n break;\n case 1:\n this._eraseInBufferLine(this._terminal.buffer.y, 0, this._terminal.buffer.x + 1);\n break;\n case 2:\n this._eraseInBufferLine(this._terminal.buffer.y, 0, this._terminal.cols);\n break;\n }\n this._terminal.updateRange(this._terminal.buffer.y);\n };\n InputHandler.prototype.insertLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var scrollBottomRowsOffset = this._terminal.rows - 1 - buffer.scrollBottom;\n var scrollBottomAbsolute = this._terminal.rows - 1 + buffer.ybase - scrollBottomRowsOffset + 1;\n while (param--) {\n buffer.lines.splice(scrollBottomAbsolute - 1, 1);\n buffer.lines.splice(row, 0, buffer.getBlankLine(this._terminal.eraseAttrData()));\n }\n this._terminal.updateRange(buffer.y);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.deleteLines = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n var buffer = this._terminal.buffer;\n var row = buffer.y + buffer.ybase;\n var j;\n j = this._terminal.rows - 1 - buffer.scrollBottom;\n j = this._terminal.rows - 1 + buffer.ybase - j;\n while (param--) {\n buffer.lines.splice(row, 1);\n buffer.lines.splice(j, 0, buffer.getBlankLine(this._terminal.eraseAttrData()));\n }\n this._terminal.updateRange(buffer.y);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.deleteChars = function (params) {\n this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).deleteCells(this._terminal.buffer.x, params[0] || 1, this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));\n this._terminal.updateRange(this._terminal.buffer.y);\n };\n InputHandler.prototype.scrollUp = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.lines.splice(buffer.ybase + buffer.scrollTop, 1);\n buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 0, buffer.getBlankLine(BufferLine_1.DEFAULT_ATTR_DATA));\n }\n this._terminal.updateRange(buffer.scrollTop);\n this._terminal.updateRange(buffer.scrollBottom);\n };\n InputHandler.prototype.scrollDown = function (params, collect) {\n if (params.length < 2 && !collect) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.lines.splice(buffer.ybase + buffer.scrollBottom, 1);\n buffer.lines.splice(buffer.ybase + buffer.scrollTop, 0, buffer.getBlankLine(BufferLine_1.DEFAULT_ATTR_DATA));\n }\n this._terminal.updateRange(buffer.scrollTop);\n this._terminal.updateRange(buffer.scrollBottom);\n }\n };\n InputHandler.prototype.eraseChars = function (params) {\n this._terminal.buffer.lines.get(this._terminal.buffer.y + this._terminal.buffer.ybase).replaceCells(this._terminal.buffer.x, this._terminal.buffer.x + (params[0] || 1), this._terminal.buffer.getNullCell(this._terminal.eraseAttrData()));\n };\n InputHandler.prototype.cursorBackwardTab = function (params) {\n var param = params[0] || 1;\n var buffer = this._terminal.buffer;\n while (param--) {\n buffer.x = buffer.prevStop();\n }\n };\n InputHandler.prototype.charPosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x = param - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.hPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.x += param;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.repeatPrecedingCharacter = function (params) {\n var buffer = this._terminal.buffer;\n var line = buffer.lines.get(buffer.ybase + buffer.y);\n line.loadCell(buffer.x - 1, this._workCell);\n line.replaceCells(buffer.x, buffer.x + (params[0] || 1), (this._workCell.content !== undefined) ? this._workCell : buffer.getNullCell(BufferLine_1.DEFAULT_ATTR_DATA));\n };\n InputHandler.prototype.sendDeviceAttributes = function (params, collect) {\n if (params[0] > 0) {\n return;\n }\n if (!collect) {\n if (this._terminal.is('xterm') || this._terminal.is('rxvt-unicode') || this._terminal.is('screen')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[?1;2c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[?6c');\n }\n }\n else if (collect === '>') {\n if (this._terminal.is('xterm')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>0;276;0c');\n }\n else if (this._terminal.is('rxvt-unicode')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>85;95;0c');\n }\n else if (this._terminal.is('linux')) {\n this._terminal.handler(params[0] + 'c');\n }\n else if (this._terminal.is('screen')) {\n this._terminal.handler(EscapeSequences_1.C0.ESC + '[>83;40003;0c');\n }\n }\n };\n InputHandler.prototype.linePosAbsolute = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y = param - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n };\n InputHandler.prototype.vPositionRelative = function (params) {\n var param = params[0];\n if (param < 1) {\n param = 1;\n }\n this._terminal.buffer.y += param;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x--;\n }\n };\n InputHandler.prototype.hVPosition = function (params) {\n if (params[0] < 1)\n params[0] = 1;\n if (params[1] < 1)\n params[1] = 1;\n this._terminal.buffer.y = params[0] - 1;\n if (this._terminal.buffer.y >= this._terminal.rows) {\n this._terminal.buffer.y = this._terminal.rows - 1;\n }\n this._terminal.buffer.x = params[1] - 1;\n if (this._terminal.buffer.x >= this._terminal.cols) {\n this._terminal.buffer.x = this._terminal.cols - 1;\n }\n };\n InputHandler.prototype.tabClear = function (params) {\n var param = params[0];\n if (param <= 0) {\n delete this._terminal.buffer.tabs[this._terminal.buffer.x];\n }\n else if (param === 3) {\n this._terminal.buffer.tabs = {};\n }\n };\n InputHandler.prototype.setMode = function (params, collect) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.setMode([params[i]]);\n }\n return;\n }\n if (!collect) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = true;\n break;\n case 20:\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = true;\n break;\n case 2:\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(1, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(2, Charsets_1.DEFAULT_CHARSET);\n this._terminal.setgCharset(3, Charsets_1.DEFAULT_CHARSET);\n break;\n case 3:\n this._terminal.savedCols = this._terminal.cols;\n this._terminal.resize(132, this._terminal.rows);\n break;\n case 6:\n this._terminal.originMode = true;\n break;\n case 7:\n this._terminal.wraparoundMode = true;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = params[0] === 9;\n this._terminal.vt200Mouse = params[0] === 1000;\n this._terminal.normalMouse = params[0] > 1000;\n this._terminal.mouseEvents = true;\n if (this._terminal.element) {\n this._terminal.element.classList.add('enable-mouse-events');\n }\n if (this._terminal.selectionManager) {\n this._terminal.selectionManager.disable();\n }\n this._terminal.log('Binding to mouse events.');\n break;\n case 1004:\n this._terminal.sendFocus = true;\n break;\n case 1005:\n this._terminal.utfMouse = true;\n break;\n case 1006:\n this._terminal.sgrMouse = true;\n break;\n case 1015:\n this._terminal.urxvtMouse = true;\n break;\n case 25:\n this._terminal.cursorHidden = false;\n break;\n case 1048:\n this.saveCursor(params);\n break;\n case 1049:\n this.saveCursor(params);\n case 47:\n case 1047:\n this._terminal.buffers.activateAltBuffer(this._terminal.eraseAttrData());\n this._terminal.refresh(0, this._terminal.rows - 1);\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = true;\n break;\n }\n }\n };\n InputHandler.prototype.resetMode = function (params, collect) {\n if (params.length > 1) {\n for (var i = 0; i < params.length; i++) {\n this.resetMode([params[i]]);\n }\n return;\n }\n if (!collect) {\n switch (params[0]) {\n case 4:\n this._terminal.insertMode = false;\n break;\n case 20:\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 1:\n this._terminal.applicationCursor = false;\n break;\n case 3:\n if (this._terminal.cols === 132 && this._terminal.savedCols) {\n this._terminal.resize(this._terminal.savedCols, this._terminal.rows);\n }\n delete this._terminal.savedCols;\n break;\n case 6:\n this._terminal.originMode = false;\n break;\n case 7:\n this._terminal.wraparoundMode = false;\n break;\n case 12:\n break;\n case 66:\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n break;\n case 9:\n case 1000:\n case 1002:\n case 1003:\n this._terminal.x10Mouse = false;\n this._terminal.vt200Mouse = false;\n this._terminal.normalMouse = false;\n this._terminal.mouseEvents = false;\n if (this._terminal.element) {\n this._terminal.element.classList.remove('enable-mouse-events');\n }\n if (this._terminal.selectionManager) {\n this._terminal.selectionManager.enable();\n }\n break;\n case 1004:\n this._terminal.sendFocus = false;\n break;\n case 1005:\n this._terminal.utfMouse = false;\n break;\n case 1006:\n this._terminal.sgrMouse = false;\n break;\n case 1015:\n this._terminal.urxvtMouse = false;\n break;\n case 25:\n this._terminal.cursorHidden = true;\n break;\n case 1048:\n this.restoreCursor(params);\n break;\n case 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateNormalBuffer();\n if (params[0] === 1049) {\n this.restoreCursor(params);\n }\n this._terminal.refresh(0, this._terminal.rows - 1);\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n this._terminal.showCursor();\n break;\n case 2004:\n this._terminal.bracketedPasteMode = false;\n break;\n }\n }\n };\n InputHandler.prototype.charAttributes = function (params) {\n if (params.length === 1 && params[0] === 0) {\n this._terminal.curAttrData.fg = BufferLine_1.DEFAULT_ATTR_DATA.fg;\n this._terminal.curAttrData.bg = BufferLine_1.DEFAULT_ATTR_DATA.bg;\n return;\n }\n var l = params.length;\n var p;\n var attr = this._terminal.curAttrData;\n for (var i = 0; i < l; i++) {\n p = params[i];\n if (p >= 30 && p <= 37) {\n attr.fg &= ~(50331648 | 255);\n attr.fg |= 16777216 | (p - 30);\n }\n else if (p >= 40 && p <= 47) {\n attr.bg &= ~(50331648 | 255);\n attr.bg |= 16777216 | (p - 40);\n }\n else if (p >= 90 && p <= 97) {\n attr.fg &= ~(50331648 | 255);\n attr.fg |= 16777216 | (p - 90) | 8;\n }\n else if (p >= 100 && p <= 107) {\n attr.bg &= ~(50331648 | 255);\n attr.bg |= 16777216 | (p - 100) | 8;\n }\n else if (p === 0) {\n attr.fg = BufferLine_1.DEFAULT_ATTR_DATA.fg;\n attr.bg = BufferLine_1.DEFAULT_ATTR_DATA.bg;\n }\n else if (p === 1) {\n attr.fg |= 134217728;\n }\n else if (p === 3) {\n attr.bg |= 67108864;\n }\n else if (p === 4) {\n attr.fg |= 268435456;\n }\n else if (p === 5) {\n attr.fg |= 536870912;\n }\n else if (p === 7) {\n attr.fg |= 67108864;\n }\n else if (p === 8) {\n attr.fg |= 1073741824;\n }\n else if (p === 2) {\n attr.bg |= 134217728;\n }\n else if (p === 22) {\n attr.fg &= ~134217728;\n attr.bg &= ~134217728;\n }\n else if (p === 23) {\n attr.bg &= ~67108864;\n }\n else if (p === 24) {\n attr.fg &= ~268435456;\n }\n else if (p === 25) {\n attr.fg &= ~536870912;\n }\n else if (p === 27) {\n attr.fg &= ~67108864;\n }\n else if (p === 28) {\n attr.fg &= ~1073741824;\n }\n else if (p === 39) {\n attr.fg &= ~(50331648 | 16777215);\n attr.fg |= BufferLine_1.DEFAULT_ATTR_DATA.fg & (255 | 16777215);\n }\n else if (p === 49) {\n attr.bg &= ~(50331648 | 16777215);\n attr.bg |= BufferLine_1.DEFAULT_ATTR_DATA.bg & (255 | 16777215);\n }\n else if (p === 38) {\n if (params[i + 1] === 2) {\n i += 2;\n attr.fg |= 50331648;\n attr.fg &= ~16777215;\n attr.fg |= BufferLine_1.AttributeData.fromColorRGB([params[i], params[i + 1], params[i + 2]]);\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n attr.fg &= ~(50331648 | 255);\n attr.fg |= 33554432 | p;\n }\n }\n else if (p === 48) {\n if (params[i + 1] === 2) {\n i += 2;\n attr.bg |= 50331648;\n attr.bg &= ~16777215;\n attr.bg |= BufferLine_1.AttributeData.fromColorRGB([params[i], params[i + 1], params[i + 2]]);\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n attr.bg &= ~(50331648 | 255);\n attr.bg |= 33554432 | p;\n }\n }\n else if (p === 100) {\n attr.fg &= ~(50331648 | 16777215);\n attr.fg |= BufferLine_1.DEFAULT_ATTR_DATA.fg & (255 | 16777215);\n attr.bg &= ~(50331648 | 16777215);\n attr.bg |= BufferLine_1.DEFAULT_ATTR_DATA.bg & (255 | 16777215);\n }\n else {\n this._terminal.error('Unknown SGR attribute: %d.', p);\n }\n }\n };\n InputHandler.prototype.deviceStatus = function (params, collect) {\n if (!collect) {\n switch (params[0]) {\n case 5:\n this._onData.fire(EscapeSequences_1.C0.ESC + \"[0n\");\n break;\n case 6:\n var y = this._terminal.buffer.y + 1;\n var x = this._terminal.buffer.x + 1;\n this._onData.fire(EscapeSequences_1.C0.ESC + \"[\" + y + \";\" + x + \"R\");\n break;\n }\n }\n else if (collect === '?') {\n switch (params[0]) {\n case 6:\n var y = this._terminal.buffer.y + 1;\n var x = this._terminal.buffer.x + 1;\n this._onData.fire(EscapeSequences_1.C0.ESC + \"[?\" + y + \";\" + x + \"R\");\n break;\n case 15:\n break;\n case 25:\n break;\n case 26:\n break;\n case 53:\n break;\n }\n }\n };\n InputHandler.prototype.softReset = function (params, collect) {\n if (collect === '!') {\n this._terminal.cursorHidden = false;\n this._terminal.insertMode = false;\n this._terminal.originMode = false;\n this._terminal.wraparoundMode = true;\n this._terminal.applicationKeypad = false;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n this._terminal.applicationCursor = false;\n this._terminal.buffer.scrollTop = 0;\n this._terminal.buffer.scrollBottom = this._terminal.rows - 1;\n this._terminal.curAttrData = BufferLine_1.DEFAULT_ATTR_DATA.clone();\n this._terminal.buffer.x = this._terminal.buffer.y = 0;\n this._terminal.charset = null;\n this._terminal.glevel = 0;\n this._terminal.charsets = [null];\n }\n };\n InputHandler.prototype.setCursorStyle = function (params, collect) {\n if (collect === ' ') {\n var param = params[0] < 1 ? 1 : params[0];\n switch (param) {\n case 1:\n case 2:\n this._terminal.setOption('cursorStyle', 'block');\n break;\n case 3:\n case 4:\n this._terminal.setOption('cursorStyle', 'underline');\n break;\n case 5:\n case 6:\n this._terminal.setOption('cursorStyle', 'bar');\n break;\n }\n var isBlinking = param % 2 === 1;\n this._terminal.setOption('cursorBlink', isBlinking);\n }\n };\n InputHandler.prototype.setScrollRegion = function (params, collect) {\n if (collect) {\n return;\n }\n this._terminal.buffer.scrollTop = (params[0] || 1) - 1;\n this._terminal.buffer.scrollBottom = (params[1] && params[1] <= this._terminal.rows ? params[1] : this._terminal.rows) - 1;\n this._terminal.buffer.x = 0;\n this._terminal.buffer.y = 0;\n };\n InputHandler.prototype.saveCursor = function (params) {\n this._terminal.buffer.savedX = this._terminal.buffer.x;\n this._terminal.buffer.savedY = this._terminal.buffer.y;\n this._terminal.buffer.savedCurAttrData.fg = this._terminal.curAttrData.fg;\n this._terminal.buffer.savedCurAttrData.bg = this._terminal.curAttrData.bg;\n };\n InputHandler.prototype.restoreCursor = function (params) {\n this._terminal.buffer.x = this._terminal.buffer.savedX || 0;\n this._terminal.buffer.y = this._terminal.buffer.savedY || 0;\n this._terminal.curAttrData.fg = this._terminal.buffer.savedCurAttrData.fg;\n this._terminal.curAttrData.bg = this._terminal.buffer.savedCurAttrData.bg;\n };\n InputHandler.prototype.setTitle = function (data) {\n this._terminal.handleTitle(data);\n };\n InputHandler.prototype.nextLine = function () {\n this._terminal.buffer.x = 0;\n this.index();\n };\n InputHandler.prototype.keypadApplicationMode = function () {\n this._terminal.log('Serial port requested application keypad.');\n this._terminal.applicationKeypad = true;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n };\n InputHandler.prototype.keypadNumericMode = function () {\n this._terminal.log('Switching back to normal keypad.');\n this._terminal.applicationKeypad = false;\n if (this._terminal.viewport) {\n this._terminal.viewport.syncScrollArea();\n }\n };\n InputHandler.prototype.selectDefaultCharset = function () {\n this._terminal.setgLevel(0);\n this._terminal.setgCharset(0, Charsets_1.DEFAULT_CHARSET);\n };\n InputHandler.prototype.selectCharset = function (collectAndFlag) {\n if (collectAndFlag.length !== 2) {\n this.selectDefaultCharset();\n return;\n }\n if (collectAndFlag[0] === '/') {\n return;\n }\n this._terminal.setgCharset(GLEVEL[collectAndFlag[0]], Charsets_1.CHARSETS[collectAndFlag[1]] || Charsets_1.DEFAULT_CHARSET);\n return;\n };\n InputHandler.prototype.index = function () {\n this._terminal.index();\n };\n InputHandler.prototype.tabSet = function () {\n this._terminal.tabSet();\n };\n InputHandler.prototype.reverseIndex = function () {\n this._terminal.reverseIndex();\n };\n InputHandler.prototype.reset = function () {\n this._parser.reset();\n this._terminal.reset();\n };\n InputHandler.prototype.setgLevel = function (level) {\n this._terminal.setgLevel(level);\n };\n return InputHandler;\n}(Lifecycle_1.Disposable));\nexports.InputHandler = InputHandler;\n//# sourceMappingURL=InputHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Disposable = (function () {\n function Disposable() {\n this._disposables = [];\n this._isDisposed = false;\n }\n Disposable.prototype.dispose = function () {\n this._isDisposed = true;\n this._disposables.forEach(function (d) { return d.dispose(); });\n this._disposables.length = 0;\n };\n Disposable.prototype.register = function (d) {\n this._disposables.push(d);\n };\n Disposable.prototype.unregister = function (d) {\n var index = this._disposables.indexOf(d);\n if (index !== -1) {\n this._disposables.splice(index, 1);\n }\n };\n return Disposable;\n}());\nexports.Disposable = Disposable;\n//# sourceMappingURL=Lifecycle.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isNode = (typeof navigator === 'undefined') ? true : false;\nvar userAgent = (isNode) ? 'node' : navigator.userAgent;\nvar platform = (isNode) ? 'node' : navigator.platform;\nexports.isFirefox = !!~userAgent.indexOf('Firefox');\nexports.isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nexports.isMSIE = !!~userAgent.indexOf('MSIE') || !!~userAgent.indexOf('Trident');\nexports.isMac = contains(['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'], platform);\nexports.isIpad = platform === 'iPad';\nexports.isIphone = platform === 'iPhone';\nexports.isMSWindows = contains(['Windows', 'Win16', 'Win32', 'WinCE'], platform);\nexports.isLinux = platform.indexOf('Linux') >= 0;\nfunction contains(arr, el) {\n return arr.indexOf(el) >= 0;\n}\n//# sourceMappingURL=Platform.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EventEmitter2_1 = require(\"./common/EventEmitter2\");\nvar CharMeasure = (function () {\n function CharMeasure(document, parentElement) {\n this._onCharSizeChanged = new EventEmitter2_1.EventEmitter2();\n this._document = document;\n this._parentElement = parentElement;\n this._measureElement = this._document.createElement('span');\n this._measureElement.classList.add('xterm-char-measure-element');\n this._measureElement.textContent = 'W';\n this._measureElement.setAttribute('aria-hidden', 'true');\n this._parentElement.appendChild(this._measureElement);\n }\n Object.defineProperty(CharMeasure.prototype, \"onCharSizeChanged\", {\n get: function () { return this._onCharSizeChanged.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CharMeasure.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CharMeasure.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: true,\n configurable: true\n });\n CharMeasure.prototype.measure = function (options) {\n this._measureElement.style.fontFamily = options.fontFamily;\n this._measureElement.style.fontSize = options.fontSize + \"px\";\n var geometry = this._measureElement.getBoundingClientRect();\n if (geometry.width === 0 || geometry.height === 0) {\n return;\n }\n var adjustedHeight = Math.ceil(geometry.height);\n if (this._width !== geometry.width || this._height !== adjustedHeight) {\n this._width = geometry.width;\n this._height = adjustedHeight;\n this._onCharSizeChanged.fire();\n }\n };\n return CharMeasure;\n}());\nexports.CharMeasure = CharMeasure;\n//# sourceMappingURL=CharMeasure.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GridCache = (function () {\n function GridCache() {\n this.cache = [];\n }\n GridCache.prototype.resize = function (width, height) {\n for (var x = 0; x < width; x++) {\n if (this.cache.length <= x) {\n this.cache.push([]);\n }\n for (var y = this.cache[x].length; y < height; y++) {\n this.cache[x].push(null);\n }\n this.cache[x].length = height;\n }\n this.cache.length = width;\n };\n GridCache.prototype.clear = function () {\n for (var x = 0; x < this.cache.length; x++) {\n for (var y = 0; y < this.cache[x].length; y++) {\n this.cache[x][y] = null;\n }\n }\n };\n return GridCache;\n}());\nexports.GridCache = GridCache;\n//# sourceMappingURL=GridCache.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"./Buffer\");\nvar EventEmitter2_1 = require(\"./common/EventEmitter2\");\nvar BufferSet = (function () {\n function BufferSet(_terminal) {\n this._terminal = _terminal;\n this._onBufferActivate = new EventEmitter2_1.EventEmitter2();\n this._normal = new Buffer_1.Buffer(this._terminal, true);\n this._normal.fillViewportRows();\n this._alt = new Buffer_1.Buffer(this._terminal, false);\n this._activeBuffer = this._normal;\n this.setupTabStops();\n }\n Object.defineProperty(BufferSet.prototype, \"onBufferActivate\", {\n get: function () { return this._onBufferActivate.event; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"alt\", {\n get: function () {\n return this._alt;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"active\", {\n get: function () {\n return this._activeBuffer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BufferSet.prototype, \"normal\", {\n get: function () {\n return this._normal;\n },\n enumerable: true,\n configurable: true\n });\n BufferSet.prototype.activateNormalBuffer = function () {\n if (this._activeBuffer === this._normal) {\n return;\n }\n this._normal.x = this._alt.x;\n this._normal.y = this._alt.y;\n this._alt.clear();\n this._activeBuffer = this._normal;\n this._onBufferActivate.fire({\n activeBuffer: this._normal,\n inactiveBuffer: this._alt\n });\n };\n BufferSet.prototype.activateAltBuffer = function (fillAttr) {\n if (this._activeBuffer === this._alt) {\n return;\n }\n this._alt.fillViewportRows(fillAttr);\n this._alt.x = this._normal.x;\n this._alt.y = this._normal.y;\n this._activeBuffer = this._alt;\n this._onBufferActivate.fire({\n activeBuffer: this._alt,\n inactiveBuffer: this._normal\n });\n };\n BufferSet.prototype.resize = function (newCols, newRows) {\n this._normal.resize(newCols, newRows);\n this._alt.resize(newCols, newRows);\n };\n BufferSet.prototype.setupTabStops = function (i) {\n this._normal.setupTabStops(i);\n this._alt.setupTabStops(i);\n };\n return BufferSet;\n}());\nexports.BufferSet = BufferSet;\n//# sourceMappingURL=BufferSet.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"../common/Lifecycle\");\nvar ScreenDprMonitor = (function (_super) {\n __extends(ScreenDprMonitor, _super);\n function ScreenDprMonitor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._currentDevicePixelRatio = window.devicePixelRatio;\n return _this;\n }\n ScreenDprMonitor.prototype.setListener = function (listener) {\n var _this = this;\n if (this._listener) {\n this.clearListener();\n }\n this._listener = listener;\n this._outerListener = function () {\n if (!_this._listener) {\n return;\n }\n _this._listener(window.devicePixelRatio, _this._currentDevicePixelRatio);\n _this._updateDpr();\n };\n this._updateDpr();\n };\n ScreenDprMonitor.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n this.clearListener();\n };\n ScreenDprMonitor.prototype._updateDpr = function () {\n if (!this._resolutionMediaMatchList || !this._outerListener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._currentDevicePixelRatio = window.devicePixelRatio;\n this._resolutionMediaMatchList = window.matchMedia(\"screen and (resolution: \" + window.devicePixelRatio + \"dppx)\");\n this._resolutionMediaMatchList.addListener(this._outerListener);\n };\n ScreenDprMonitor.prototype.clearListener = function () {\n if (!this._resolutionMediaMatchList || !this._listener || !this._outerListener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._resolutionMediaMatchList = undefined;\n this._listener = undefined;\n this._outerListener = undefined;\n };\n return ScreenDprMonitor;\n}(Lifecycle_1.Disposable));\nexports.ScreenDprMonitor = ScreenDprMonitor;\n//# sourceMappingURL=ScreenDprMonitor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BufferLine_1 = require(\"./core/buffer/BufferLine\");\nfunction applyWindowsMode(terminal) {\n return terminal.onLineFeed(function () {\n var line = terminal.buffer.lines.get(terminal.buffer.ybase + terminal.buffer.y - 1);\n var lastChar = line.get(terminal.cols - 1);\n var nextLine = terminal.buffer.lines.get(terminal.buffer.ybase + terminal.buffer.y);\n nextLine.isWrapped = (lastChar[BufferLine_1.CHAR_DATA_CODE_INDEX] !== BufferLine_1.NULL_CELL_CODE && lastChar[BufferLine_1.CHAR_DATA_CODE_INDEX] !== BufferLine_1.WHITESPACE_CELL_CODE);\n });\n}\nexports.applyWindowsMode = applyWindowsMode;\n//# sourceMappingURL=WindowsMode.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar Lifecycle_2 = require(\"./ui/Lifecycle\");\nvar FALLBACK_SCROLL_BAR_WIDTH = 15;\nvar Viewport = (function (_super) {\n __extends(Viewport, _super);\n function Viewport(_terminal, _viewportElement, _scrollArea, _charMeasure, _dimensions) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._viewportElement = _viewportElement;\n _this._scrollArea = _scrollArea;\n _this._charMeasure = _charMeasure;\n _this._dimensions = _dimensions;\n _this.scrollBarWidth = 0;\n _this._currentRowHeight = 0;\n _this._lastRecordedBufferLength = 0;\n _this._lastRecordedViewportHeight = 0;\n _this._lastRecordedBufferHeight = 0;\n _this._lastScrollTop = 0;\n _this._wheelPartialScroll = 0;\n _this._refreshAnimationFrame = null;\n _this._ignoreNextScrollEvent = false;\n _this.scrollBarWidth = (_this._viewportElement.offsetWidth - _this._scrollArea.offsetWidth) || FALLBACK_SCROLL_BAR_WIDTH;\n _this.register(Lifecycle_2.addDisposableDomListener(_this._viewportElement, 'scroll', _this._onScroll.bind(_this)));\n setTimeout(function () { return _this.syncScrollArea(); }, 0);\n return _this;\n }\n Viewport.prototype.onDimensionsChance = function (dimensions) {\n this._dimensions = dimensions;\n };\n Viewport.prototype.onThemeChange = function (colors) {\n this._viewportElement.style.backgroundColor = colors.background.css;\n };\n Viewport.prototype._refresh = function () {\n var _this = this;\n if (this._refreshAnimationFrame === null) {\n this._refreshAnimationFrame = requestAnimationFrame(function () { return _this._innerRefresh(); });\n }\n };\n Viewport.prototype._innerRefresh = function () {\n if (this._charMeasure.height > 0) {\n this._currentRowHeight = this._dimensions.scaledCellHeight / window.devicePixelRatio;\n this._lastRecordedViewportHeight = this._viewportElement.offsetHeight;\n var newBufferHeight = Math.round(this._currentRowHeight * this._lastRecordedBufferLength) + (this._lastRecordedViewportHeight - this._dimensions.canvasHeight);\n if (this._lastRecordedBufferHeight !== newBufferHeight) {\n this._lastRecordedBufferHeight = newBufferHeight;\n this._scrollArea.style.height = this._lastRecordedBufferHeight + 'px';\n }\n }\n var scrollTop = this._terminal.buffer.ydisp * this._currentRowHeight;\n if (this._viewportElement.scrollTop !== scrollTop) {\n this._ignoreNextScrollEvent = true;\n this._viewportElement.scrollTop = scrollTop;\n }\n this._refreshAnimationFrame = null;\n };\n Viewport.prototype.syncScrollArea = function () {\n if (this._lastRecordedBufferLength !== this._terminal.buffer.lines.length) {\n this._lastRecordedBufferLength = this._terminal.buffer.lines.length;\n this._refresh();\n return;\n }\n if (this._lastRecordedViewportHeight !== this._dimensions.canvasHeight) {\n this._refresh();\n return;\n }\n var newScrollTop = this._terminal.buffer.ydisp * this._currentRowHeight;\n if (this._lastScrollTop !== newScrollTop) {\n this._refresh();\n return;\n }\n if (this._lastScrollTop !== this._viewportElement.scrollTop) {\n this._refresh();\n return;\n }\n if (this._dimensions.scaledCellHeight / window.devicePixelRatio !== this._currentRowHeight) {\n this._refresh();\n return;\n }\n };\n Viewport.prototype._onScroll = function (ev) {\n this._lastScrollTop = this._viewportElement.scrollTop;\n if (!this._viewportElement.offsetParent) {\n return;\n }\n if (this._ignoreNextScrollEvent) {\n this._ignoreNextScrollEvent = false;\n return;\n }\n var newRow = Math.round(this._lastScrollTop / this._currentRowHeight);\n var diff = newRow - this._terminal.buffer.ydisp;\n this._terminal.scrollLines(diff, true);\n };\n Viewport.prototype.onWheel = function (ev) {\n var amount = this._getPixelsScrolled(ev);\n if (amount === 0) {\n return;\n }\n this._viewportElement.scrollTop += amount;\n ev.preventDefault();\n };\n Viewport.prototype._getPixelsScrolled = function (ev) {\n if (ev.deltaY === 0) {\n return 0;\n }\n var amount = ev.deltaY;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n amount *= this._currentRowHeight;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._currentRowHeight * this._terminal.rows;\n }\n return amount;\n };\n Viewport.prototype.getLinesScrolled = function (ev) {\n if (ev.deltaY === 0) {\n return 0;\n }\n var amount = ev.deltaY;\n if (ev.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n amount /= this._currentRowHeight + 0.0;\n this._wheelPartialScroll += amount;\n amount = Math.floor(Math.abs(this._wheelPartialScroll)) * (this._wheelPartialScroll > 0 ? 1 : -1);\n this._wheelPartialScroll %= 1;\n }\n else if (ev.deltaMode === WheelEvent.DOM_DELTA_PAGE) {\n amount *= this._terminal.rows;\n }\n return amount;\n };\n Viewport.prototype.onTouchStart = function (ev) {\n this._lastTouchY = ev.touches[0].pageY;\n };\n Viewport.prototype.onTouchMove = function (ev) {\n var deltaY = this._lastTouchY - ev.touches[0].pageY;\n this._lastTouchY = ev.touches[0].pageY;\n if (deltaY === 0) {\n return;\n }\n this._viewportElement.scrollTop += deltaY;\n ev.preventDefault();\n };\n return Viewport;\n}(Lifecycle_1.Disposable));\nexports.Viewport = Viewport;\n//# sourceMappingURL=Viewport.js.map"],"sourceRoot":""}