{"version":3,"sources":["webpack:///./node_modules/xterm/lib/handlers/Clipboard.js","webpack:///./node_modules/xterm/lib/renderer/CharacterJoinerRegistry.js","webpack:///./node_modules/xterm/lib/utils/Clone.js","webpack:///./node_modules/xterm/lib/renderer/dom/DomRendererRowFactory.js","webpack:///./node_modules/xterm/lib/renderer/BaseRenderLayer.js","webpack:///./node_modules/xterm/lib/BufferLine.js","webpack:///./node_modules/xterm/lib/AccessibilityManager.js","webpack:///./node_modules/xterm/lib/renderer/SelectionRenderLayer.js","webpack:///./node_modules/xterm/lib/addons/search/SearchHelper.js","webpack:///./node_modules/xterm/lib/ui/RenderDebouncer.js","webpack:///./node_modules/xterm/lib/renderer/dom/DomRenderer.js","webpack:///./node_modules/xterm/lib/ui/MouseZoneManager.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/shared/atlas/Types.js","webpack:///./node_modules/xterm/lib/renderer/atlas/CharAtlasCache.js","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/ui/CharMeasure.js","webpack:///./node_modules/xterm/lib/addons/search/search.js","webpack:///./node_modules/xterm/lib/common/data/EscapeSequences.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/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/utils/MouseHelper.js","webpack:///./node_modules/xterm/lib/addons/webLinks/webLinks.js","webpack:///./node_modules/xterm/lib/renderer/CursorRenderLayer.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/xterm/lib/renderer/atlas/LRUMap.js","webpack:///./node_modules/xterm/lib/Linkifier.js","webpack:///./node_modules/xterm/lib/addons/fit/fit.js","webpack:///./node_modules/xterm/lib/shared/atlas/CharAtlasGenerator.js","webpack:///./node_modules/xterm/lib/shared/utils/Browser.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/ColorManager.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/renderer/GridCache.js","webpack:///./node_modules/xterm/lib/BufferSet.js","webpack:///./node_modules/xterm/lib/ui/ScreenDprMonitor.js","webpack:///./node_modules/xterm/lib/Viewport.js"],"names":["prepareTextForTerminal","text","replace","bracketTextForPaste","bracketedPasteMode","copyHandler","ev","term","selectionManager","browser","isMSIE","window","clipboardData","setData","selectionText","preventDefault","pasteHandler","stopPropagation","dispatchPaste","handler","textarea","value","emit","cancel","getData","moveTextAreaUnderMouseCursor","style","position","width","height","left","clientX","top","clientY","zIndex","focus","setTimeout","rightClickHandler","shouldSelectWord","isClickInSelection","selectWordAtCursor","select","Object","defineProperty","exports","Buffer_1","CharacterJoinerRegistry","_terminal","this","_characterJoiners","_nextCharacterJoinerId","prototype","registerCharacterJoiner","joiner","id","push","deregisterCharacterJoiner","joinerId","i","length","splice","getJoinedCharacters","row","line","buffer","lines","get","ranges","lineStr","translateBufferLineToString","rangeStartColumn","currentStringIndex","rangeStartStringIndex","rangeAttr","CHAR_DATA_ATTR_INDEX","x","cols","charData","chars","CHAR_DATA_CHAR_INDEX","CHAR_DATA_WIDTH_INDEX","attr","joinedRanges","_getJoinedRanges","startIndex","endIndex","lineData","startCol","substring","joinerRanges","j","_mergeRanges","_stringRangesToCellRanges","currentRangeIndex","currentRangeStarted","currentRange","length_1","newRange","inRange","range","Math","max","min","clone","val","depth","clonedObject","Array","isArray","key","BOLD_CLASS","ITALIC_CLASS","CURSOR_CLASS","CURSOR_STYLE_BLOCK_CLASS","CURSOR_STYLE_BAR_CLASS","CURSOR_STYLE_UNDERLINE_CLASS","DomRendererRowFactory","_document","createRow","isCursorRow","cursorStyle","cursorX","cellWidth","fragment","createDocumentFragment","colCount","char","charElement","createElement","flags","bg","fg","classList","add","temp","textContent","appendChild","Types_1","CharAtlasCache_1","BaseRenderLayer","_container","_alpha","_colors","_scaledCharWidth","_scaledCharHeight","_scaledCellWidth","_scaledCellHeight","_scaledCharLeft","_scaledCharTop","_currentGlyphIdentifier","code","bold","dim","italic","_canvas","document","toString","_initCanvas","dispose","removeChild","_charAtlas","_ctx","getContext","alpha","clearAll","onOptionsChanged","terminal","onBlur","onFocus","onCursorMove","onGridChanged","startRow","endRow","onSelectionChanged","start","end","columnSelectMode","onThemeChanged","colorSet","_refreshCharAtlas","setTransparency","oldCanvas","cloneNode","replaceChild","rows","acquireCharAtlas","warmUp","resize","scaledCellWidth","scaledCellHeight","scaledCharWidth","scaledCharHeight","scaledCharLeft","scaledCharTop","scaledCanvasWidth","scaledCanvasHeight","canvasWidth","canvasHeight","fillCells","y","fillRect","fillBottomLineAtCells","devicePixelRatio","fillLeftLineAtCell","strokeRectAtCell","lineWidth","strokeRect","clearRect","fillStyle","background","css","clearCells","fillCharTrueColor","font","_getFont","textBaseline","_clipRow","fillText","drawChars","drawInBrightColor","options","drawBoldTextInBrightColors","INVERTED_DEFAULT_COLOR","enableBold","atlasDidDraw","draw","_drawUncachedChars","save","ansi","foreground","globalAlpha","DIM_OPACITY","restore","beginPath","rect","clip","isBold","isItalic","fontWeight","fontWeightBold","fontStyle","fontSize","fontFamily","BufferLine","ch","isWrapped","_data","NULL_CELL_CHAR","NULL_CELL_WIDTH","NULL_CELL_CODE","blankLine","index","set","data","pop","deleteCount","_a","items","_i","arguments","removed","apply","concat","insertCells","pos","n","deleteCells","fill","replaceCells","__extends","extendStatics","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","__","constructor","create","Strings","Browser_1","RenderDebouncer_1","Lifecycle_1","Lifecycle_2","MAX_ROWS_TO_READ","AccessibilityManager","_super","_this","call","_liveRegionLineCount","_charsToConsume","_accessibilityTreeRoot","_rowContainer","_rowElements","_createAccessibilityTreeNode","_topBoundaryFocusListener","e","_onBoundaryFocus","_bottomBoundaryFocusListener","addEventListener","_refreshRowsDimensions","_renderRowsDebouncer","RenderDebouncer","_renderRows","bind","_refreshRows","_liveRegion","setAttribute","element","insertAdjacentElement","register","addDisposableListener","_onResize","_onChar","spaceCount","_onTab","keyChar","_onKey","_clearLiveRegion","renderer","addDisposableDomListener","boundaryElement","target","beforeBoundaryElement","posInSet","getAttribute","lastRowPos","relatedTarget","topBoundaryElement","bottomBoundaryElement","shift","removeEventListener","newElement","unshift","scrollLines","stopImmediatePropagation","children","tabIndex","_refreshRowDimensions","shiftedChar","_announceCharacter","tooMuchOutput","isMac","parentNode","refresh","setSize","ydisp","dimensions","actualCellHeight","innerHTML","Disposable","BaseRenderLayer_1","SelectionRenderLayer","container","colors","_clearState","_state","reset","_didStateChange","viewportStartRow","viewportEndRow","viewportCappedStartRow","viewportCappedEndRow","selection","startRowEndCol","middleRowsCount","endCol","_areCoordinatesEqual","coord1","coord2","nonWordCharacters","SearchHelper","findNext","searchOptions","result","_core","selectionEnd","ybase","_findInLine","_selectResult","findPrevious","selectionStart","_isWholeWord","searchIndex","indexOf","stringLine","translateBufferLineToStringWithWrap","searchStringLine","caseSensitive","toLowerCase","searchTerm","regex","searchRegex","RegExp","foundTerm","exec","lastIndex","floor","wholeWord","charWidth","col","lineIndex","trimRight","lineWrapsToNext","lineString","nextLine","setSelection","_callback","_animationFrame","cancelAnimationFrame","rowStart","rowEnd","undefined","isRowStartSet","_rowStart","isRowEndSet","_rowEnd","requestAnimationFrame","_innerRefresh","EventEmitter_1","ColorManager_1","DomRendererRowFactory_1","TERMINAL_CLASS_PREFIX","ROW_CONTAINER_CLASS","FG_CLASS_PREFIX","BG_CLASS_PREFIX","FOCUS_CLASS","SELECTION_CLASS","nextTerminalId","DomRenderer","theme","_terminalClass","allowTransparency","colorManager","ColorManager","setTheme","lineHeight","_refreshRowElements","_selectionContainer","actualCellWidth","_updateDimensions","_renderDebouncer","_rowFactory","screenElement","linkifier","on","_onLinkHover","_onLinkLeave","remove","_themeStyleElement","_dimensionsStyleElement","charMeasure","forEach","styles","_terminalSelector","_viewportElement","getOption","cursor","cursorAccent","c","onWindowResize","onResize","onCharSizeChanged","documentFragment","_createSelectionElement","endCol_1","colStart","colEnd","rowCount","clear","refreshRows","cursorAbsoluteY","rowElement","enumerable","configurable","_setCellUnderline","x1","x2","y1","y2","enabled","span","textDecoration","EventEmitter","HOVER_DURATION","MouseZoneManager","_zones","_areZonesActive","_tooltipTimeout","_currentZone","_lastHoverCoords","_onMouseDown","_mouseMoveListener","_onMouseMove","_clickListener","_onClick","_deactivate","zone","_activate","leaveCallback","pageX","pageY","_onHover","_findZoneEventAt","clearTimeout","hoverCallback","_onTooltip","tooltipCallback","willLinkActivate","clickCallback","coords","mouseHelper","getCoords","MouseZone","CircularList_1","BufferLine_1","DEFAULT_ATTR","CHAR_DATA_CODE_INDEX","MAX_BUFFER_SIZE","Buffer","_hasScrollback","markers","maxLength","absoluteY","relativeY","_getCorrectBufferLength","correctBufferLength","scrollback","fillViewportRows","CircularList","scrollTop","scrollBottom","setupTabStops","newCols","newRows","newMaxLength","addToY","amountToTrim","trimStart","savedY","savedX","stringIndexToBufferIndex","stringIndex","rightWhitespaceIndex","search","getWrappedRangeForLine","first","last","tabs","prevStop","tabStopWidth","nextStop","addMarker","marker","Marker","amount","_removeMarker","iterator","startOverscan","endOverscan","BufferStringIterator","_id","_nextId","isDisposed","_buffer","_trimRight","_startIndex","_endIndex","_startOverscan","_endOverscan","_current","hasNext","next","content","node","type","useCapture","TextRenderLayer_1","SelectionRenderLayer_1","CursorRenderLayer_1","LinkRenderLayer_1","ScreenDprMonitor_1","CharacterJoinerRegistry_1","Renderer","_isPaused","_needsFullRefresh","_characterJoinerRegistry","_renderLayers","TextRenderLayer","LinkRenderLayer","CursorRenderLayer","_devicePixelRatio","_screenDprMonitor","ScreenDprMonitor","setListener","observer_1","IntersectionObserver","onIntersectionChange","threshold","observe","disconnect","l","entry","intersectionRatio","_runOperation","operation","ceil","round","letterSpacing","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","keyMapping","String","fromCharCode","CHAR_ATLAS_CELL_SPACING","CharAtlasUtils_1","DynamicCharAtlas_1","NoneCharAtlas_1","StaticCharAtlas_1","charAtlasImplementations","default","charAtlasCache","newConfig","generateConfig","ownedByIndex","ownedBy","configEquals","config","atlas","newEntry","experimentalCharAtlas","removeTerminalFromCache","DEFAULT_BELL_SOUND","SoundManager","playBellSound","audioContextCtor","AudioContext","webkitAudioContext","_audioContext","bellAudioSource_1","createBufferSource","context_1","decodeAudioData","_base64ToArrayBuffer","_removeMimeType","bellSound","connect","destination","console","warn","base64","binaryString","atob","len","bytes","Uint8Array","charCodeAt","dataURI","splitUri","split","BaseCharAtlas_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","_width","_height","capacity","_cacheMap","prealloc","beginFrame","ctx","glyphKey","cacheValue","_drawFromCache","_canCache","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","Terminal","blur","listener","off","columns","writeln","open","parent","attachCustomKeyEventHandler","customKeyEventHandler","registerLinkMatcher","deregisterLinkMatcher","matcherId","cursorYOffset","hasSelection","getSelection","clearSelection","selectAll","selectLines","destroy","scrollPages","pageCount","scrollToTop","scrollToBottom","scrollToLine","write","setOption","applyAddon","addon","CharMeasure","parentElement","_parentElement","_measureElement","measure","geometry","getBoundingClientRect","SearchHelper_1","addonTerminal","__searchHelper","terminalConstructor","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","US","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","NoneCharAtlas","BaseCharAtlas","_didWarmUp","_doWarmUp","promptLabel","_events","disposed","obj","removeAllListeners","args","listeners","MouseHelper_1","Browser","SelectionModel_1","AltClickHandler_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","SelectionManager","_charMeasure","_enabled","_initListeners","enable","_model","SelectionModel","_activeSelectionMode","_removeMouseDownListeners","buffers","active","event","_mouseUpListener","_onMouseUp","_trimListener","_onTrim","initBuffersListeners","_onBufferActivate","disable","finalSelectionStart","finalSelectionEnd","lineText","bufferLine","formattedResult","map","join","isMSWindows","isNewSelection","_refreshAnimationFrame","_refresh","isLinux","_getMouseBufferCoords","_selectWordAt","isSelectAllActive","needsRefresh","onTrim","_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","inactiveBuffer","activeBuffer","_convertViewportColToCharacterIndex","charIndex","_getWordAt","allowWhitespaceOnlySelection","followWrappedLinesAbove","followWrappedLinesBelow","charOffset","leftWideCharCount","rightWideCharCount","leftLongCharOffset","rightLongCharOffset","charAt","_isCharWordSeparator","slice","trim","previousBufferLine","previousLineWordPosition","nextBufferLine","nextLineWordPosition","wordPosition","areSelectionValuesReversed","wrappedRange","Types_2","StaticCharAtlas","_canvasFactory","canvas","generateStaticCharAtlasTexture","HTMLCanvasElement","_texture","texture","_isCached","colorIndex","isAscii","isBasicColor","isDefaultColor","isDefaultBackground","charAtlasCellWidth","charAtlasCellHeight","GridCache_1","characterJoinerRegistry","_characterOverlapCache","GridCache","terminalFont","_characterWidth","_characterFont","_forEachCell","firstRow","lastRow","joinerRegistry","callback","isJoined","lastCharX","Infinity","_isOverlapping","_drawBackground","startX","startY","prevFillStyle","nextFillStyle","_drawForeground","cache","overlaps","measureText","clonedColors","a","_renderer","originalElement","offsetLeft","offsetTop","offsetParent","body","scrollLeft","isSelection","getRawByteCoords","protocolClause","domainCharacterSet","negatedDomainCharacterSet","domainBodyClause","tldClause","ipClause","localHostClause","portClause","hostClause","pathClause","queryStringHashFragmentCharacterSet","queryStringClause","hashFragmentClause","negatedPathCharacterSet","bodyClause","strictUrlRegex","handleLink","uri","webLinksInit","matchIndex","BLINK_INTERVAL","isFocused","_cursorRenderers","_renderBarCursor","_renderBlockCursor","_renderUnderlineCursor","_clearCursor","_cursorBlinkStateManager","pause","resume","cursorBlink","CursorBlinkStateManager","_render","restartBlinkAnimation","isPaused","triggeredByAnimationFrame","cursorState","cursorHidden","cursorY","viewportRelativeCursorY","_renderBlurCursor","isCursorVisible","strokeStyle","_renderCallback","_restartInterval","_blinkStartTimeout","_blinkInterval","_animationTimeRestarted","Date","now","timeToStart","time","CompositionHelper","_textarea","_compositionView","_isComposing","_isSendingComposition","_compositionPosition","compositionstart","compositionupdate","updateCompositionElements","compositionend","_finalizeComposition","keydown","_handleAnyTextareaChanges","waitForPropogation","_clearTextareaPosition","currentCompositionPosition_1","input","oldValue","newValue","diff","dontRecurse","isCursorInViewport","cellHeight","cursorTop","cursorLeft","compositionViewBounds","getStringCellWidth","s","low","isNaN","wcwidth","opts","COMBINING_BMP","COMBINING_HIGH","bisearch","ucs","mid","wcwidthBMP","nul","control","isWideBMP","wcwidthHigh","table","initTable","CODEPOINTS","BITWIDTH","ITEMSIZE","CONTAINERSIZE","CODEPOINTS_PER_ITEM","Uint32Array","num","t","CHARSETS","DEFAULT_CHARSET","BufferSet_1","CompositionHelper_1","Viewport_1","Clipboard_1","InputHandler_1","Renderer_1","Linkifier_1","SelectionManager_1","CharMeasure_1","Clone_1","SoundManager_1","MouseZoneManager_1","AccessibilityManager_1","DomRenderer_1","Keyboard_1","WRITE_BUFFER_PAUSE_THRESHOLD","WRITE_BATCH_SIZE","CONSTRUCTOR_ONLY_OPTIONS","DEFAULT_OPTIONS","convertEol","termName","bellStyle","screenKeys","screenReaderMode","debug","cancelEvents","disableStdin","useFlowControl","rightClickSelectsWord","rendererType","_setup","_customKeyEventHandler","keys","_parent","applicationKeypad","applicationCursor","originMode","insertMode","wraparoundMode","charset","gcharset","glevel","charsets","curAttr","params","currentParam","writeBuffer","_writeInProgress","_xoffSentToCatchUp","_userScrolling","_inputHandler","InputHandler","Linkifier","_mouseZoneManager","soundManager","BufferSet","eraseAttr","activeElement","Error","error","_setTheme","newBufferLength","unregister","_setupRenderer","_theme","viewport","syncScrollArea","_accessibilityManager","_onTextAreaFocus","sendFocus","updateCursorStyle","showCursor","_onTextAreaBlur","_initGlobal","_bindKeys","pasteHandlerWrapper","self","_keyDown","_keyPress","wasModifierKeyOnlyEvent","_keyUp","_compositionHelper","_queueLinkification","_context","defaultView","dir","_viewportScrollArea","_helperContainer","attachToDom","Viewport","bindMouse","el","pressed","sendButton","getButton","sendEvent","overrideType","sendMove","encode","utfMouse","_vt300Mouse","data_1","_decLocator","page","urxvtMouse","sgrMouse","meta","ctrl","mod","which","wheelDeltaY","vt200Mouse","normalMouse","mouseEvents","moveHandler","x10Mouse","hasScrollback","getLinesScrolled","sequence","deltaY","onWheel","onTouchStart","onTouchMove","linkifyRows","scroll","newLine","topRow","bottomRow","willBufferBeTrimmed","scrollRegionHeight","shiftElements","updateRange","disp","suppressScrollEvent","oldYdisp","scrollAmount","_isDisposed","_innerWrite","writeBatch","_refreshStart","_refreshEnd","parse","normal","scrollCount","_isThirdLevelShift","thirdLevelKey","setgLevel","g","setgCharset","charCode","bell","_soundBell","_visualBell","_visualBellTimer","log","maxRange","cur","is","handleTitle","title","reverseIndex","inputHandler","tabSet","force","matchColor","r1","g1","b1","hash","matchColorCache","r2","g2","b2","ldiff","li","matchColorDistance","pow","_mouseEvent","_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","str","rpt","r","high","arr","TransitionTable","state","action","addMany","codes","PRINTABLES","EXECUTABLES","DEFAULT_TRANSITION","VT500_TRANSITION_TABLE","states","DcsDummy","hook","collect","flag","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","setPrintHandler","clearPrintHandler","setExecuteHandler","clearExecuteHandler","setExecuteHandlerFallback","setCsiHandler","clearCsiHandler","setCsiHandlerFallback","setEscHandler","collectAndFlag","clearEscHandler","setEscHandlerFallback","setOscHandler","ident","clearOscHandler","setOscHandlerFallback","setDcsHandler","clearDcsHandler","setDcsHandlerFallback","setErrorHandler","clearErrorHandler","transition","print","dcs","osc","dcsHandler","inject","abort","parseInt","LRUMap","_map","_head","_tail","_nodePool","_unlinkNode","prev","_appendNode","tail","nodePool","peekValue","head","CharWidth_1","_linkMatchers","_nextLinkMatcherId","_rowsToLinkify","mouseZoneManager","_rowsTimeoutId","_linkifyRows","TIME_BEFORE_LINKIFY","absoluteRowIndexStart","absoluteRowIndexEnd","overscanLineLimit","OVERSCAN_CHAR_LIMIT","_doLinkifyRow","matcher","validationCallback","hoverTooltipCallback","hoverLeaveCallback","priority","_addLinkMatcherToList","rowIndex","match","rex","source","_loop_1","this_1","bufferIndex","isValid","_addLink","state_1","_createLinkHoverEvent","proposeGeometry","parentElementStyle","getComputedStyle","parentElementHeight","getPropertyValue","parentElementWidth","elementStyle","elementPadding","bottom","right","elementPaddingVer","elementPaddingHor","availableHeight","availableWidth","scrollBarWidth","fit","context","canvasFactory","getFont","Promise","transferToImageBitmap","charAtlasImageData","color","isNode","navigator","userAgent","platform","contains","test","isIpad","isIphone","_maxLength","_array","_length","newArray","_getCyclicIndex","newLength","countToTrim","expandListBy","startPlusLength","DEFAULT_FOREGROUND","fromHex","DEFAULT_BACKGROUND","DEFAULT_CURSOR","DEFAULT_CURSOR_ACCENT","DEFAULT_SELECTION","toPaddedHex","v","_litmusColor","createLinearGradient","_parseColor","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","fallback","_clearCurrentLink","middleRowCount","Charsets_1","EscapeSequenceParser_1","GLEVEL","DECRQSS","pt","STYLES","_parser","_surrogateHigh","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","bufferRow","stringPosition","moves","chMinusTwo","chMinusOne","originalX","param","_eraseInBufferLine","scrollBackSize","scrollBottomRowsOffset","scrollBottomAbsolute","savedCols","activateAltBuffer","activateNormalBuffer","isBlinking","savedCurAttr","level","_disposables","_normal","_alt","_activeBuffer","_listener","clearListener","_outerListener","_currentDevicePixelRatio","_updateDpr","_resolutionMediaMatchList","removeListener","matchMedia","addListener","FALLBACK_SCROLL_BAR_WIDTH","_scrollArea","_currentRowHeight","_lastRecordedBufferLength","_lastRecordedViewportHeight","_lastRecordedBufferHeight","_lastScrollTop","_wheelPartialScroll","_ignoreNextScrollEvent","offsetWidth","_onScroll","offsetHeight","newBufferHeight","newScrollTop","newRow","_getPixelsScrolled","deltaMode","WheelEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","_lastTouchY","touches"],"mappings":"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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,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAAS,CAAC,MAAQ,OAC7C,CAAC,MAAQ,OAAS,CAAC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","file":"js/chunk-f3be8f2e.c132a911.js","sourcesContent":["\"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, textarea) {\n textarea.style.position = 'fixed';\n textarea.style.width = '20px';\n textarea.style.height = '20px';\n textarea.style.left = (ev.clientX - 10) + 'px';\n textarea.style.top = (ev.clientY - 10) + 'px';\n textarea.style.zIndex = '1000';\n textarea.focus();\n setTimeout(function () {\n textarea.style.position = null;\n textarea.style.width = null;\n textarea.style.height = null;\n textarea.style.left = null;\n textarea.style.top = null;\n textarea.style.zIndex = null;\n }, 200);\n}\nexports.moveTextAreaUnderMouseCursor = moveTextAreaUnderMouseCursor;\nfunction rightClickHandler(ev, textarea, selectionManager, shouldSelectWord) {\n moveTextAreaUnderMouseCursor(ev, textarea);\n if (shouldSelectWord && !selectionManager.isClickInSelection(ev)) {\n selectionManager.selectWordAtCursor(ev);\n }\n textarea.value = selectionManager.selectionText;\n textarea.select();\n}\nexports.rightClickHandler = rightClickHandler;\n//# sourceMappingURL=Clipboard.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../Buffer\");\nvar CharacterJoinerRegistry = (function () {\n function CharacterJoinerRegistry(_terminal) {\n this._terminal = _terminal;\n this._characterJoiners = [];\n this._nextCharacterJoinerId = 0;\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 = this._terminal.buffer.translateBufferLineToString(row, true);\n var rangeStartColumn = 0;\n var currentStringIndex = 0;\n var rangeStartStringIndex = 0;\n var rangeAttr = line.get(0)[Buffer_1.CHAR_DATA_ATTR_INDEX] >> 9;\n for (var x = 0; x < this._terminal.cols; x++) {\n var charData = line.get(x);\n var chars = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX] >> 9;\n if (width === 0) {\n continue;\n }\n if (attr !== rangeAttr) {\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 rangeAttr = attr;\n }\n currentStringIndex += chars.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 charData = line.get(x);\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var length_1 = charData[Buffer_1.CHAR_DATA_CHAR_INDEX].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 });\nexports.clone = function (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] : exports.clone(val[key], depth - 1);\n }\n return clonedObject;\n};\n//# sourceMappingURL=Clone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Buffer_1 = require(\"../../Buffer\");\nexports.BOLD_CLASS = 'xterm-bold';\nexports.ITALIC_CLASS = 'xterm-italic';\nexports.CURSOR_CLASS = 'xterm-cursor';\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(_document) {\n this._document = _document;\n }\n DomRendererRowFactory.prototype.createRow = function (lineData, isCursorRow, cursorStyle, cursorX, cellWidth, cols) {\n var fragment = this._document.createDocumentFragment();\n var colCount = 0;\n for (var x = 0; x < lineData.length; x++) {\n if (colCount >= cols) {\n continue;\n }\n var charData = lineData.get(x);\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\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 var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var fg = (attr >> 9) & 0x1ff;\n if (isCursorRow && x === cursorX) {\n charElement.classList.add(exports.CURSOR_CLASS);\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 (flags & 8) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = 0;\n }\n if (bg === 257) {\n bg = 15;\n }\n }\n if (flags & 1) {\n if (fg < 8) {\n fg += 8;\n }\n charElement.classList.add(exports.BOLD_CLASS);\n }\n if (flags & 64) {\n charElement.classList.add(exports.ITALIC_CLASS);\n }\n charElement.textContent = char;\n if (fg !== 257) {\n charElement.classList.add(\"xterm-fg-\" + fg);\n }\n if (bg !== 256) {\n charElement.classList.add(\"xterm-bg-\" + bg);\n }\n fragment.appendChild(charElement);\n colCount += width;\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(\"./atlas/Types\");\nvar CharAtlasCache_1 = require(\"./atlas/CharAtlasCache\");\nvar Buffer_1 = require(\"../Buffer\");\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.onThemeChanged = 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, charData, x, y) {\n this._ctx.font = this._getFont(terminal, false, false);\n this._ctx.textBaseline = 'top';\n this._clipRow(terminal, y);\n this._ctx.fillText(charData[Buffer_1.CHAR_DATA_CHAR_INDEX], x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\n };\n BaseRenderLayer.prototype.drawChars = function (terminal, chars, code, width, x, y, fg, bg, bold, dim, italic) {\n var drawInBrightColor = terminal.options.drawBoldTextInBrightColors && bold && fg < 8 && fg !== Types_1.INVERTED_DEFAULT_COLOR;\n fg += drawInBrightColor ? 8 : 0;\n this._currentGlyphIdentifier.chars = chars;\n this._currentGlyphIdentifier.code = code;\n this._currentGlyphIdentifier.bg = bg;\n this._currentGlyphIdentifier.fg = fg;\n this._currentGlyphIdentifier.bold = bold && terminal.options.enableBold;\n this._currentGlyphIdentifier.dim = dim;\n this._currentGlyphIdentifier.italic = italic;\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, chars, width, fg, x, y, bold && terminal.options.enableBold, dim, italic);\n }\n };\n BaseRenderLayer.prototype._drawUncachedChars = function (terminal, chars, width, fg, x, y, bold, dim, italic) {\n this._ctx.save();\n this._ctx.font = this._getFont(terminal, bold, italic);\n this._ctx.textBaseline = 'top';\n if (fg === Types_1.INVERTED_DEFAULT_COLOR) {\n this._ctx.fillStyle = this._colors.background.css;\n }\n else if (fg < 256) {\n this._ctx.fillStyle = this._colors.ansi[fg].css;\n }\n else {\n this._ctx.fillStyle = this._colors.foreground.css;\n }\n this._clipRow(terminal, y);\n if (dim) {\n this._ctx.globalAlpha = Types_1.DIM_OPACITY;\n }\n this._ctx.fillText(chars, x * this._scaledCellWidth + this._scaledCharLeft, y * this._scaledCellHeight + this._scaledCharTop);\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 });\nvar Buffer_1 = require(\"./Buffer\");\nvar BufferLine = (function () {\n function BufferLine(cols, ch, isWrapped) {\n this.isWrapped = false;\n this._data = [];\n this.length = this._data.length;\n if (cols) {\n if (!ch) {\n ch = [0, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n }\n for (var i = 0; i < cols; i++) {\n this.push(ch);\n }\n }\n if (isWrapped) {\n this.isWrapped = true;\n }\n }\n BufferLine.blankLine = function (cols, attr, isWrapped) {\n var ch = [attr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n return new BufferLine(cols, ch, isWrapped);\n };\n BufferLine.prototype.get = function (index) {\n return this._data[index];\n };\n BufferLine.prototype.set = function (index, data) {\n this._data[index] = data;\n };\n BufferLine.prototype.pop = function () {\n var data = this._data.pop();\n this.length = this._data.length;\n return data;\n };\n BufferLine.prototype.push = function (data) {\n this._data.push(data);\n this.length = this._data.length;\n };\n BufferLine.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 var _a;\n var removed = (_a = this._data).splice.apply(_a, [start, deleteCount].concat(items));\n this.length = this._data.length;\n return removed;\n };\n BufferLine.prototype.insertCells = function (pos, n, ch) {\n while (n--) {\n this.splice(pos, 0, ch);\n this.pop();\n }\n };\n BufferLine.prototype.deleteCells = function (pos, n, fill) {\n while (n--) {\n this.splice(pos, 1);\n this.push(fill);\n }\n };\n BufferLine.prototype.replaceCells = function (start, end, fill) {\n while (start < end && start < this.length) {\n this.set(start++, fill);\n }\n };\n return BufferLine;\n}());\nexports.BufferLine = BufferLine;\n//# sourceMappingURL=BufferLine.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 Browser_1 = require(\"./shared/utils/Browser\");\nvar RenderDebouncer_1 = require(\"./ui/RenderDebouncer\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Lifecycle_2 = require(\"./common/Lifecycle\");\nvar MAX_ROWS_TO_READ = 20;\nvar AccessibilityManager = (function (_super) {\n __extends(AccessibilityManager, _super);\n function AccessibilityManager(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._liveRegionLineCount = 0;\n _this._charsToConsume = [];\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._terminal, _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.addDisposableListener('resize', function (data) { return _this._onResize(data.rows); }));\n _this.register(_this._terminal.addDisposableListener('refresh', function (data) { return _this._refreshRows(data.start, data.end); }));\n _this.register(_this._terminal.addDisposableListener('scroll', function (data) { return _this._refreshRows(); }));\n _this.register(_this._terminal.addDisposableListener('a11y.char', function (char) { return _this._onChar(char); }));\n _this.register(_this._terminal.addDisposableListener('linefeed', function () { return _this._onChar('\\n'); }));\n _this.register(_this._terminal.addDisposableListener('a11y.tab', function (spaceCount) { return _this._onTab(spaceCount); }));\n _this.register(_this._terminal.addDisposableListener('key', function (keyChar) { return _this._onKey(keyChar); }));\n _this.register(_this._terminal.addDisposableListener('blur', function () { return _this._clearLiveRegion(); }));\n _this.register(_this._terminal.addDisposableListener('dprchange', function () { return _this._refreshRowsDimensions(); }));\n _this.register(_this._terminal.renderer.addDisposableListener('resize', 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._announceCharacter(char);\n }\n }\n else {\n this._announceCharacter(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 (Browser_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 (Browser_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);\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 element.textContent = lineData.length === 0 ? Strings.blankLine : lineData;\n element.setAttribute('aria-posinset', posInSet);\n element.setAttribute('aria-setsize', setSize);\n }\n };\n AccessibilityManager.prototype._refreshRowsDimensions = function () {\n if (!this._terminal.renderer.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._refreshRowDimensions = function (element) {\n element.style.height = this._terminal.renderer.dimensions.actualCellHeight + \"px\";\n };\n AccessibilityManager.prototype._announceCharacter = function (char) {\n if (char === ' ') {\n this._liveRegion.innerHTML += ' ';\n }\n else {\n this._liveRegion.textContent += char;\n }\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 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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar nonWordCharacters = ' ~!@#$%^&*()_+`-=[]{}|\\;:\"\\',./<>?';\nvar SearchHelper = (function () {\n function SearchHelper(_terminal) {\n this._terminal = _terminal;\n }\n SearchHelper.prototype.findNext = function (term, searchOptions) {\n if (!term || term.length === 0) {\n return false;\n }\n var result;\n var startRow = this._terminal._core.buffer.ydisp;\n if (this._terminal._core.selectionManager.selectionEnd) {\n startRow = this._terminal._core.selectionManager.selectionEnd[1];\n }\n for (var y = startRow + 1; y < this._terminal._core.buffer.ybase + this._terminal.rows; y++) {\n result = this._findInLine(term, y, searchOptions);\n if (result) {\n break;\n }\n }\n if (!result) {\n for (var y = 0; y < startRow; y++) {\n result = this._findInLine(term, y, searchOptions);\n if (result) {\n break;\n }\n }\n }\n return this._selectResult(result);\n };\n SearchHelper.prototype.findPrevious = function (term, searchOptions) {\n if (!term || term.length === 0) {\n return false;\n }\n var result;\n var startRow = this._terminal._core.buffer.ydisp;\n if (this._terminal._core.selectionManager.selectionStart) {\n startRow = this._terminal._core.selectionManager.selectionStart[1];\n }\n for (var y = startRow - 1; y >= 0; y--) {\n result = this._findInLine(term, y, searchOptions);\n if (result) {\n break;\n }\n }\n if (!result) {\n for (var y = this._terminal._core.buffer.ybase + this._terminal.rows - 1; y > startRow; y--) {\n result = this._findInLine(term, y, searchOptions);\n if (result) {\n break;\n }\n }\n }\n return this._selectResult(result);\n };\n SearchHelper.prototype._isWholeWord = function (searchIndex, line, term) {\n return (((searchIndex === 0) || (nonWordCharacters.indexOf(line[searchIndex - 1]) !== -1)) &&\n (((searchIndex + term.length) === line.length) || (nonWordCharacters.indexOf(line[searchIndex + term.length]) !== -1)));\n };\n SearchHelper.prototype._findInLine = function (term, y, searchOptions) {\n if (searchOptions === void 0) { searchOptions = {}; }\n if (this._terminal._core.buffer.lines.get(y).isWrapped) {\n return;\n }\n var stringLine = this.translateBufferLineToStringWithWrap(y, true);\n var searchStringLine = searchOptions.caseSensitive ? stringLine : stringLine.toLowerCase();\n var searchTerm = searchOptions.caseSensitive ? term : term.toLowerCase();\n var searchIndex = -1;\n if (searchOptions.regex) {\n var searchRegex = RegExp(searchTerm, 'g');\n var foundTerm = searchRegex.exec(searchStringLine);\n if (foundTerm && foundTerm[0].length > 0) {\n searchIndex = searchRegex.lastIndex - foundTerm[0].length;\n term = foundTerm[0];\n }\n }\n else {\n searchIndex = searchStringLine.indexOf(searchTerm);\n }\n if (searchIndex >= 0) {\n if (searchIndex >= this._terminal.cols) {\n y += Math.floor(searchIndex / this._terminal.cols);\n searchIndex = searchIndex % this._terminal.cols;\n }\n if (searchOptions.wholeWord && !this._isWholeWord(searchIndex, searchStringLine, term)) {\n return;\n }\n var line = this._terminal._core.buffer.lines.get(y);\n for (var i = 0; i < searchIndex; i++) {\n var charData = line.get(i);\n var char = charData[1];\n if (char.length > 1) {\n searchIndex -= char.length - 1;\n }\n var charWidth = charData[2];\n if (charWidth === 0) {\n searchIndex++;\n }\n }\n return {\n term: term,\n col: searchIndex,\n row: y\n };\n }\n };\n SearchHelper.prototype.translateBufferLineToStringWithWrap = function (lineIndex, trimRight) {\n var lineString = '';\n var lineWrapsToNext;\n do {\n var nextLine = this._terminal._core.buffer.lines.get(lineIndex + 1);\n lineWrapsToNext = nextLine ? nextLine.isWrapped : false;\n lineString += this._terminal._core.buffer.translateBufferLineToString(lineIndex, !lineWrapsToNext && trimRight);\n lineIndex++;\n } while (lineWrapsToNext);\n return lineString;\n };\n SearchHelper.prototype._selectResult = function (result) {\n if (!result) {\n return false;\n }\n this._terminal._core.selectionManager.setSelection(result.col, result.row, result.term.length);\n this._terminal.scrollLines(result.row - this._terminal._core.buffer.ydisp);\n return true;\n };\n return SearchHelper;\n}());\nexports.SearchHelper = SearchHelper;\n//# sourceMappingURL=SearchHelper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RenderDebouncer = (function () {\n function RenderDebouncer(_terminal, _callback) {\n this._terminal = _terminal;\n this._callback = _callback;\n this._animationFrame = null;\n }\n RenderDebouncer.prototype.dispose = function () {\n if (this._animationFrame) {\n window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n };\n RenderDebouncer.prototype.refresh = function (rowStart, rowEnd) {\n var _this = this;\n rowStart = rowStart !== null && rowStart !== undefined ? rowStart : 0;\n rowEnd = rowEnd !== null && rowEnd !== undefined ? rowEnd : this._terminal.rows - 1;\n var isRowStartSet = this._rowStart !== undefined && this._rowStart !== null;\n var isRowEndSet = this._rowEnd !== undefined && this._rowEnd !== null;\n this._rowStart = isRowStartSet ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = isRowEndSet ? 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 this._rowStart = Math.max(this._rowStart, 0);\n this._rowEnd = Math.min(this._rowEnd, this._terminal.rows - 1);\n this._callback(this._rowStart, this._rowEnd);\n this._rowStart = null;\n this._rowEnd = null;\n this._animationFrame = null;\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 EventEmitter_1 = require(\"../../common/EventEmitter\");\nvar ColorManager_1 = require(\"../ColorManager\");\nvar RenderDebouncer_1 = require(\"../../ui/RenderDebouncer\");\nvar DomRendererRowFactory_1 = require(\"./DomRendererRowFactory\");\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, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._terminalClass = nextTerminalId++;\n _this._rowElements = [];\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);\n _this.setTheme(theme);\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._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._rowFactory = new DomRendererRowFactory_1.DomRendererRowFactory(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.on(\"linkhover\", function (e) { return _this._onLinkHover(e); });\n _this._terminal.linkifier.on(\"linkleave\", 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 = this._terminal.charMeasure.height * window.devicePixelRatio;\n this.dimensions.scaledCellWidth = this.dimensions.scaledCharWidth;\n this.dimensions.scaledCellHeight = this.dimensions.scaledCharHeight;\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 = this._terminal.charMeasure.width * this._terminal.cols;\n this.dimensions.canvasHeight = this._terminal.charMeasure.height * this._terminal.rows;\n this.dimensions.actualCellWidth = this._terminal.charMeasure.width;\n this.dimensions.actualCellHeight = this._terminal.charMeasure.height;\n this._rowElements.forEach(function (element) {\n element.style.width = _this.dimensions.canvasWidth + \"px\";\n element.style.height = _this._terminal.charMeasure.height + \"px\";\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._terminal.charMeasure.width + \"px\") +\n \"}\";\n this._dimensionsStyleElement.innerHTML = styles;\n this._selectionContainer.style.height = this._terminal._viewportElement.style.height;\n this._rowContainer.style.width = this.dimensions.canvasWidth + \"px\";\n this._rowContainer.style.height = this.dimensions.canvasHeight + \"px\";\n };\n DomRenderer.prototype.setTheme = function (theme) {\n var _this = this;\n if (theme) {\n this.colorManager.setTheme(theme);\n }\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.colorManager.colors.foreground.css + \";\") +\n (\" background-color: \" + this.colorManager.colors.background.css + \";\") +\n (\" font-family: \" + this._terminal.getOption('fontFamily') + \";\") +\n (\" font-size: \" + this._terminal.getOption('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 this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \":not(.\" + FOCUS_CLASS + \") .\" + DomRendererRowFactory_1.CURSOR_CLASS + \" {\" +\n (\" outline: 1px solid \" + this.colorManager.colors.cursor.css + \";\") +\n \" outline-offset: -1px;\" +\n \"}\" +\n (this._terminalSelector + \" .\" + ROW_CONTAINER_CLASS + \".\" + FOCUS_CLASS + \" .\" + DomRendererRowFactory_1.CURSOR_CLASS + \".\" + DomRendererRowFactory_1.CURSOR_STYLE_BLOCK_CLASS + \" {\") +\n (\" background-color: \" + this.colorManager.colors.cursor.css + \";\") +\n (\" color: \" + this.colorManager.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.colorManager.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.colorManager.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.colorManager.colors.selection.css + \";\") +\n \"}\";\n this.colorManager.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 this._themeStyleElement.innerHTML = styles;\n return this.colorManager.colors;\n };\n DomRenderer.prototype.onWindowResize = function (devicePixelRatio) {\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._terminal.charMeasure.height + \"px\";\n element.style.top = row * this._terminal.charMeasure.height + \"px\";\n element.style.left = colStart * this._terminal.charMeasure.width + \"px\";\n element.style.width = this._terminal.charMeasure.width * (colEnd - colStart) + \"px\";\n return element;\n };\n DomRenderer.prototype.onCursorMove = function () {\n };\n DomRenderer.prototype.onOptionsChanged = function () {\n this._updateDimensions();\n this.setTheme(undefined);\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.refreshRows = function (start, end) {\n this._renderDebouncer.refresh(start, end);\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 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, terminal.charMeasure.width, terminal.cols));\n }\n this._terminal.emit('refresh', { start: start, end: end });\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 span = this._rowElements[y].children[x];\n span.style.textDecoration = enabled ? 'underline' : 'none';\n x = (x + 1) % cols;\n if (x === 0) {\n y++;\n }\n }\n };\n return DomRenderer;\n}(EventEmitter_1.EventEmitter));\nexports.DomRenderer = DomRenderer;\n//# sourceMappingURL=DomRenderer.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(\"./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._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('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('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 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._onClick = function (e) {\n var zone = this._findZoneEventAt(e);\n if (zone) {\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.options.lineHeight, 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\";\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 CircularList_1 = require(\"./common/CircularList\");\nvar EventEmitter_1 = require(\"./common/EventEmitter\");\nvar BufferLine_1 = require(\"./BufferLine\");\nexports.DEFAULT_ATTR = (0 << 18) | (257 << 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.MAX_BUFFER_SIZE = 4294967295;\nexports.NULL_CELL_CHAR = ' ';\nexports.NULL_CELL_WIDTH = 1;\nexports.NULL_CELL_CODE = 32;\nvar Buffer = (function () {\n function Buffer(_terminal, _hasScrollback) {\n this._terminal = _terminal;\n this._hasScrollback = _hasScrollback;\n this.markers = [];\n this.clear();\n }\n Object.defineProperty(Buffer.prototype, \"hasScrollback\", {\n get: function () {\n return this._hasScrollback && this.lines.maxLength > this._terminal.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._terminal.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 () {\n if (this.lines.length === 0) {\n var i = this._terminal.rows;\n while (i--) {\n this.lines.push(BufferLine_1.BufferLine.blankLine(this._terminal.cols, exports.DEFAULT_ATTR));\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._terminal.rows));\n this.scrollTop = 0;\n this.scrollBottom = this._terminal.rows - 1;\n this.setupTabStops();\n };\n Buffer.prototype.resize = function (newCols, newRows) {\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._terminal.cols < newCols) {\n var ch = [exports.DEFAULT_ATTR, exports.NULL_CELL_CHAR, exports.NULL_CELL_WIDTH, exports.NULL_CELL_CODE];\n for (var i = 0; i < this.lines.length; i++) {\n while (this.lines.get(i).length < newCols) {\n this.lines.get(i).push(ch);\n }\n }\n }\n var addToY = 0;\n if (this._terminal.rows < newRows) {\n for (var y = this._terminal.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(BufferLine_1.BufferLine.blankLine(newCols, exports.DEFAULT_ATTR));\n }\n }\n }\n }\n else {\n for (var y = this._terminal.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 };\n Buffer.prototype.stringIndexToBufferIndex = function (lineIndex, stringIndex) {\n while (stringIndex) {\n var line = this.lines.get(lineIndex);\n if (!line) {\n [-1, -1];\n }\n for (var i = 0; i < line.length; ++i) {\n stringIndex -= line.get(i)[exports.CHAR_DATA_CHAR_INDEX].length;\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 if (endCol === void 0) { endCol = null; }\n var lineString = '';\n var line = this.lines.get(lineIndex);\n if (!line) {\n return '';\n }\n var startIndex = startCol;\n if (endCol === null) {\n endCol = line.length;\n }\n var endIndex = endCol;\n for (var i = 0; i < line.length; i++) {\n var char = line.get(i);\n lineString += char[exports.CHAR_DATA_CHAR_INDEX];\n if (char[exports.CHAR_DATA_WIDTH_INDEX] === 0) {\n if (startCol >= i) {\n startIndex--;\n }\n if (endCol > i) {\n endIndex--;\n }\n }\n else {\n if (char[exports.CHAR_DATA_CHAR_INDEX].length > 1) {\n if (startCol > i) {\n startIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n if (endCol > i) {\n endIndex += char[exports.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n }\n }\n }\n if (trimRight) {\n var rightWhitespaceIndex = lineString.search(/\\s+$/);\n if (rightWhitespaceIndex !== -1) {\n endIndex = Math.min(endIndex, rightWhitespaceIndex);\n }\n if (endIndex <= startIndex) {\n return '';\n }\n }\n return lineString.substring(startIndex, endIndex);\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._terminal.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._terminal.cols ? this._terminal.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._terminal.cols)\n ;\n return x >= this._terminal.cols ? this._terminal.cols - 1 : x < 0 ? 0 : x;\n };\n Buffer.prototype.addMarker = function (y) {\n var _this = this;\n var marker = new Marker(y);\n this.markers.push(marker);\n marker.register(this.lines.addDisposableListener('trim', function (amount) {\n marker.line -= amount;\n if (marker.line < 0) {\n marker.dispose();\n }\n }));\n marker.register(marker.addDisposableListener('dispose', 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 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 return _this;\n }\n Object.defineProperty(Marker.prototype, \"id\", {\n get: function () { return this._id; },\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.emit('dispose');\n _super.prototype.dispose.call(this);\n };\n Marker._nextId = 1;\n return Marker;\n}(EventEmitter_1.EventEmitter));\nexports.Marker = Marker;\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) ? i === range.last : false);\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 node = null;\n handler = null;\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 ColorManager_1 = require(\"./ColorManager\");\nvar LinkRenderLayer_1 = require(\"./LinkRenderLayer\");\nvar EventEmitter_1 = require(\"../common/EventEmitter\");\nvar RenderDebouncer_1 = require(\"../ui/RenderDebouncer\");\nvar ScreenDprMonitor_1 = require(\"../ui/ScreenDprMonitor\");\nvar CharacterJoinerRegistry_1 = require(\"../renderer/CharacterJoinerRegistry\");\nvar Renderer = (function (_super) {\n __extends(Renderer, _super);\n function Renderer(_terminal, theme) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._isPaused = false;\n _this._needsFullRefresh = false;\n var allowTransparency = _this._terminal.options.allowTransparency;\n _this.colorManager = new ColorManager_1.ColorManager(document, allowTransparency);\n _this._characterJoinerRegistry = new CharacterJoinerRegistry_1.CharacterJoinerRegistry(_terminal);\n if (theme) {\n _this.colorManager.setTheme(theme);\n }\n _this._renderLayers = [\n new TextRenderLayer_1.TextRenderLayer(_this._terminal.screenElement, 0, _this.colorManager.colors, _this._characterJoinerRegistry, allowTransparency),\n new SelectionRenderLayer_1.SelectionRenderLayer(_this._terminal.screenElement, 1, _this.colorManager.colors),\n new LinkRenderLayer_1.LinkRenderLayer(_this._terminal.screenElement, 2, _this.colorManager.colors, _this._terminal),\n new CursorRenderLayer_1.CursorRenderLayer(_this._terminal.screenElement, 3, _this.colorManager.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 _this._renderDebouncer = new RenderDebouncer_1.RenderDebouncer(_this._terminal, _this._renderRows.bind(_this));\n _this._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n _this._screenDprMonitor.setListener(function () { return _this.onWindowResize(window.devicePixelRatio); });\n _this.register(_this._screenDprMonitor);\n if ('IntersectionObserver' in window) {\n var observer_1 = new IntersectionObserver(function (e) { return _this.onIntersectionChange(e[0]); }, { threshold: 0 });\n observer_1.observe(_this._terminal.element);\n _this.register({ dispose: function () { return observer_1.disconnect(); } });\n }\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.onIntersectionChange = function (entry) {\n this._isPaused = entry.intersectionRatio === 0;\n if (!this._isPaused && this._needsFullRefresh) {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n };\n Renderer.prototype.onWindowResize = function (devicePixelRatio) {\n if (this._devicePixelRatio !== devicePixelRatio) {\n this._devicePixelRatio = devicePixelRatio;\n this.onResize(this._terminal.cols, this._terminal.rows);\n }\n };\n Renderer.prototype.setTheme = function (theme) {\n var _this = this;\n this.colorManager.setTheme(theme);\n this._renderLayers.forEach(function (l) {\n l.onThemeChanged(_this._terminal, _this.colorManager.colors);\n l.reset(_this._terminal);\n });\n if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n return this.colorManager.colors;\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 if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._terminal.refresh(0, this._terminal.rows - 1);\n }\n this._terminal.screenElement.style.width = this.dimensions.canvasWidth + \"px\";\n this._terminal.screenElement.style.height = this.dimensions.canvasHeight + \"px\";\n this.emit('resize', {\n width: this.dimensions.canvasWidth,\n height: this.dimensions.canvasHeight\n });\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.colorManager.allowTransparency = this._terminal.options.allowTransparency;\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 if (this._isPaused) {\n this._needsFullRefresh = true;\n }\n else {\n this._renderLayers.forEach(function (l) { return operation(l); });\n }\n };\n Renderer.prototype.refreshRows = function (start, end) {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n return;\n }\n this._renderDebouncer.refresh(start, end);\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 this._terminal.emit('refresh', { start: start, end: 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}(EventEmitter_1.EventEmitter));\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 break;\n }\n return result;\n}\nexports.evaluateKeyboardEvent = evaluateKeyboardEvent;\n//# sourceMappingURL=Keyboard.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CHAR_ATLAS_CELL_SPACING = 1;\n//# sourceMappingURL=Types.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 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.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","\"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 SoundManager.prototype.playBellSound = function () {\n var audioContextCtor = window.AudioContext || window.webkitAudioContext;\n if (!this._audioContext && audioContextCtor) {\n this._audioContext = new audioContextCtor();\n }\n if (this._audioContext) {\n var bellAudioSource_1 = this._audioContext.createBufferSource();\n var context_1 = this._audioContext;\n this._audioContext.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._terminal.options.bellSound)), function (buffer) {\n bellAudioSource_1.buffer = buffer;\n bellAudioSource_1.connect(context_1.destination);\n bellAudioSource_1.start(0);\n });\n }\n else {\n console.warn('Sorry, but the Web Audio API is not supported by your browser. Please, consider upgrading to the latest version');\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(\"../ColorManager\");\nvar CharAtlasGenerator_1 = require(\"../../shared/atlas/CharAtlasGenerator\");\nvar LRUMap_1 = require(\"./LRUMap\");\nvar Browser_1 = require(\"../../shared/utils/Browser\");\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}\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 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._canCache(glyph) && 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 = 'top';\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, 0);\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) || Browser_1.isFirefox || Browser_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 Terminal = (function () {\n function Terminal(options) {\n this._core = new Terminal_1.Terminal(options);\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, \"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.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.getSelection = function () {\n return this._core.getSelection();\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._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.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 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;\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 EventEmitter_1 = require(\"../common/EventEmitter\");\nvar CharMeasure = (function (_super) {\n __extends(CharMeasure, _super);\n function CharMeasure(document, parentElement) {\n var _this = _super.call(this) || this;\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 return _this;\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 if (this._width !== geometry.width || this._height !== geometry.height) {\n this._width = geometry.width;\n this._height = Math.ceil(geometry.height);\n this.emit('charsizechanged');\n }\n };\n return CharMeasure;\n}(EventEmitter_1.EventEmitter));\nexports.CharMeasure = CharMeasure;\n//# sourceMappingURL=CharMeasure.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar SearchHelper_1 = require(\"./SearchHelper\");\nfunction findNext(terminal, term, searchOptions) {\n if (searchOptions === void 0) { searchOptions = {}; }\n var addonTerminal = terminal;\n if (!addonTerminal.__searchHelper) {\n addonTerminal.__searchHelper = new SearchHelper_1.SearchHelper(addonTerminal);\n }\n return addonTerminal.__searchHelper.findNext(term, searchOptions);\n}\nexports.findNext = findNext;\nfunction findPrevious(terminal, term, searchOptions) {\n var addonTerminal = terminal;\n if (!addonTerminal.__searchHelper) {\n addonTerminal.__searchHelper = new SearchHelper_1.SearchHelper(addonTerminal);\n }\n return addonTerminal.__searchHelper.findPrevious(term, searchOptions);\n}\nexports.findPrevious = findPrevious;\nfunction apply(terminalConstructor) {\n terminalConstructor.prototype.findNext = function (term, searchOptions) {\n return findNext(this, term, searchOptions);\n };\n terminalConstructor.prototype.findPrevious = function (term, searchOptions) {\n return findPrevious(this, term, searchOptions);\n };\n}\nexports.apply = apply;\n//# sourceMappingURL=search.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\";\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.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\";\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 MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Browser = require(\"./shared/utils/Browser\");\nvar EventEmitter_1 = require(\"./common/EventEmitter\");\nvar SelectionModel_1 = require(\"./SelectionModel\");\nvar Buffer_1 = require(\"./Buffer\");\nvar AltClickHandler_1 = require(\"./handlers/AltClickHandler\");\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 (_super) {\n __extends(SelectionManager, _super);\n function SelectionManager(_terminal, _charMeasure) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._charMeasure = _charMeasure;\n _this._enabled = true;\n _this._initListeners();\n _this.enable();\n _this._model = new SelectionModel_1.SelectionModel(_terminal);\n _this._activeSelectionMode = 0;\n return _this;\n }\n SelectionManager.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\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._trimListener = function (amount) { return _this._onTrim(amount); };\n this.initBuffersListeners();\n };\n SelectionManager.prototype.initBuffersListeners = function () {\n var _this = this;\n this._terminal.buffer.lines.on('trim', this._trimListener);\n this._terminal.buffers.on('activate', 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] : null;\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 };\n SelectionManager.prototype.refresh = function (isNewSelection) {\n var _this = this;\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = window.requestAnimationFrame(function () { return _this._refresh(); });\n }\n if (Browser.isLinux && isNewSelection) {\n var selectionText = this.selectionText;\n if (selectionText.length) {\n this.emit('newselection', this.selectionText);\n }\n }\n };\n SelectionManager.prototype._refresh = function () {\n this._refreshAnimationFrame = null;\n this.emit('refresh', {\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 (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 };\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._terminal.emit('selection');\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._terminal.emit('selection');\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.options.lineHeight, 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 var char = line.get(this._model.selectionStart[0]);\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 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 var char = this._buffer.lines.get(this._model.selectionEnd[1]).get(this._model.selectionEnd[0]);\n if (char && char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 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._terminal.emit('selection');\n }\n };\n SelectionManager.prototype._onBufferActivate = function (e) {\n this.clearSelection();\n e.inactiveBuffer.lines.off('trim', this._trimListener);\n e.activeBuffer.lines.on('trim', this._trimListener);\n };\n SelectionManager.prototype._convertViewportColToCharacterIndex = function (bufferLine, coords) {\n var charIndex = coords[0];\n for (var i = 0; coords[0] >= i; i++) {\n var char = bufferLine.get(i);\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n charIndex--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1 && coords[0] !== i) {\n charIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 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.get(startCol)[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine.get(endCol)[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n if (bufferLine.get(endCol)[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += bufferLine.get(endCol)[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += bufferLine.get(endCol)[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine.get(startCol - 1))) {\n var char = bufferLine.get(startCol - 1);\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n leftWideCharCount++;\n startCol--;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n leftLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n startIndex -= char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine.get(endCol + 1))) {\n var char = bufferLine.get(endCol + 1);\n if (char[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n rightWideCharCount++;\n endCol++;\n }\n else if (char[Buffer_1.CHAR_DATA_CHAR_INDEX].length > 1) {\n rightLongCharOffset += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 1;\n endIndex += char[Buffer_1.CHAR_DATA_CHAR_INDEX].length - 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.get(0)[Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var previousBufferLine = this._buffer.lines.get(coords[1] - 1);\n if (previousBufferLine && bufferLine.isWrapped && previousBufferLine.get(this._terminal.cols - 1)[Buffer_1.CHAR_DATA_CODE_INDEX] !== 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.get(this._terminal.cols - 1)[Buffer_1.CHAR_DATA_CODE_INDEX] !== 32) {\n var nextBufferLine = this._buffer.lines.get(coords[1] + 1);\n if (nextBufferLine && nextBufferLine.isWrapped && nextBufferLine.get(0)[Buffer_1.CHAR_DATA_CODE_INDEX] !== 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 (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0) {\n return false;\n }\n return WORD_SEPARATORS.indexOf(charData[Buffer_1.CHAR_DATA_CHAR_INDEX]) >= 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}(EventEmitter_1.EventEmitter));\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 Types_1 = require(\"./Types\");\nvar Types_2 = require(\"../../shared/atlas/Types\");\nvar CharAtlasGenerator_1 = require(\"../../shared/atlas/CharAtlasGenerator\");\nvar BaseCharAtlas_1 = require(\"./BaseCharAtlas\");\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 >= 256;\n var isDefaultBackground = glyph.bg >= 256;\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 (glyph.fg < 256) {\n colorIndex = 2 + glyph.fg + (glyph.bold ? 16 : 0);\n }\n else {\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_2.CHAR_ATLAS_CELL_SPACING;\n var charAtlasCellHeight = this._config.scaledCharHeight + Types_2.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 Buffer_1 = require(\"../Buffer\");\nvar Types_1 = require(\"./atlas/Types\");\nvar GridCache_1 = require(\"./GridCache\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\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._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 var charData = line.get(x);\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n var chars = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n var attr = charData[Buffer_1.CHAR_DATA_ATTR_INDEX];\n var width = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\n var isJoined = false;\n var lastCharX = x;\n if (width === 0) {\n continue;\n }\n if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {\n isJoined = true;\n var range = joinedRanges.shift();\n chars = terminal.buffer.translateBufferLineToString(row, true, range[0], range[1]);\n width = range[1] - range[0];\n code = Infinity;\n lastCharX = range[1] - 1;\n }\n if (!isJoined && this._isOverlapping(charData)) {\n if (lastCharX < line.length - 1 && line.get(lastCharX + 1)[Buffer_1.CHAR_DATA_CODE_INDEX] === Buffer_1.NULL_CELL_CODE) {\n width = 2;\n }\n }\n var flags = attr >> 18;\n var bg = attr & 0x1ff;\n var fg = (attr >> 9) & 0x1ff;\n if (flags & 8) {\n var temp = bg;\n bg = fg;\n fg = temp;\n if (fg === 256) {\n fg = Types_1.INVERTED_DEFAULT_COLOR;\n }\n if (bg === 257) {\n bg = Types_1.INVERTED_DEFAULT_COLOR;\n }\n }\n callback(code, chars, width, x, y, fg, bg, flags);\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 (code, chars, width, x, y, fg, bg, flags) {\n var nextFillStyle = null;\n if (bg === Types_1.INVERTED_DEFAULT_COLOR) {\n nextFillStyle = _this._colors.foreground.css;\n }\n else if (bg < 256) {\n nextFillStyle = _this._colors.ansi[bg].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 (code, chars, width, x, y, fg, bg, flags) {\n if (flags & 16) {\n return;\n }\n if (flags & 2) {\n _this._ctx.save();\n if (fg === Types_1.INVERTED_DEFAULT_COLOR) {\n _this._ctx.fillStyle = _this._colors.background.css;\n }\n else if (fg < 256) {\n _this._ctx.fillStyle = _this._colors.ansi[fg].css;\n }\n else {\n _this._ctx.fillStyle = _this._colors.foreground.css;\n }\n _this.fillBottomLineAtCells(x, y, width);\n _this._ctx.restore();\n }\n _this.drawChars(terminal, chars, code, width, x, y, fg, bg, !!(flags & 1), !!(flags & 32), !!(flags & 64));\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 (charData) {\n if (charData[Buffer_1.CHAR_DATA_WIDTH_INDEX] !== 1) {\n return false;\n }\n var code = charData[Buffer_1.CHAR_DATA_CODE_INDEX];\n if (code < 256) {\n return false;\n }\n var char = charData[Buffer_1.CHAR_DATA_CHAR_INDEX];\n if (this._characterOverlapCache.hasOwnProperty(char)) {\n return this._characterOverlapCache[char];\n }\n this._ctx.save();\n this._ctx.font = this._characterFont;\n var overlaps = Math.floor(this._ctx.measureText(char).width) > this._characterWidth;\n this._ctx.restore();\n this._characterOverlapCache[char] = 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 });\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;\n//# sourceMappingURL=CharAtlasUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MouseHelper = (function () {\n function MouseHelper(_renderer) {\n this._renderer = _renderer;\n }\n MouseHelper.getCoordsRelativeToElement = function (event, element) {\n if (event.pageX === null || event.pageX === undefined) {\n return null;\n }\n var originalElement = element;\n var x = event.pageX;\n var y = event.pageY;\n while (element) {\n x -= element.offsetLeft;\n y -= element.offsetTop;\n element = element.offsetParent;\n }\n element = originalElement;\n while (element && element !== element.ownerDocument.body) {\n x += element.scrollLeft;\n y += element.scrollTop;\n element = element.parentElement;\n }\n return [x, y];\n };\n MouseHelper.prototype.getCoords = function (event, element, charMeasure, lineHeight, 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._renderer.dimensions.actualCellWidth / 2 : 0)) / this._renderer.dimensions.actualCellWidth);\n coords[1] = Math.ceil(coords[1] / this._renderer.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, lineHeight, colCount, rowCount) {\n var coords = this.getCoords(event, element, charMeasure, lineHeight, 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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar protocolClause = '(https?:\\\\/\\\\/)';\nvar domainCharacterSet = '[\\\\da-z\\\\.-]+';\nvar negatedDomainCharacterSet = '[^\\\\da-z\\\\.-]+';\nvar domainBodyClause = '(' + domainCharacterSet + ')';\nvar tldClause = '([a-z\\\\.]{2,6})';\nvar ipClause = '((\\\\d{1,3}\\\\.){3}\\\\d{1,3})';\nvar localHostClause = '(localhost)';\nvar portClause = '(:\\\\d{1,5})';\nvar hostClause = '((' + domainBodyClause + '\\\\.' + tldClause + ')|' + ipClause + '|' + localHostClause + ')' + portClause + '?';\nvar pathClause = '(\\\\/[\\\\/\\\\w\\\\.\\\\-%~]*)*';\nvar queryStringHashFragmentCharacterSet = '[0-9\\\\w\\\\[\\\\]\\\\(\\\\)\\\\/\\\\?\\\\!#@$%&\\'*+,:;~\\\\=\\\\.\\\\-]*';\nvar queryStringClause = '(\\\\?' + queryStringHashFragmentCharacterSet + ')?';\nvar hashFragmentClause = '(#' + queryStringHashFragmentCharacterSet + ')?';\nvar negatedPathCharacterSet = '[^\\\\/\\\\w\\\\.\\\\-%]+';\nvar bodyClause = hostClause + pathClause + queryStringClause + hashFragmentClause;\nvar start = '(?:^|' + negatedDomainCharacterSet + ')(';\nvar end = ')($|' + negatedPathCharacterSet + ')';\nvar strictUrlRegex = new RegExp(start + protocolClause + bodyClause + end);\nfunction handleLink(event, uri) {\n window.open(uri, '_blank');\n}\nfunction webLinksInit(term, handler, options) {\n if (handler === void 0) { handler = handleLink; }\n if (options === void 0) { options = {}; }\n options.matchIndex = 1;\n term.registerLinkMatcher(strictUrlRegex, handler, options);\n}\nexports.webLinksInit = webLinksInit;\nfunction apply(terminalConstructor) {\n terminalConstructor.prototype.webLinksInit = function (handler, options) {\n webLinksInit(this, handler, options);\n };\n}\nexports.apply = apply;\n//# sourceMappingURL=webLinks.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 Buffer_1 = require(\"../Buffer\");\nvar BaseRenderLayer_1 = require(\"./BaseRenderLayer\");\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._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 var charData = terminal.buffer.lines.get(cursorY).get(terminal.buffer.x);\n if (!charData) {\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, charData);\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 = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\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 === charData[Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n return;\n }\n this._clearCursor();\n }\n this._ctx.save();\n this._cursorRenderers[terminal.options.cursorStyle || 'block'](terminal, terminal.buffer.x, viewportRelativeCursorY, charData);\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 = charData[Buffer_1.CHAR_DATA_WIDTH_INDEX];\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, charData) {\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, charData) {\n this._ctx.save();\n this._ctx.fillStyle = this._colors.cursor.css;\n this.fillCells(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 1);\n this._ctx.fillStyle = this._colors.cursorAccent.css;\n this.fillCharTrueColor(terminal, charData, x, y);\n this._ctx.restore();\n };\n CursorRenderLayer.prototype._renderUnderlineCursor = function (terminal, x, y, charData) {\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, charData) {\n this._ctx.save();\n this._ctx.strokeStyle = this._colors.cursor.css;\n this.strokeRectAtCell(x, y, charData[Buffer_1.CHAR_DATA_WIDTH_INDEX], 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 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 (waitForPropogation) {\n var _this = this;\n this._compositionView.classList.remove('active');\n this._isComposing = false;\n this._clearTextareaPosition();\n if (!waitForPropogation) {\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 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 });\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 wcwidthBMP(ucs) {\n if (ucs === 0) {\n return opts.nul;\n }\n if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) {\n return opts.control;\n }\n if (bisearch(ucs, COMBINING_BMP)) {\n return 0;\n }\n if (isWideBMP(ucs)) {\n return 2;\n }\n return 1;\n }\n function isWideBMP(ucs) {\n return (ucs >= 0x1100 && (ucs <= 0x115f ||\n ucs === 0x2329 ||\n ucs === 0x232a ||\n (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs !== 0x303f) ||\n (ucs >= 0xac00 && ucs <= 0xd7a3) ||\n (ucs >= 0xf900 && ucs <= 0xfaff) ||\n (ucs >= 0xfe10 && ucs <= 0xfe19) ||\n (ucs >= 0xfe30 && ucs <= 0xfe6f) ||\n (ucs >= 0xff00 && ucs <= 0xff60) ||\n (ucs >= 0xffe0 && ucs <= 0xffe6)));\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 = null;\n function initTable() {\n var CODEPOINTS = 65536;\n var BITWIDTH = 2;\n var ITEMSIZE = 32;\n var CONTAINERSIZE = CODEPOINTS * BITWIDTH / ITEMSIZE;\n var CODEPOINTS_PER_ITEM = ITEMSIZE / BITWIDTH;\n table = (typeof Uint32Array === 'undefined')\n ? new Array(CONTAINERSIZE)\n : new Uint32Array(CONTAINERSIZE);\n for (var i = 0; i < CONTAINERSIZE; ++i) {\n var num = 0;\n var pos = CODEPOINTS_PER_ITEM;\n while (pos--) {\n num = (num << 2) | wcwidthBMP(CODEPOINTS_PER_ITEM * i + pos);\n }\n table[i] = num;\n }\n return table;\n }\n return function (num) {\n num = num | 0;\n if (num < 32) {\n return control | 0;\n }\n if (num < 127) {\n return 1;\n }\n var t = table || initTable();\n if (num < 65536) {\n return t[num >> 4] >> ((num & 15) << 1) & 3;\n }\n return wcwidthHigh(num);\n };\n})({ nul: 0, control: 0 });\nfunction getStringCellWidth(s) {\n var result = 0;\n for (var i = 0; i < s.length; ++i) {\n var code = s.charCodeAt(i);\n if (0xD800 <= code && code <= 0xDBFF) {\n var low = s.charCodeAt(i + 1);\n if (isNaN(low)) {\n return result;\n }\n code = ((code - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n }\n if (0xDC00 <= code && code <= 0xDFFF) {\n continue;\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(\"./handlers/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(\"./ui/CharMeasure\");\nvar Browser = require(\"./shared/utils/Browser\");\nvar Lifecycle_1 = require(\"./ui/Lifecycle\");\nvar Strings = require(\"./Strings\");\nvar MouseHelper_1 = require(\"./utils/MouseHelper\");\nvar Clone_1 = require(\"./utils/Clone\");\nvar SoundManager_1 = require(\"./SoundManager\");\nvar ColorManager_1 = require(\"./renderer/ColorManager\");\nvar MouseZoneManager_1 = require(\"./ui/MouseZoneManager\");\nvar AccessibilityManager_1 = require(\"./AccessibilityManager\");\nvar ScreenDprMonitor_1 = require(\"./ui/ScreenDprMonitor\");\nvar CharAtlasCache_1 = require(\"./renderer/atlas/CharAtlasCache\");\nvar DomRenderer_1 = require(\"./renderer/dom/DomRenderer\");\nvar Keyboard_1 = require(\"./core/input/Keyboard\");\nvar BufferLine_1 = require(\"./BufferLine\");\nvar document = (typeof window !== 'undefined') ? window.document : null;\nvar WRITE_BUFFER_PAUSE_THRESHOLD = 5;\nvar WRITE_BATCH_SIZE = 300;\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: null,\n rightClickSelectsWord: Browser.isMac,\n rendererType: 'canvas'\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.options = Clone_1.clone(options);\n _this._setup();\n return _this;\n }\n Terminal.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\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 = this.options.cols;\n this.rows = this.options.rows;\n if (this.options.handler) {\n this.on('data', 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.curAttr = Buffer_1.DEFAULT_ATTR;\n this.params = [];\n this.currentParam = 0;\n this.writeBuffer = [];\n this._writeInProgress = false;\n this._xoffSentToCatchUp = false;\n this._userScrolling = false;\n this._inputHandler = new InputHandler_1.InputHandler(this);\n this.register(this._inputHandler);\n this.renderer = this.renderer || null;\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 };\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.eraseAttr = function () {\n return (Buffer_1.DEFAULT_ATTR & ~0x1ff) | (this.curAttr & 0x1ff);\n };\n Terminal.prototype.focus = function () {\n if (this.textarea) {\n this.textarea.focus();\n }\n };\n Object.defineProperty(Terminal.prototype, \"isFocused\", {\n get: function () {\n return document.activeElement === this.textarea;\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 if (this.renderer) {\n this._setTheme(value);\n return;\n }\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.renderer) {\n this.renderer.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.renderer) {\n this.renderer.clear();\n this.renderer.onResize(this.cols, this.rows);\n this.refresh(0, this.rows - 1);\n }\n case 'rendererType':\n if (this.renderer) {\n this.unregister(this.renderer);\n this.renderer.dispose();\n this.renderer = null;\n }\n this._setupRenderer();\n this.renderer.onCharSizeChanged();\n if (this._theme) {\n this.renderer.setTheme(this._theme);\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) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);\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 }\n if (this.renderer) {\n this.renderer.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.textarea, _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.textarea, _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.textarea);\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.addDisposableListener('refresh', function () { return _this._compositionHelper.updateCompositionElements(); }));\n this.register(this.addDisposableListener('refresh', function (data) { return _this._queueLinkification(data.start, data.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._screenDprMonitor = new ScreenDprMonitor_1.ScreenDprMonitor();\n this._screenDprMonitor.setListener(function () { return _this.emit('dprchange', window.devicePixelRatio); });\n this.register(this._screenDprMonitor);\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.addDisposableListener('scroll', 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._setupRenderer();\n this._theme = this.options.theme;\n this.options.theme = null;\n this.viewport = new Viewport_1.Viewport(this, this._viewportElement, this._viewportScrollArea, this.charMeasure);\n this.viewport.onThemeChanged(this.renderer.colorManager.colors);\n this.register(this.viewport);\n this.register(this.addDisposableListener('cursormove', function () { return _this.renderer.onCursorMove(); }));\n this.register(this.addDisposableListener('resize', function () { return _this.renderer.onResize(_this.cols, _this.rows); }));\n this.register(this.addDisposableListener('blur', function () { return _this.renderer.onBlur(); }));\n this.register(this.addDisposableListener('focus', function () { return _this.renderer.onFocus(); }));\n this.register(this.addDisposableListener('dprchange', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));\n this.register(Lifecycle_1.addDisposableDomListener(window, 'resize', function () { return _this.renderer.onWindowResize(window.devicePixelRatio); }));\n this.register(this.charMeasure.addDisposableListener('charsizechanged', function () { return _this.renderer.onCharSizeChanged(); }));\n this.register(this.renderer.addDisposableListener('resize', function (dimensions) { return _this.viewport.syncScrollArea(); }));\n this.selectionManager = new SelectionManager_1.SelectionManager(this, this.charMeasure);\n this.register(Lifecycle_1.addDisposableDomListener(this.element, 'mousedown', function (e) { return _this.selectionManager.onMouseDown(e); }));\n this.register(this.selectionManager.addDisposableListener('refresh', function (data) { return _this.renderer.onSelectionChanged(data.start, data.end, data.columnSelectMode); }));\n this.register(this.selectionManager.addDisposableListener('newselection', function (text) {\n _this.textarea.value = text;\n _this.textarea.focus();\n _this.textarea.select();\n }));\n this.register(this.addDisposableListener('scroll', 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.renderer);\n if (this.options.screenReaderMode) {\n this._accessibilityManager = new AccessibilityManager_1.AccessibilityManager(this);\n }\n this.charMeasure.measure(this.options);\n this.refresh(0, this.rows - 1);\n this._initGlobal();\n this.bindMouse();\n };\n Terminal.prototype._setupRenderer = function () {\n switch (this.options.rendererType) {\n case 'canvas':\n this.renderer = new Renderer_1.Renderer(this, this.options.theme);\n break;\n case 'dom':\n this.renderer = new DomRenderer_1.DomRenderer(this, this.options.theme);\n break;\n default: throw new Error(\"Unrecognized rendererType \\\"\" + this.options.rendererType + \"\\\"\");\n }\n this.register(this.renderer);\n };\n Terminal.prototype._setTheme = function (theme) {\n this._theme = theme;\n var colors = this.renderer.setTheme(theme);\n if (this.viewport) {\n this.viewport.onThemeChanged(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.options.lineHeight, 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.options.lineHeight, 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(0);\n return;\n }\n if (ch < 127) {\n data.push(ch);\n }\n else {\n if (ch > 2047)\n ch = 2047;\n data.push(0xC0 | (ch >> 6));\n data.push(0x80 | (ch & 0x3F));\n }\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.wheelDeltaY > 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.renderer) {\n this.renderer.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('xterm-cursor-crosshair');\n }\n else {\n this.element.classList.remove('xterm-cursor-crosshair');\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 var newLine = BufferLine_1.BufferLine.blankLine(this.cols, Buffer_1.DEFAULT_ATTR, 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.length === this.buffer.lines.maxLength;\n if (bottomRow === this.buffer.lines.length - 1) {\n this.buffer.lines.push(newLine);\n }\n else {\n this.buffer.lines.splice(bottomRow + 1, 0, newLine);\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);\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.emit('scroll', 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.emit('scroll', 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.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 () {\n var _this = this;\n if (this._isDisposed) {\n this.writeBuffer = [];\n }\n var writeBatch = this.writeBuffer.splice(0, WRITE_BATCH_SIZE);\n while (writeBatch.length > 0) {\n var data = writeBatch.shift();\n if (this._xoffSentToCatchUp && writeBatch.length === 0 && this.writeBuffer.length === 0) {\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 }\n if (this.writeBuffer.length > 0) {\n setTimeout(function () { return _this._innerWrite(); }, 0);\n }\n else {\n this._writeInProgress = false;\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.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.renderer.registerCharacterJoiner(handler);\n this.refresh(0, this.rows - 1);\n return joinerId;\n };\n Terminal.prototype.deregisterCharacterJoiner = function (joinerId) {\n if (this.renderer.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.getSelection = function () {\n return this.selectionManager ? this.selectionManager.selectionText : '';\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.emit('key', result.key, 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.emit('key', key, 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 < 1)\n x = 1;\n if (y < 1)\n y = 1;\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.emit('resize', { 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(BufferLine_1.BufferLine.blankLine(this.cols, Buffer_1.DEFAULT_ATTR));\n }\n this.refresh(0, this.rows - 1);\n this.emit('scroll', this.buffer.ydisp);\n };\n Terminal.prototype.ch = function (cur) {\n if (cur) {\n return [this.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\n }\n return [Buffer_1.DEFAULT_ATTR, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE];\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.emit('data', data);\n };\n Terminal.prototype.handleTitle = function (title) {\n this.emit('title', 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, BufferLine_1.BufferLine.blankLine(this.cols, this.eraseAttr()));\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 this._setup();\n this._customKeyEventHandler = customKeyEventHandler;\n this._inputHandler = inputHandler;\n this.cursorState = cursorState;\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.matchColor = function (r1, g1, b1) {\n var hash = (r1 << 16) | (g1 << 8) | b1;\n if (matchColorCache[hash] !== null && matchColorCache[hash] !== undefined) {\n return matchColorCache[hash];\n }\n var ldiff = Infinity;\n var li = -1;\n var i = 0;\n var c;\n var r2;\n var g2;\n var b2;\n var diff;\n for (; i < ColorManager_1.DEFAULT_ANSI_COLORS.length; i++) {\n c = ColorManager_1.DEFAULT_ANSI_COLORS[i].rgba;\n r2 = c >>> 24;\n g2 = c >>> 16 & 0xFF;\n b2 = c >>> 8 & 0xFF;\n diff = matchColorDistance(r1, g1, b1, r2, g2, b2);\n if (diff === 0) {\n li = i;\n break;\n }\n if (diff < ldiff) {\n ldiff = diff;\n li = i;\n }\n }\n return matchColorCache[hash] = li;\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}\nvar matchColorCache = {};\nfunction matchColorDistance(r1, g1, b1, r2, g2, b2) {\n return Math.pow(30 * (r1 - r2), 2)\n + Math.pow(59 * (g1 - g2), 2)\n + Math.pow(11 * (b1 - b2), 2);\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.options.lineHeight, 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\");\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.concat(r(0x1c, 0x20));\nvar DEFAULT_TRANSITION = 1 << 4 | 0;\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 < 160; ++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(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 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 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._csiHandlers = null;\n this._escHandlers = 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.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.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) {\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 var l = data.length;\n for (var i = 0; i < l; ++i) {\n code = data.charCodeAt(i);\n if (currentState === 0 && code > 0x1f && code < 0x80) {\n print = (~print) ? print : i;\n do\n i++;\n while (i < l && data.charCodeAt(i) > 0x1f && data.charCodeAt(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 = (code < 0xa0) ? (table[currentState << 8 | code]) : DEFAULT_TRANSITION;\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 8:\n osc += String.fromCharCode(code);\n transition |= 8;\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 callback = this._csiHandlers[code];\n if (callback)\n callback(params, collect);\n else\n this._csiHandlerFb(collect, params, code);\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 osc += data.charAt(i);\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 callback = this._oscHandlers[identifier];\n if (callback)\n callback(content);\n else\n this._oscHandlerFb(identifier, content);\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, data.length);\n }\n else if (currentState === 13 && ~dcs && dcsHandler) {\n dcsHandler.put(data, dcs, data.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","\"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\";\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 MouseZoneManager_1 = require(\"./ui/MouseZoneManager\");\nvar EventEmitter_1 = require(\"./common/EventEmitter\");\nvar Buffer_1 = require(\"./Buffer\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar Linkifier = (function (_super) {\n __extends(Linkifier, _super);\n function Linkifier(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\n _this._linkMatchers = [];\n _this._nextLinkMatcherId = 0;\n _this._rowsToLinkify = {\n start: null,\n end: null\n };\n return _this;\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 var bufferIndex = this_1._terminal.buffer.stringIndexToBufferIndex(rowIndex, stringIndex);\n var line = this_1._terminal.buffer.lines.get(bufferIndex[0]);\n var char = line.get(bufferIndex[1]);\n var fg;\n if (char) {\n var attr = char[Buffer_1.CHAR_DATA_ATTR_INDEX];\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 (e) {\n _this.emit(\"linkhover\", _this._createLinkHoverEvent(x1, y1, x2, y2, fg));\n _this._terminal.element.classList.add('xterm-cursor-pointer');\n }, function (e) {\n _this.emit(\"linktooltip\", _this._createLinkHoverEvent(x1, y1, x2, y2, fg));\n if (matcher.hoverTooltipCallback) {\n matcher.hoverTooltipCallback(e, uri);\n }\n }, function () {\n _this.emit(\"linkleave\", _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}(EventEmitter_1.EventEmitter));\nexports.Linkifier = Linkifier;\n//# sourceMappingURL=Linkifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction proposeGeometry(term) {\n if (!term.element.parentElement) {\n return null;\n }\n var parentElementStyle = window.getComputedStyle(term.element.parentElement);\n var parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n var parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));\n var elementStyle = window.getComputedStyle(term.element);\n var elementPadding = {\n top: parseInt(elementStyle.getPropertyValue('padding-top')),\n bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),\n right: parseInt(elementStyle.getPropertyValue('padding-right')),\n left: parseInt(elementStyle.getPropertyValue('padding-left'))\n };\n var elementPaddingVer = elementPadding.top + elementPadding.bottom;\n var elementPaddingHor = elementPadding.right + elementPadding.left;\n var availableHeight = parentElementHeight - elementPaddingVer;\n var availableWidth = parentElementWidth - elementPaddingHor - term._core.viewport.scrollBarWidth;\n var geometry = {\n cols: Math.floor(availableWidth / term._core.renderer.dimensions.actualCellWidth),\n rows: Math.floor(availableHeight / term._core.renderer.dimensions.actualCellHeight)\n };\n return geometry;\n}\nexports.proposeGeometry = proposeGeometry;\nfunction fit(term) {\n var geometry = proposeGeometry(term);\n if (geometry) {\n if (term.rows !== geometry.rows || term.cols !== geometry.cols) {\n term._core.renderer.clear();\n term.resize(geometry.cols, geometry.rows);\n }\n }\n}\nexports.fit = fit;\nfunction apply(terminalConstructor) {\n terminalConstructor.prototype.proposeGeometry = function () {\n return proposeGeometry(this);\n };\n terminalConstructor.prototype.fit = function () {\n fit(this);\n };\n}\nexports.apply = apply;\n//# sourceMappingURL=fit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Types_1 = require(\"./Types\");\nvar Browser_1 = require(\"../utils/Browser\");\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 = 'top';\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, 0);\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);\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);\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);\n ctx.restore();\n }\n }\n ctx.restore();\n if (!('createImageBitmap' in context) || Browser_1.isFirefox || Browser_1.isSafari) {\n if (canvas instanceof HTMLCanvasElement) {\n return canvas;\n }\n return new Promise(function (r) { return r(canvas.transferToImageBitmap()); });\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 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=Browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.INVERTED_DEFAULT_COLOR = -1;\nexports.DIM_OPACITY = 0.5;\n//# sourceMappingURL=Types.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 EventEmitter_1 = require(\"./EventEmitter\");\nvar CircularList = (function (_super) {\n __extends(CircularList, _super);\n function CircularList(_maxLength) {\n var _this = _super.call(this) || this;\n _this._maxLength = _maxLength;\n _this._array = new Array(_this._maxLength);\n _this._startIndex = 0;\n _this._length = 0;\n return _this;\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++;\n if (this._startIndex === this._maxLength) {\n this._startIndex = 0;\n }\n this.emit('trim', 1);\n }\n else {\n this._length++;\n }\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 if (items && items.length) {\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.emit('trim', countToTrim);\n }\n else {\n this._length += items.length;\n }\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.emit('trim', 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.emit('trim', 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}(EventEmitter_1.EventEmitter));\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\";\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 this._ctx = canvas.getContext('2d');\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 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) {\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 Types_1 = require(\"./atlas/Types\");\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.on(\"linkhover\", function (e) { return _this._onLinkHover(e); });\n terminal.linkifier.on(\"linkleave\", 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 (e.fg < 256) {\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 Buffer_1 = require(\"./Buffer\");\nvar CharWidth_1 = require(\"./CharWidth\");\nvar EscapeSequenceParser_1 = require(\"./EscapeSequenceParser\");\nvar Lifecycle_1 = require(\"./common/Lifecycle\");\nvar BufferLine_1 = require(\"./BufferLine\");\nvar GLEVEL = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };\nvar DECRQSS = (function () {\n function DECRQSS(_terminal) {\n this._terminal = _terminal;\n }\n DECRQSS.prototype.hook = function (collect, params, flag) {\n this._data = '';\n };\n DECRQSS.prototype.put = function (data, start, end) {\n this._data += data.substring(start, end);\n };\n DECRQSS.prototype.unhook = function () {\n switch (this._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', this._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.register(_this._parser);\n _this._surrogateHigh = '';\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 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._surrogateHigh) {\n data = this._surrogateHigh + data;\n this._surrogateHigh = '';\n }\n this._parser.parse(data);\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 char;\n var code;\n var low;\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.curAttr;\n var bufferRow = buffer.lines.get(buffer.y + buffer.ybase);\n this._terminal.updateRange(buffer.y);\n for (var stringPosition = start; stringPosition < end; ++stringPosition) {\n char = data.charAt(stringPosition);\n code = data.charCodeAt(stringPosition);\n if (0xD800 <= code && code <= 0xDBFF) {\n low = data.charCodeAt(stringPosition + 1);\n if (isNaN(low)) {\n this._surrogateHigh = char;\n continue;\n }\n code = ((code - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;\n char += data.charAt(stringPosition + 1);\n }\n if (0xDC00 <= code && code <= 0xDFFF) {\n continue;\n }\n chWidth = CharWidth_1.wcwidth(code);\n if (charset) {\n char = charset[char] || char;\n code = char.charCodeAt(0);\n }\n if (screenReaderMode) {\n this._terminal.emit('a11y.char', char);\n }\n if (!chWidth && buffer.x) {\n var chMinusOne = bufferRow.get(buffer.x - 1);\n if (chMinusOne) {\n if (!chMinusOne[Buffer_1.CHAR_DATA_WIDTH_INDEX]) {\n var chMinusTwo = bufferRow.get(buffer.x - 2);\n if (chMinusTwo) {\n chMinusTwo[Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n chMinusTwo[Buffer_1.CHAR_DATA_CODE_INDEX] = code;\n }\n }\n else {\n chMinusOne[Buffer_1.CHAR_DATA_CHAR_INDEX] += char;\n chMinusOne[Buffer_1.CHAR_DATA_CODE_INDEX] = code;\n }\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 for (var moves = 0; moves < chWidth; ++moves) {\n var removed = bufferRow.pop();\n var chMinusTwo = bufferRow.get(buffer.x - 2);\n if (removed[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 0\n && chMinusTwo\n && chMinusTwo[Buffer_1.CHAR_DATA_WIDTH_INDEX] === 2) {\n bufferRow.set(this._terminal.cols - 2, [curAttr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\n }\n bufferRow.splice(buffer.x, 0, [curAttr, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\n }\n }\n bufferRow.set(buffer.x++, [curAttr, char, chWidth, code]);\n if (chWidth === 2) {\n bufferRow.set(buffer.x++, [curAttr, '', 0, undefined]);\n }\n }\n this._terminal.updateRange(buffer.y);\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._terminal.emit('linefeed');\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.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\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) {\n this._terminal.buffer.lines.get(this._terminal.buffer.ybase + y).replaceCells(start, end, [this._terminal.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\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);\n for (; j < this._terminal.rows; j++) {\n this._eraseInBufferLine(j, 0, this._terminal.cols);\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);\n while (j--) {\n this._eraseInBufferLine(j, 0, this._terminal.cols);\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._eraseInBufferLine(j, 0, this._terminal.cols);\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._terminal.emit('scroll', 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, BufferLine_1.BufferLine.blankLine(this._terminal.cols, this._terminal.eraseAttr()));\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, BufferLine_1.BufferLine.blankLine(this._terminal.cols, this._terminal.eraseAttr()));\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.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\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, BufferLine_1.BufferLine.blankLine(this._terminal.cols, Buffer_1.DEFAULT_ATTR));\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.scrollBottom, 0, BufferLine_1.BufferLine.blankLine(this._terminal.cols, Buffer_1.DEFAULT_ATTR));\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.eraseAttr(), Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\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.replaceCells(buffer.x, buffer.x + (params[0] || 1), line.get(buffer.x - 1) || [Buffer_1.DEFAULT_ATTR, Buffer_1.NULL_CELL_CHAR, Buffer_1.NULL_CELL_WIDTH, Buffer_1.NULL_CELL_CODE]);\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 this._terminal.viewport.syncScrollArea();\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 this._terminal.element.classList.add('enable-mouse-events');\n this._terminal.selectionManager.disable();\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 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateAltBuffer();\n this._terminal.viewport.syncScrollArea();\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 this._terminal.viewport.syncScrollArea();\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 this._terminal.element.classList.remove('enable-mouse-events');\n this._terminal.selectionManager.enable();\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 1049:\n case 47:\n case 1047:\n this._terminal.buffers.activateNormalBuffer();\n this._terminal.refresh(0, this._terminal.rows - 1);\n this._terminal.viewport.syncScrollArea();\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.curAttr = Buffer_1.DEFAULT_ATTR;\n return;\n }\n var l = params.length;\n var flags = this._terminal.curAttr >> 18;\n var fg = (this._terminal.curAttr >> 9) & 0x1ff;\n var bg = this._terminal.curAttr & 0x1ff;\n var p;\n for (var i = 0; i < l; i++) {\n p = params[i];\n if (p >= 30 && p <= 37) {\n fg = p - 30;\n }\n else if (p >= 40 && p <= 47) {\n bg = p - 40;\n }\n else if (p >= 90 && p <= 97) {\n p += 8;\n fg = p - 90;\n }\n else if (p >= 100 && p <= 107) {\n p += 8;\n bg = p - 100;\n }\n else if (p === 0) {\n flags = Buffer_1.DEFAULT_ATTR >> 18;\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else if (p === 1) {\n flags |= 1;\n }\n else if (p === 3) {\n flags |= 64;\n }\n else if (p === 4) {\n flags |= 2;\n }\n else if (p === 5) {\n flags |= 4;\n }\n else if (p === 7) {\n flags |= 8;\n }\n else if (p === 8) {\n flags |= 16;\n }\n else if (p === 2) {\n flags |= 32;\n }\n else if (p === 22) {\n flags &= ~1;\n flags &= ~32;\n }\n else if (p === 23) {\n flags &= ~64;\n }\n else if (p === 24) {\n flags &= ~2;\n }\n else if (p === 25) {\n flags &= ~4;\n }\n else if (p === 27) {\n flags &= ~8;\n }\n else if (p === 28) {\n flags &= ~16;\n }\n else if (p === 39) {\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n }\n else if (p === 49) {\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else if (p === 38) {\n if (params[i + 1] === 2) {\n i += 2;\n fg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (fg === -1)\n fg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n fg = p;\n }\n }\n else if (p === 48) {\n if (params[i + 1] === 2) {\n i += 2;\n bg = this._terminal.matchColor(params[i] & 0xff, params[i + 1] & 0xff, params[i + 2] & 0xff);\n if (bg === -1)\n bg = 0x1ff;\n i += 2;\n }\n else if (params[i + 1] === 5) {\n i += 2;\n p = params[i] & 0xff;\n bg = p;\n }\n }\n else if (p === 100) {\n fg = (Buffer_1.DEFAULT_ATTR >> 9) & 0x1ff;\n bg = Buffer_1.DEFAULT_ATTR & 0x1ff;\n }\n else {\n this._terminal.error('Unknown SGR attribute: %d.', p);\n }\n }\n this._terminal.curAttr = (flags << 18) | (fg << 9) | bg;\n };\n InputHandler.prototype.deviceStatus = function (params, collect) {\n if (!collect) {\n switch (params[0]) {\n case 5:\n this._terminal.emit('data', 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._terminal.emit('data', 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._terminal.emit('data', 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 this._terminal.viewport.syncScrollArea();\n this._terminal.applicationCursor = false;\n this._terminal.buffer.scrollTop = 0;\n this._terminal.buffer.scrollBottom = this._terminal.rows - 1;\n this._terminal.curAttr = Buffer_1.DEFAULT_ATTR;\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 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.savedCurAttr = this._terminal.curAttr;\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.curAttr = this._terminal.savedCurAttr || Buffer_1.DEFAULT_ATTR;\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 return this.selectDefaultCharset();\n if (collectAndFlag[0] === '/')\n return;\n this._terminal.setgCharset(GLEVEL[collectAndFlag[0]], Charsets_1.CHARSETS[collectAndFlag[1]] || Charsets_1.DEFAULT_CHARSET);\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 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\";\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 Buffer_1 = require(\"./Buffer\");\nvar EventEmitter_1 = require(\"./common/EventEmitter\");\nvar BufferSet = (function (_super) {\n __extends(BufferSet, _super);\n function BufferSet(_terminal) {\n var _this = _super.call(this) || this;\n _this._terminal = _terminal;\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 return _this;\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._alt.clear();\n this._activeBuffer = this._normal;\n this.emit('activate', {\n activeBuffer: this._normal,\n inactiveBuffer: this._alt\n });\n };\n BufferSet.prototype.activateAltBuffer = function () {\n if (this._activeBuffer === this._alt) {\n return;\n }\n this._alt.fillViewportRows();\n this._activeBuffer = this._alt;\n this.emit('activate', {\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}(EventEmitter_1.EventEmitter));\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 return _super !== null && _super.apply(this, arguments) || 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 _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) {\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n }\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._listener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._listener = null;\n this._outerListener = null;\n };\n return ScreenDprMonitor;\n}(Lifecycle_1.Disposable));\nexports.ScreenDprMonitor = ScreenDprMonitor;\n//# sourceMappingURL=ScreenDprMonitor.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) {\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.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.onThemeChanged = 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._terminal.renderer.dimensions.scaledCellHeight / window.devicePixelRatio;\n this._lastRecordedViewportHeight = this._viewportElement.offsetHeight;\n var newBufferHeight = Math.round(this._currentRowHeight * this._lastRecordedBufferLength) + (this._lastRecordedViewportHeight - this._terminal.renderer.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._terminal.renderer.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._terminal.renderer.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":""}